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

[BE] WARN 로그의 발생 이유를 자세히 표시한다. #448

Closed
xxeol2 opened this issue Sep 15, 2023 · 2 comments
Closed

[BE] WARN 로그의 발생 이유를 자세히 표시한다. #448

xxeol2 opened this issue Sep 15, 2023 · 2 comments
Labels
BE 백엔드에 관련된 작업 🙋‍♀️ 제안 제안에 관한 작업

Comments

@xxeol2
Copy link
Member

xxeol2 commented Sep 15, 2023

✨ 세부 내용

위 이슈에서 WARN 로그에 스택 트레이스 출력을 제거했습니다.

하지만 제거를 하니 어느 부분에서 InternalServerException이 발생하였는지 알 수 없습니다.

image

아래 방법 중 하나를 적용하는 것을 제안합니다.

  1. WARN 로그에 다시 스택 트레이스 출력
  2. InteralServerException에도 예외 메세지 담아주기. (클라이언트단으로 보내는 예외 메세지는 "서버 내부에 문제가 발생했습니다."로 설정하고, 로그용 메세지는 상세한 메세지를 담는 방법을 고려할 수 있을 것 같습니다.)

⏰ 예상 소요 시간

30분

@xxeol2 xxeol2 added BE 백엔드에 관련된 작업 🙋‍♀️ 제안 제안에 관한 작업 labels Sep 15, 2023
@xxeol2
Copy link
Member Author

xxeol2 commented Sep 26, 2023

도메인 코드에서 표준예외 던지기(IllegalArgumentException) vs 커스텀 예외 던지기(InternalServerException)

ㄴ IllegalArgumentException은 정말 우리가 예상치 못한(잡지 못한) 예외에서만 던지자.
ㄴ 우리가 방어 못한 부분이 있어서 예외가 발생한거니, IllegalArgumentException을 던져서 error 레벨 로그를 남기도록 하자. warn 레벨 로그면 문제를 인지하기 어려울 것이다.

도메인 코드 예외 400 vs 500

ㄴ DTO validation에서 원래 걸러져야하는건데 걸러지지 않았으니 서버잘못. 즉, 500이다.
ㄴ 그래도 사용자 입력이 잘못된건데 사용자 입장에서 "서버 내부 오류" 메세지를 받는건 사용자 친화적이지 않은 것 같다. 즉, 400이다.

도메인용 에러 클래스 정의

ㄴ 도메인용 에러 클래스를 정의해, 사용자한테는 400에러를 내려주고 로깅 레벨은 error로 하자.
ㄴ 도메인 안에서도 정말 사용자의 입력이 잘못된게 있고, 서버 오류인 경우가 있는데 이를 다 분류하는 것은 너무 복잡하다.

등등으로 얘기가 길어졌습니다..

@xxeol2
Copy link
Member Author

xxeol2 commented Oct 1, 2023

@github-project-automation github-project-automation bot moved this from Todo to Done in 2023-festa-go Nov 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드에 관련된 작업 🙋‍♀️ 제안 제안에 관한 작업
Projects
Status: Done
Development

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

2 participants