안녕하세요🖐 오늘은 비밀번호 유효성 검사에 대한 예제를 통하여 TDD에 대해서 공부를 해보았습니다. 비밀번호 유효성 검사 조건 길이가 8글자 이상 0부터 9사이의 숫자를 포함 대문자 포함 - 모든 규칙을 충족하면 STRONG - 2개의 규칙을 충족하면 NORMAL - 1개의 규칙을 충족하면 WEAK 위 조건을 만족하는 테스트 코드를 작성해야 합니다. 암호 검사를 하는 경우를 생각해봤을 때, 가장 쉽거나, 가장 예외적인 상황은 무엇일까? 모든 규칙을 충족하는 경우 모든 규칙을 충족하지 않는 경우 모든 규칙을 충족하지 않는 경우는 모든 조건을 다 걸어야하기 때문에, 로직이 복잡하게 짜인다. 그러나 모든 규칙을 충족하는 경우는 쉽게 테스트를 통과시킬 수 있습니다. 바로 시작해보겠습니다. 1) 모든 규칙을 충족..
안녕하세요🖐 오늘은 객체지향 개념에서 협력,책임,역할 에 대하여 이야기를 해보려고 합니다. 우리가 살아가고 있는 곳에서 협력은 무엇을 의미할까요? 우리가 무언가를 필요로 할 때 도움을 요청하는 것? 도움을 요청하였을 때 요청을 수락하는 것? 간단하게 이정도로 말할 수 있을 것 같습니다. 프로그래밍에서 협력이란 단어에서 유추 할 수 있는 뜻은 무엇을 해야하는지 무엇을 누가? (잘하는지/할줄 아는지) 를 아는 것 무엇을 누군가에게 요청하기 그러면 객체지향 프로그래밍에서 왜 협력이 필요할까요❓ 객체지향 프로그래밍에서 기능을 구현하는 유일한 방법이기 때문이다. 객체가 협력을 하기 위해서는 위에서 유추한 내용이 필요합니다. 무엇을 해야하는지 무엇을 누가? (잘하는지/할줄 아는지) 를 아는 것 무엇을 누군가에게 요..
안녕하세요🖐 오늘은 객체지향 핵심에 대하여 포스팅을 해보겠습니다. 변화에 적응하는 소프트웨어의 특징은 무엇일까요? 저는 이 질문에 대하여 고민을 해보았는데 마땅히 떠오르는게 확장성? 정도 였습니다. 정답은 바로 유연성 확장성 유지 보수성 이 3가지가 충족이 된다면 변화에 적응하는 소프트웨어의 특징입니다. 그러면 이 3가지를 충족시키기 위해서 중요하게 관리해야하는 것이 있다고 합니다 바로 '의존' 입니다. 의존이란? 어떠한 일을 자신의 힘으로 하지 못하고 다른 어떤 것의 도움을 받아 의지하는 것 의존은 코드에서는 어떻게 표현될까? 객체 참조에 의한 관계 메서드 리턴타입이나 파라미터로서의 의존관계 상속에 의한 의존 관계 구현에 의하 의존 관계 등 여러가지가 있을 것 입니다. 1) 객체 참조에 의한 연관 관계..
안녕하세요🖐 오늘은 제가 토이프로젝트 시작에 앞서, 어떻게 패키지를 구성하고, 파일을 관리할지 고민을 하던 중에 스프링 계층 구조에 대해서 알게되어서 공부하게 되었습니다. 그 내용을 포스팅 해보겠습니다. 저는 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 라는 책을 보며, 스프링 계층구조에 대하여 자세히 알게되었습니다. 위 사진이 대표적인 스프링의 계층 구조라고 합니다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야하고, 각 계층에서 담당해야 할 기능들이 있다. Web Layer(= Presentation Layer) 우리가 흔히 사용하는 Controller와 View 영역입니다. 스프링을 사용하면서 MVC패턴을 들어보셨을 것이라고 생각합니다. 그 중에서 View와 Controlle..
시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 209846 112078 92273 53.161% 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다..
1 초 (추가 시간 없음) 512 MB 114351 75419 52026 64.454% 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 예제 입력 1 3 4 7 10 예제 출력 1 7 44 274 풀이✔ 1️⃣ 문제 분석하..
안녕하세요🖐 오늘은 스프링부트에서 의존성 주입에 대하여 알아볼 것 입니다. 스프링에서 중요한 개념인 Spring Core 관련된 내용은 꼭 알고서 개발을 시작해야 합니다. 대표적으로 POJO, AOP, DI 등 중요 개념들이 있습니다. 그 중에서 오늘은 DI에 대하여 알아보겠습니다. 의존성 주입은 스프링 을 사용하는 백엔드 개발자라고 하면은 개발시 자주 사용하고 있을 것 입니다. 저도 개발을 하면서 객체에 의존성 주입을 하는 상황이 자주 있습니다. 항상 궁금했습니다. 어떻게 이 방식으로 Bean에 의존성이 주입이 되고, 내가 원하는 객체에서 메소드를 사용하고 또 어떠한 방법들이 있을까? 그래서 이번 기회에 의존성주입(Dependency Injection) 에 대하여 자세하게 알아보았습니다. 모든 글은 W..
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 263704 77331 54397 27.358% 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 풀이✔ 1️⃣ 문제 분석하기 M이상 N이하의 소수를 출력하는 프로그램을 작성 해야함 소수가 무엇인지를 알아야함 소수란, 나누었을 때 몫이 자신 숫자와 1만 있는 것을 의미함. 2️⃣ 요구 조건 구현하기 Bufferedreader 생성 StringTokeinzer 생성 int N, int M = S..