스프링

KPT 회고

148june 2025. 4. 29. 18:44

KPT 회고 - 가게 기능 & 인증 처리 경험

✅ Keep (잘한 점, 계속할 점)

  • 가게 생성, 수정, 조회, 폐업 기능을 명확히 분리하고, 각각에 대해 Entity, DTO, Controller, Service, Repository 계층을 체계적으로 구성함
  • 가게 상태에 따른 처리 로직(예: 폐업 여부에 따라 수정 제한 등)을 도입해 실제 운영 환경을 고려한 설계를 함
  • @AuthenticationPrincipal을 사용하여 인증된 사용자 기반으로 가게 기능을 연동함

❌ Problem (문제점, 아쉬운 점)

  • @AuthenticationPrincipal로 받아오는 사용자 ID가 String 타입이라, 이를 Long으로 변환하는 과정에서 타입 불일치로 인한 혼란이 발생함
  • 인증 객체와 UserEntity 간의 연결 흐름이 명확하지 않아 디버깅에 시간이 소요됨
  • 일부 예외 상황(예: 최대 가게 수 초과, 비인가 사용자의 요청 등)에 대한 명확한 응답 처리가 부족했음

💡 Try (다음에 시도해볼 점)

  • 인증 객체를 커스텀하여 Long userId를 바로 가져올 수 있는 구조로 변경하거나, Principal → Entity 변환 과정을 명확히 분리
  • 인증된 사용자 기반 기능을 구현할 때는 API 요청 흐름과 타입 일관성을 먼저 설계에 반영
  • 예외 상황을 사전에 정의하고 공통 예외 처리 로직을 구성해 일관된 오류 응답 구조 확보