Bicycle, 지역 코드 저장 방식
JPA level caching ✅
엔티티 레벨 전체에서 캐싱되는 것이다.
유연한 업데이트
시나리오 : Bicycle, 지역 코드를 관리자가 업데이트 해야 할 경우
코드 수정 필요함
HashMap
자바 자료구조 활용
유연하지 못한 업데이트
코드 수정 크게 필요 없음
ControllerAdvice 문제
- ExceptionHandler 제어 클래스를 직접 만들자는 의견
- 지나친 길이
- 정말 필요로 할 경우에만 만들기로 ✅
서비스 계층 Dto 반환 메서드 naming 문제
- entity → dto
- 보통 서비스 계층에서 이루어진다.
- dto 반환 메서드 네이밍 통일하자.
- 조회 dto
- get+ DTO 이름 + By+ 조회 식별자
- get + paged + DTO이름 + By + 조회 식별자
- 굳이 Result가 필요 없는 상황에서는 Info를 반환하는 것만으로 충분하다.
- 조회 서비스 메서드 첫 단어 이름 ✅
- load
- service
- get
- controller
- find
- repository
테스트
- API 테스트 인증 포함 유무
- 해당 컨트롤러가 인증 로직을 거치는지 확인해보는 것이 매우 중요. ✅
- restdocs
- mock으로 반환되는 객체를 response에 어떻게 담을 것인가?
- DTO를 반환하게 할 수 있다. ✅
- 단위 테스트, 통합 테스트 실행 분리
- 일단 보류
- 단위 테스트 코드가 애초에 별로 없음
- 초기 데이터 주입 문제
- 배포 서버 admin 등
- 일단 code로 데이터들로 넣고, 어느 정도 schema가 확정된 다음에는 sql로 진행한다는 의견.
- 회원 가입이 완전하게 구현되고 프론트들이 테스트 하는 것이 바람직하지 않을까.
- SQL로 생성을 하면 연관관계가 설정된 데이터를 테스트 할 수 없다.
- 테스트용 공통된 데이터를 쓰느냐?
- 각자 데이터를 알아서 쓰자! ✅
- 각자 데이터를 만들 때 SQL을 쓰냐 코드를 쓰냐
- SQL : 매우 피곤하다(SQL에서 생성된 ID를 직접 SQL 코드를 확인하고 가져와야 한다.). 데이터의 정합성을 보장하도록 하는 코드가 매우 까다롭다.
- 코드 : 연관관계 설정이 상대적으로 쉽다. ✅
- 2차 캐시 대상인 Bicycle, Address는 SQL 문으로 넣자(테스트 코드 상관없이) ✅
시큐리티
- 토큰 문제
- 토큰 발급 이후라면, 현재 DB 거치지 않고 토큰만 사용하여 검증함
- 토큰을 받은 상태에서 탈퇴한 상황이라면?
- 일단 Bob이 이슈로 등록 후, 나중에 리마인드하기로 ✅
시간 포맷 문제
- Java의 시간 표준 ✅
- 예상 소요 시간은 String으로
- 나머지 시간들은 표준(Date) 사용