KPT 회고 - 가게 기능 & 인증 처리 경험
✅ Keep (잘한 점, 계속할 점)
- 가게 생성, 수정, 조회, 폐업 기능을 명확히 분리하고, 각각에 대해 Entity, DTO, Controller, Service, Repository 계층을 체계적으로 구성함
- 가게 상태에 따른 처리 로직(예: 폐업 여부에 따라 수정 제한 등)을 도입해 실제 운영 환경을 고려한 설계를 함
- @AuthenticationPrincipal을 사용하여 인증된 사용자 기반으로 가게 기능을 연동함
❌ Problem (문제점, 아쉬운 점)
- @AuthenticationPrincipal로 받아오는 사용자 ID가 String 타입이라, 이를 Long으로 변환하는 과정에서 타입 불일치로 인한 혼란이 발생함
- 인증 객체와 UserEntity 간의 연결 흐름이 명확하지 않아 디버깅에 시간이 소요됨
- 일부 예외 상황(예: 최대 가게 수 초과, 비인가 사용자의 요청 등)에 대한 명확한 응답 처리가 부족했음
💡 Try (다음에 시도해볼 점)
- 인증 객체를 커스텀하여 Long userId를 바로 가져올 수 있는 구조로 변경하거나, Principal → Entity 변환 과정을 명확히 분리
- 인증된 사용자 기반 기능을 구현할 때는 API 요청 흐름과 타입 일관성을 먼저 설계에 반영
- 예외 상황을 사전에 정의하고 공통 예외 처리 로직을 구성해 일관된 오류 응답 구조 확보
'스프링' 카테고리의 다른 글
JPQL로 작성된 findByIdWithUser 를 QueryDSL로 변경합니다. (0) | 2025.05.05 |
---|---|
JPA 다대일 연관관계에서 연관관계 편의 메서드를 꼭 분리해야 할까? (0) | 2025.05.02 |
트러블슈팅 JWT와 @AuthenticationPrincipal의 차이점 (0) | 2025.04.28 |
HttpStatus란 (0) | 2025.04.28 |
도커 설정 (0) | 2025.04.22 |