전체 글
-
[SpringMVC] ResponseEntity 적용Programming/Spring MVC 2021. 4. 16. 18:13
개요 기존 프로젝트에는 단순히 값을 body에 담아 전달하기 위한 api 서버를 구성하였다. 하지만 프론트 개발자와의 원할한 통신을 위해서는 body 이외에 HTTP의 상태 코드와 헤더 정보를 좀 더 상세하게 조작해야 할 필요성을 느끼게 되었다. @RestController Spring에는 기본적으로 @Controller와 @ResponseBody을 합쳐둔 @RestController 애노테이션으로 인하여 손쉽게 REST API를 구성할 수 있다. 간단한 User의 정보를 가지고 있는 도메인 클래스이다. 밑의 코드는 @RestController가 적용된 controller에 정의한 User 조회 메소드이다. postman을 활용하여 간단하게 확인해보면 Json 형태로 body에 담겨 응답하는 것을 확인할..
-
[JPA] H2의 @GeneratedValue 문제Programming/JPA 2021. 4. 9. 15:47
개요 프로젝트를 진행하던 도중 아직 User 관련된 기능들이 완성되지 않아서 DB에 초기값을 insert하기 위해 웹 서버를 실행하는 시점에 값을 insert 하기로 결정하였다. 필요한 파일과 설정 준비 우선 resources 밑에 값 세팅을 위한 insert를 적어둘 data.sql을 생성하였다. data.sql insert into user (created_date,last_modified_date, email, password, name, provider, user_image_url, entrance_year, graduation_year) values (NOW(), NOW(), 'admin@email.com', '1234', '홍길동', 'KAKAO', '/img', now(), now()); P..
-
[Baekjoon Online Judge] 10546번: 배부른 마라토너문제 풀이/Baekjoon Online Judge 2021. 4. 4. 14:07
10546번: 배부른 마라토너 마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명 www.acmicpc.net 요구사항 - 마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명만 빼고! - 모두가 참가하고 싶어서 안달인데 이런 백준 마라톤 대회에 참가해 놓고 완주하지 못한 배부른 참가자 한 명은 누굴까? 입력 - 첫째 줄에는 참가자 수 N이 주어진다. (1 ≤ N ≤ 105) - N개의 줄에는 참가자의 이름이 주어진다. - ..
-
[Baekjoon Online Judge] 5397번: 키로거문제 풀이/Baekjoon Online Judge 2021. 4. 4. 14:02
5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L의 길이 ≤ 1,000,000) 강산이가 백스페이 www.acmicpc.net 요구사항 - 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. - 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. - 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 입력..
-
[Baekjoon Online Judge] 10845번: 큐문제 풀이/Baekjoon Online Judge 2021. 4. 4. 13:50
10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 요구사항 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출..
-
[JPA] 왜 JPA의 Entity는 기본 생성자를 가져야 하는가?Programming/JPA 2021. 4. 1. 13:26
왜 JPA의 Entity는 기본 생성자를 가져야 하는가? 정확히 이야기하면 Entity는 반드시 파라미터가 없는 생성자가 있어야 하고, 이것은 public 또는 protected 이어야 한다. 이러한 궁금증을 가지게 된 이유는 setter의 제한을 위해 정적 팩토리 메소드의 도입에서 시작되었다. setter의 제한 Entity의 모든 필드에 public setter 메소드를 생성하는 것은 객체의 값의 변경을 열어두기 때문에 일관성을 보장할 수 없다. 또한 단순히 setter 이기 때문에 그 의도를 쉽게 파악할 수 없다. setter 메소드를 제공하는 것 보단 확실한 비즈니스가 드러나는 메소드를 제공하는 것이 더욱 바람직하다. 간단한 예시를 위하여 학생을 나타내는 Student와 학생의 소속을 나타내는 D..
-
[Baekjoon Online Judge] 10828번: 스택문제 풀이/Baekjoon Online Judge 2021. 3. 29. 16:41
10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 요구사항 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. - push X: 정수 X를 스택에 넣는 연산이다. - pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 력한다. - size: 스택에 들어있는 정수의 개수를 출력한다. - empty: 스택이 비어있으면 1, 아니면 0을 출력한다. - top: 스택의..
-
[Baekjoon Online Judge] 19947번: 투자의 귀재 배주형문제 풀이/Baekjoon Online Judge 2021. 3. 29. 16:19
19947번: 투자의 귀재 배주형 2020년에 학교로 복학한 주형이는 월세를 마련하기 위해서 군 적금을 깨고 복리 투자를 하려고 한다. 주형이가 하려는 투자에는 3가지 방법의 투자 방식이 있다. 1년마다 5%의 이율을 얻는 투자 ( www.acmicpc.net 요구사항 2020년에 학교로 복학한 주형이는 월세를 마련하기 위해서 군 적금을 깨고 복리 투자를 하려고 한다. 주형이가 하려는 투자에는 3가지 방법의 투자 방식이 있다. - 1년마다 5%의 이율을 얻는 투자 (A) - 3년마다 20%의 이율을 얻는 투자 (B) - 5년마다 35%의 이율을 얻는 투자 (C) 투자를 할 때에는 다음과 같은 주의점이 있다. - 투자의 기한(1년, 3년, 5년)을 채우는 시점에 이율이 반영되며, 그 사이에는 돈이 늘어나지..