안녕하세요🖐 오늘은 제가 토이프로젝트 시작에 앞서, 어떻게 패키지를 구성하고, 파일을 관리할지 고민을 하던 중에 스프링 계층 구조에 대해서 알게되어서 공부하게 되었습니다. 그 내용을 포스팅 해보겠습니다. 저는 스프링 부트와 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..
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율2 초128 MB74708353502958747.045%문제N! 에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)출력첫째 줄에 구한 0의 개수를 출력한다.풀이✔1️⃣ 문제 분석하기N! 에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때 까지 0의 개수를 구하는 프로그램을 작성해야 함.계산된 팩토리얼의 뒤에서부터 한 자리씩 확인합니다.0이 아닌 숫자가 나올 때까지 0의 개수를 세어줍니다.예를들어 10! ⇒ 3688800 이면은→ 0의 개수는 2개이다.팩토리얼의 값에서 0의 개수를 세는 로직을 짜는게 방법!2️⃣ 요구 조건 구현하기첫째 줄에 N이 주어짐N에 대한..
안녕하세요🖐 오늘은 평소에 궁금했던 내용인 내가 Inellij에서 로직을 작성하면 컴퓨터가 어떻게 이해를 하고 실행이 되는지 항상궁금했습니다. 그래서 본격적으로 공부를 해보고 제가 공부를 하고 이해한 내용을 포스팅 해보고자 합니다. 프로그래밍을 시작한지 8개월정도가 되었지만, 이 부분을 이해하지 못하고 공부를 한게 조금은 창피하지만, 이번 기회에 제대로 공부를 했으니, 다시는 까먹지 않을 것 같습니다...🤣 소스코드와 명령어 💡 개발자가 프로그래밍 언어로 작성한 소스 코드가 컴퓨터 내부에서 명령어가 되고 실행되는 과정을 학습합니다. 명령어는 컴퓨터를 실질적으로 작동시키는 매우 중요한 정보 입니다. 여기서 질문🖐우리가 Java같은 프로그램을 실행시키는 Intellj, eclipse에서 프로그램..
오늘은 메모리에 대하여 알아보겠습니다. 기본적으로 어플리케이션(=프로세스) 에서 실행은 메모리에 적재가 되며 실행 이 됩니다. ?? 그러면 어떻게 메모리에서 동작이 되나요 간단하게 예시를 들어서 설명을 해보겠습니다. Q. 자바를 이용하여 두개의 정수를 더하여 결과를 출력하는 프로그램을 만들어보겠습니다. 두개의 정수를 더해야 하므로 컴퓨터 프로그램안에 두개의 정수를 기억하는 공간이 있어야 합니다. 컴퓨터 언어로 해석을 해보면 위 두개의 정수는 '데이터' 이고'더하라' 는 것은 컴퓨터 프로그램을 동작시키는 '명령어' 입니다. 간단하게 설명을 하면 -> 컴퓨터는 0과1로 표현된 정보만을 이해합니다.그리고 0과 1로 표현되는 정보에는 크게 두 종류가 있는데 그게 바로 데이터 와 명령어 입니다 위 과정이 ..