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

[016-HelpMS-리포지토리-구조변경]JPAException을 인프라로 옮기기 위해 SpringJPA를 상속받는 JPAR… #36

Merged

Conversation

ScottSung7
Copy link
Collaborator

@ScottSung7 ScottSung7 commented Aug 17, 2024

추가사항

  • JPA Exception 부분이 계속 중복되는 코드로 나와서 차라리 인프라로 빼서 JPA Repository에 JPAException 처리 하였습니다.
  • 다른 JPA Repository들에도 중복되는 코드라고 생각해 AOP로 제작하였습니다.

** 전체보다 Aspect부분과 JPARepository중 하나만 보셔도 될것 같습니다.

@ScottSung7 ScottSung7 requested a review from heeve1 August 17, 2024 09:11
@ScottSung7 ScottSung7 self-assigned this Aug 17, 2024
Comment on lines +8 to +11
public enum JPAErrorCode {
ERROR_SAVE("JPA 저장 작업 중 에러"),
ERROR_UPDATE("JPA 업데이트 작업 중 에러"),
ERROR_READ("JPA 조회 작업 중 에러");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 jpaException을 만드신 이유는 어떤 작업을 하다가 발생했는지에 대한 메시지를 다르게 처리해주고 싶으셨던 것 같군요!
운영 환경에서는

  1. 보통 유저는 개발 레벨의 상세한 에러에 대한 관심이 없고 (서비스에 문제가 발생했습니다. 잠시후 시도해주세요 정도로도 보통 충분하니까요)
  2. 시스템 어디에서 문제가 발생했는지 이 정보를 악용하는 유저가 있을 수도 있어서
    상세한 메시지는 운영환경에서는 보여주지 않는게 좋을 것 같습니다.

하지만 개발 환경에서는 어디서 에러가 발생했는지 알게되면 도움이 될 수 있을 것 같기도 하네요~

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

맞습니다. 개발자들에게만 메시지를 줄 수 있게 추후 HOTFIX로 업데이트 해 보겠습니다. (이슈)

Comment on lines +26 to +33
@Around("@annotation(JPASave)")
public Object handleJPASaveException(ProceedingJoinPoint joinPoint) throws Throwable {
try {
return joinPoint.proceed();
} catch (Exception e) {
throw new JPAException(ERROR_SAVE, e);
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exception은 catch하지만 throwable은 그대로 throws 하고 있군요. catch에서 Throwable를 잡아야 모든 예외에 대해 JPAExcpetion으로 래핑되지 않을까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

맞습니다. 수정하도록 하겠습니다! (이슈)

@ScottSung7 ScottSung7 merged commit 2728c44 into HOTFIX-01-불완전-객체 Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants