have-a-meal / have-a-meal-server

1 stars 0 forks source link

[EAT-20] unit test에서 exception log 출력 #20

Open ywjywj opened 5 months ago

ywjywj commented 5 months ago

상위 이슈

wjdwnsdnjs13 commented 5 months ago

AOP를 활용하는 건 어떨까요? BEFORE 사용하면 될 거 같아요!

wjdwnsdnjs13 commented 5 months ago

Exception 자체가 스프링에 좋지 않아서 Exception을 처리해서 에러 메시지를 보여주는 형태로 해야할 것 같다고 생각해서 try-catch 사용해서 로그 등의 로직 처리 후 해당 Exception에 대한 에러 메시지를 보여주는 것도 괜찮은 것 같습니다.

ywjywj commented 5 months ago

예외 log를 찍기 위해서 aop를 사용해 테스트를 진행해 본 결과 예외를 발생시키는 dataextract 클래스가 잡히지 않는 상황이 생김

ywjywj commented 5 months ago

excelextract 클래스를 static 메소드로 선언해 사용하였지만 aop로 log를 찍는 과정에서 알게된 사실이 유틸 클래스와 @Bean 으로 클래스를 구현하는데에 목적 별 차이가 있다는걸 알게됨. 이전까진 클래스에서 객체 생성 없이 기능만을 가진 클래스를 구현할때는 정적메소드를 통해서 구현하는 줄 알았지만 목적이나 사용성에 따라 빈으로 등록해서 사용하는 경우와 비교돼서 사용한다는걸 알게됨. 그래서 excelextract클래스를 빈으로 등록하여 aop를 사용하지 않고 unit 테스트에서 assertThrows를 사용하여 테스트가 통과되는걸 확인 하였음.

jaewoong-gwon commented 5 months ago

Exception 자체가 스프링에 좋지 않아서 Exception을 처리해서 에러 메시지를 보여주는 형태로 해야할 것 같다고 생각해서 try-catch 사용해서 로그 등의 로직 처리 후 해당 Exception에 대한 에러 메시지를 보여주는 것도 괜찮은 것 같습니다.

질문

  1. Exception 자체가 왜 스프링에 좋지 않은가요?
    • Exception 을 발생하게 두는것이 좋지 않다는 설명인것 같은데..? Exception 을 처리하지 않는것은 스프링이 아니여도 다 좋지 않은것 아닌가요??
wjdwnsdnjs13 commented 5 months ago

Exception 자체가 스프링에 좋지 않아서 Exception을 처리해서 에러 메시지를 보여주는 형태로 해야할 것 같다고 생각해서 try-catch 사용해서 로그 등의 로직 처리 후 해당 Exception에 대한 에러 메시지를 보여주는 것도 괜찮은 것 같습니다.

질문

  1. Exception 자체가 왜 스프링에 좋지 않은가요?
  • Exception 을 발생하게 두는것이 좋지 않다는 설명인것 같은데..? Exception 을 처리하지 않는것은 스프링이 아니여도 다 좋지 않은것 아닌가요??

말이 조금 애매했는데, Exception 발생 자체가 좋지 않다고 판단했습니다. 저희가 제대로 알지 못하는 Exception이 발생할 여지가 있으며, Exception 처리를 사용 객체에게 위임할 경우 이후 Exception 핸들링을 위해 사용되는 자원이 더 많아질 거라는 생각을 했습니다. 말씀하신대로 스프링에 제한되는 것은 아닌 듯 합니다 :)