이번 과제는 레거시 코드를 리펙토링해보는 과제였습니다.
트러블 슈팅
1. 과제 파일 실행 시 에러 발생
문제 발생
과제를 받아 실행을 했을 때 에러가 발생하였습니다.
UnsatisfiedDependencyException
문제 원인filterConfig
에서 jwtUtil
의 bean
을 생성하지 못했습니다.
민감정보 보호를 위해 gitignore
에 .properties
가 등록되어있어 fork 받은 파일에 properties 파일이 없었기에 jwt.secret.key도 없었기 때문이었습니다.
해결 방법application.properties
파일을 만들어 jwt.secret.key
를 등록하였습니다.
이후 .properties
에 비해 .yml
이 계층구조가 명확하여 가독성이 더 좋다고 판단하여 변경하였습니다.
2. 날짜 Type 불일치
문제 발생
일정 검색 시 기간 검색 기능을 구현하는 중 기간에 대한 정보를 넣고 검색하는 경우 에러가 발생하였습니다.
원인
사용자에게 받는 날짜의 타입은 LocalDate
타입인데 테이블에 저장된 Todo의 modifiedAt
데이터의 타입은 LocalDateTime
이기 때문에 Type 불일치로 인해 에러가 발생하였습니다.
해결 방법
편한 방법으로는 modifiedAt
의 타입을 LocalDate
형식으로 변경할 수도 있었겠지만 해당 방법을 사용할 경우 다른 조회 조건에서 문제가 발생할 가능성이 있다고 생각했습니다.
사용자에게 받아온 LocalDate
타입의 데이터를 LocalDateTime
타입으로 변경하는 작업을 추가하였습니다.
시작일의 경우 atStartOfDay()
를 사용하여 하루의 시작인 00:00:00 으로 설정하였고
종료일의 경우 atTime(LocalTime.MAX)
를 사용하여 하루의 끝인 23:59:59.999999...로 설정하였습니다.
'내일배움캠프 > 내일배움캠프' 카테고리의 다른 글
[내일배움캠프] 심화 과제 진행해보기 Lv .2 (0) | 2024.11.18 |
---|---|
[내일배움캠프] TIL : 관점 지향 프로그래밍 AOP (0) | 2024.11.18 |
[내일배움캠프] TIL : RawJPA 기본 (0) | 2024.11.14 |
[내일배움캠프] TIL : Transaction (0) | 2024.11.13 |
[내일배움캠프] TIL : Projection (0) | 2024.11.13 |
댓글