이전 예외처리는 하나하나 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 리턴해주는 그런 불편함 없이, 문제 생겨도 던져주기만 하면 어디선가 예외처리해준다, 내 코드는 성공할거라는 걸 전제로 쭉 코딩.
=> 회사에 남아있는 안좋은 코드들은 글로벌 예외처리화 시키는 게 좋다....!
'프레임워크 > SPRING 스프링' 카테고리의 다른 글
프레임워크 특징과 사용 이유, 제품 종류(스프링, 전자정부 프레임워크) (0) | 2023.06.01 |
---|---|
SPRING @Transactional : 그냥 db처리시 필수 (0) | 2023.02.21 |
spring data exceptionResolver 오류 : 데이터와 비즈니스 validation 설정 (0) | 2023.02.14 |
postman 오류 : Desktop Agent unavailable (0) | 2023.02.13 |
IntelliJ HTTP Clinet plugin은 돈 내야(Ultimate) 쓸 수 있어요. (0) | 2023.02.13 |