Spring(60)
-
[Spring Plus] Level 1-5 요구사항 반영
'Level 0-0' 의 요구사항을 반영한 내용을 기록한 포스팅이다. 어떠한 생각과 과정을 통해 요구사항을 반영했는지 알 수 있도록 작성해 보았다. 0. 요구사항 API(GET /todos) 요청시 검색 조건을 사용할 수 있도록 코드를 수정해야 한다. 사용할 수 있는 검색 조건은 '날씨, 수정 기간' 이다. 조건 중 '수정 기간' 은 특정 범위의 기간안에 수정된 일정들을 조회하기 위해 사용된다. 모든 검색 조건들은 있던 없던 요청이 수행될 수 있어야 한다. 즉, 요청에 모든 조건이 없을 수도 있고 날씨 조건만 있거나 수정 기간 조건만이 있을 수도 있다. 또한 모든 조건이 있을 수도 있다. 1. TodoController 수정 먼저 컨트롤러에서 검색 조건에 해당하는 값을 전달 받을 수 있도록 'TodoC..
2024.11.13 -
[Spring Plus] Level 1-4 요구사항 반영
'Level 1-4' 의 요구사항을 반영한 내용을 기록한 포스팅이다. 어떠한 생각과 과정을 통해 요구사항을 반영했는지 알 수 있도록 작성해 보았다. 0. 요구사항 테스트 패키지 'org.example.expert.domain.todo.controller.TodoControllerTest' 의 테스트가 실패하고 있다. 해당 테스트가 정상적으로 수행되어 통과할 수 있도록 테스트 코드를 수정해야 한다. 1. 문제 원인 파악 요구사항에서 말한 테스트는 일정 조회(단건)시 해당 일정이 존재하지 않는 일정일 경우의 응답을 확인하는 코드였다. 하지만 아래와 같이 어색한 부분이 보였는데 바로 'then' 부분의 응답 값을 확인하는 부분이었다.@WebMvcTest(TodoController.class)class Tod..
2024.11.13 -
[Spring Plus] Level 1-3 요구사항 반영
'Level 1-3' 의 요구사항을 반영한 내용을 기록한 포스팅이다. 어떠한 생각과 과정을 통해 요구사항을 반영했는지 알 수 있도록 작성해 보았다. 0. 요구사항 AOP 가 원래 의도와 다르게 잘못 동작하고 있다. 'UserAdminController' 클래스의 'changeUserRole()' 수행전 'AdminAccessLoggingAspect' 클래스의 'logAfterChangeUserRole()' 이 동작하도록 코드를 수정해야 한다. 1. 문제 원인 파악 현재 프로젝트의 'org.example.expert.aop.AdminAccessLoggingAspect' 클래스는 아래와 같다.@Slf4j@Aspect@Component@RequiredArgsConstructorpublic class Admi..
2024.11.12 -
[Spring Plus] Level 1-2 요구사항 반영
'Level 1-2' 의 요구사항을 반영한 내용을 기록한 포스팅이다. 어떠한 생각과 과정을 통해 요구사항을 반영했는지 알 수 있도록 작성해 보았다. 0. 요구사항 기획자의 요청을 현재 프로젝트에 반영해야 한다. 전달 받은 요청은 JWT 에 사용자 닉네임 정보를 담아 프론트 쪽에서 이를 꺼내 화면에 보여주길 원한다는 것이다. 1. 사용자 닉네임 추가1-1. User 클래스 필드 추가 일단 JWT 에 사용자의 닉네임 정보를 담고 싶다면 User 클래스와 매핑된 테이블에 닉네임 정보를 가질 필드 및 컬럼을 아래와 같이 추가할 필요가 있다 생각했다.@Getter@Entity@NoArgsConstructor@Table(name = "users")public class User extends Timestamped..
2024.11.12 -
[Spring Plus] Level 1-1 요구사항 반영
'Level 1-1' 의 요구사항을 반영한 내용을 기록한 포스팅이다. 어떠한 생각과 과정을 통해 요구사항을 반영했는지 알 수 있도록 작성해 보았다. 0. 요구사항 현재 'API(POST /todos)' 를 요청할 경우 아래와 같은 에러가 발생하고 있다.jakarta.servlet.ServletException: Request processing failed: org.springframework.orm.jpa.JpaSystemException: could not execute statement [Connection is read-only. Queries leading to data modification are not allowed] [insert into todos (contents,created_at,..
2024.11.11 -
[Spring Plus] 5분 기록 테이블
이번 개인과의 5분 기록 테이블을 작성한다. 프로젝트의 성격에 맞추어 테이블에는 아래와 같은 정보를 작성한다.단계 : 작업한 요구사항의 Level(단계) 정보 작성요구사항 : 작업한 요구사항의 간략한 정보를 작성분류 : 구현, 트러블 슈팅 등 작업의 목적을 작성날짜 : 작업 날짜 작성링크 : 작업한 내용에 대한 블로그 게시물 또는 Github 커밋 내역을 링크단계요구사항분류날짜링크1-1'API(/todos)' 호출 시 발생 에러 해결트러블슈팅2024.11.11블로그1-2'User' 클래스 'nickname' 필드 추가 및 'JWT' 사용자 별명 정보 삽입코드수정2024.11.12블로그1-3'AdminAccessLoggingAspect.logAfterChangeUserRole()' 이 원래 의도대로 동작하..
2024.11.11