목록SW_STUDY/SpringBoot (14)
ㅅㅇ
1. RestAPI 요청 시, 발생할 수 있는 400 대 ClientRequest(Series.CLIENT_ERROR)에러와 사용자 정의 예외 처리를 제외한 모든 500 에러(Internal Server Error) 예외 처리 알아보기 ⇒ “스프링 예외를 미리 처리해둔 추상 클래스ResponseEntityExceptionHandler 를 상속받을 것인데, 내가 클라이언트에게 응답하고자 하는 페이로드로 재정의한다." 1. 먼저, 코드 작성 전에 아래 두 가지를 살펴봐야 한다. HttpStatus(org.springframework.http.HttpStatus) 아래 url 확인 [spring-framework/HttpStatus.java at 4.3.x · spring-projects/spring-fram..
Exception 스프링 부트의 예외 처리방식은 크게 2가지가 존재 @ControllerAdvice 를 통한 모든 Controller 에서 발생할 수 있는 예외처리 @ExceptionHandler 를 통한 특정 Controller 의 예외처리 ⇒ @ControllerException 로 모든 컨크롤러에서 발생한 예외를 정의하고, @ExceptionHandler 를 통한 발생하는 예외 마다 처리할 메소드를 정의 1. 예외 클래스 크게 말하면 로직 상 문제가 있어보인다와 없어보인다의 차이 Checked Exception (그 외 Exception) UnChecked Exception(RuntimeException) 처리 여부 반드시 예외 처리 필요 명시적 처리 강제하지 않음 확인 시점 컴파일 단계 문법적으로..
유효성 검사 & 데이터 검증 Vaildation 이란? 서비스의 비즈니스 로직이 올바르게 동작하기 위해 사용되는 데이터에 대한 사전 검증하는 작업 유효성 검사 혹은 데이터 검증이라고 부르는데, 흔히 Validation 이라고 부름 들어오는 데이터에 대해 개발자가 의도한 값이 의도한 형식의 값으로 제대로 들어오는지 체크하는 과정 데이터의 검증은 여러 계층에서 발생하는 흔한 작업 기존 Validation의 여러 문제가 있는데, 이를 해결하기 위해 Java에서 Bean Validation, Hibernate Validator 를 제공함 Bean Validation 은 어노테이션을 통해 다양한 데이터를 검증할 수 있게 기능을 제공 Hibernate Validator는 Bean Validation 명세에 대한 구..
Logback 로그에 특정 레벨을 설정할 수 있음. Trace -> Debug -> Info -> Warn -> Error 왼쪽으로 갈수록 가벼운 로그, 오른쪽으로 갈수록 위험한 에러. 중요도를 뜻함. 실 운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인할 수 있음 다르게 하는 이유는? 테스트 할 때는 자세한 내용을 파악해야 하기 때문에 DEBUG 정도의 레벨로 설정하여 개발을 수정 보완한다. 근데 DEBUG 로 찍으면 로그가 많이 나와 실제 퍼포먼스가 낮아진다. 그렇기에 실 운영에서는 INFO나 WARN 레벨로 설정하여 로그를 확인 출력 방식에 대해 설정할 수 있음. 콘솔, 메일, 파일, 데이터베이스 등 설정 파일을 일정 시간마다 스캔하여, 어플리케이션 중단 없이 설정 변경 가능 스캔..