목록분류 전체보기 (110)
ㅅㅇ
0. Spring Securtiy 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 1. 스프링 필터를 사용하기 위한 위임 서블릿 필터 1. DelegatingProxyChain : 필터와 빈을 연결해주는 클래스 즉, 서블릿 필터에서 스프링 빈들을 주입하거나 사용하기 위해 필요한 클래스가 바로 DelegatingProxyChain 이다. 왜 필요한가 ? 서블릿 필터는 스프링 빈을 주입해서 사용할 수 없다. 스프링 빈은 스프링 컨테이너에서 생성 및 하는 컴포너트이고 서블릿필터는 서블릿 컨테이너에서 생성 및 관리하는 필터들이기 때문에 서로 실행되는 위치가 다르기 때문이다. 스프링 시큐리티는 요청에 대한 인증 및 인가와 같은 보안 처리를 필터 기반으로 처리하는데, 개..
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 레벨로 설정하여 로그를 확인 출력 방식에 대해 설정할 수 있음. 콘솔, 메일, 파일, 데이터베이스 등 설정 파일을 일정 시간마다 스캔하여, 어플리케이션 중단 없이 설정 변경 가능 스캔..