본문 바로가기

프레임워크/SPRING 스프링

Ch 04-03. 예외처리를 활용한 서비스 로직 리팩터링_01

728x90

이전 예외처리는 하나하나 try catch로 예외처리 해줫었으나, 글로벌 범용으로 사용하고 있는 예외처리들을 소개한다.

 

Ch 04. 예외처리 - 03. 예외처리를 활용한 서비스 로직 리팩터링_01 강의 정리... 좀 어렵다

회사에선, 학교에선(10년 전 ㅋㅋ) try catch로 예외처리하는거라고 배웠는데 글로벌 예외처리라고 한번에 묶어서 예외처리를 공통으로 해주는 소스에 대한 설명이다. 

 

내가 개발을 안해봤지만 강의내용으로도 controller 소스가 더 직관적이고 간단해짐을 느꼈다. 

 

글로벌 예외처리 1.

 ExceptionHandler 하나로 모든 예외처리를 할 수 있는 방법

 

글로벌 예외처리 2. handlerException 

controller가 하나면 위 1번처럼 handler 하나로 예외처리하면 된다. 그치만 프로그램이 복잡해질 수록 controller가 많아져 controller마다 handler 를 만들게 되면 코드가 복잡해진다. 이를 해결할 수 있는게 2번째 글로벌 예외처리다.

 

정의되지 않은 error 메세지 나오면 상대방 입장에서도 좋음

그러나 불필요한 자세한 에러를 다 정해두면 보안측면에서 좋지 않을수 있음. 그래서 주의가 필요함.

 

 

###

Controller는 프레젠테이션 레이어임. 요청 잘 받고 응답 잘 주는, 밖으로 나와있는 부분이다.

정의해 준 요청 값에 대한 응답값 만들어준건데 try catch로 하다보면 불필요한 코드들이 숨어 비효율적으로 코딩하게 된다.

 

트랜잭션을 구분해줘야 하는 경우, 한 트랜잭션으로만 끝나지 않을 때만 분리해서 할때.. 아래 같은 코드가 될수 있음..

아래 같은 코드를 바꿔줘야함.

 

만들어줬던 exception들이 밖으로 . dto 리턴해주는 그런 불편함 없이, 문제 생겨도 던져주기만 하면 어디선가 예외처리해준다, 내 코드는 성공할거라는 걸 전제로 쭉 코딩. 

 

=> 회사에 남아있는 안좋은 코드들은 글로벌 예외처리화 시키는 게 좋다....!

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90