코드단 제안 사항 (카카오톡 내용 요약) - depromeet/Took-BE GitHub Wiki

카카오톡에서 나눈 이야기를 요약하였습니다.

1. 인증 관련 네이밍 정리

  • 향후 기본 로그인 추가 가능성을 고려하여 oauth 대신 auth 사용 제안.
  • API 경로 예시:
    • 소셜 로그인 → /api/auth/login/kakao
    • 기본 로그인 → /api/auth/login/basic
  • 클래스 구조 제안:
    • 기존: OAuthController > OAuthService > (OAuth 관련 클래스들)
    • 변경: AuthController > AuthService > (OAuth 클래스 & 기본 로그인 클래스 분리)

2. 에러 코드 위치 조정

  • 에러 코드 패키지를 global이 아니라 각 feature 내에서 선언하는 방향 제안.
  • 이유:
    • 에러 코드는 feature별로 사용되며, global에 두면 불필요한 계층 구조가 생김.
    • 기존: global > exception > [feature]
    • 변경: [feature] > exception

추가 논의 필요: CommonErrorCodeexception의 위치

3. Security 패키지 위치 조정

  • 기존: security 패키지가 global 내에 위치
  • 변경 제안:
    • AuthFilter, TokenProvider 제외한 모든 security 관련 클래스를 feature > auth로 이동
    • 이유:
      • security 패키지는 auth에서만 사용됨.
      • 클래스 검색 시 feature 내부에 있는 것이 더 자연스러움.

4. filter → interceptor 변경 제안

  • 기존: 에러 응답 바디 형식 통일 필요

    response.sendError(HttpServletResponse.SC_UNAUTHORIZED, ex.getMessage());
    
  • 변경 제안:

    • 번거로운 응답 생성 로직

image

  • 공통 응답 관리가 한 곳에서 되지 않음

5. 커스텀 예외

  • 기존: 여러 개의 커스텀 예외
  • 변경 제안: 하나의 커스텀 예외로 통합 ( == 내가 초기 의도한 방향 )
    • 내가 생각하는 커스텀 예외의 목적: “방대한 표준 예외 관리 어려움” + “서비스 내에서 의도한 예외임을 드러내기 위함”
    • 기존의 방법은 위 목적을 흐린다고 생각
    • ErrorCode만으로도 예외의 목적은 충분히 전달 가능
    • 불필요한 커스텀 예외가 많아지면 유지보수성 저하됨