Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

예외 처리 방식 개선 #650

Open
limehee opened this issue Jan 7, 2025 · 0 comments
Open

예외 처리 방식 개선 #650

limehee opened this issue Jan 7, 2025 · 0 comments
Assignees
Labels
🔨 Refactor 코드 수정 및 개선

Comments

@limehee
Copy link
Collaborator

limehee commented Jan 7, 2025

Describe

현재 예외 처리는 사용자 정의 예외 클래스를 생성하고, 이를 핸들러에서 처리하는 방식으로 운영되고 있습니다. 이 방식은 다음과 같은 문제를 야기합니다.

  1. 복잡성 증가
  • 프로젝트 전반에 걸쳐 많은 수의 사용자 정의 예외 클래스가 생성되면서 관리가 어려워지고, 구조의 복잡성이 증가합니다.
  1. 핸들러 로직 누락 위험
  • 새로운 예외 추가 시 핸들러에서 이를 누락하거나 잘못된 매핑으로 인해 휴먼 에러가 발생할 가능성이 있습니다.
  1. 예외 클래스 관리의 어려움
  • 새로운 예외를 추가하거나 제거하는 과정에서 더 이상 사용되지 않는 예외를 추적하고 관리하기 어렵습니다.

개선 방안

  1. 중앙 집중식 예외 관리
  • 예외를 BaseExceptionErrorCode를 통해 관리하며, 필요 이상의 사용자 정의 예외 클래스 생성을 방지합니다.
  • 모든 예외는 ErrorCode와 매핑하여 처리합니다.
  1. 일관된 JSON 응답 구조 제공
  • 예외 발생 시 동일한 응답 구조(success, data, errorMessage)를 반환합니다.
  • errorMessage는 예외 클래스 이름 대신, ErrorCode 이름을 반환합니다.
  • e.g. ALREADY_EXISTS_MEMBER, INVALID_PASSWORD
  1. 클라이언트를 위한 명확한 협업 환경 제공
  • ErrorCode 이름과 상태 코드를 통해 클라이언트가 오류를 직관적으로 이해하고 처리할 수 있도록 지원합니다.

Tasks

  • BaseExceptionErrorCode를 활용한 중앙 집중식 예외 관리 구현.

  • 예외 응답 구조를 다음 JSON 형식으로 통일

    • success: 요청 성공 여부 (false로 고정)
    • data: null로 고정
    • errorMessage: ErrorCode 이름 반환
  • GlobalExceptionHandler에서 발생하는 모든 예외를 ErrorCode와 매핑하여 처리.

  • 기존 사용자 정의 예외 클래스 및 핸들러 검토 후 불필요한 클래스 제거.

ETC

  • 클라이언트가 ErrorCode를 쉽게 처리할 수 있도록 노션 API 문서에 ErrorCode 리스트 및 설명 추가.
@limehee limehee added the 🔨 Refactor 코드 수정 및 개선 label Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔨 Refactor 코드 수정 및 개선
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant