[Spring Boot] 필터 (Filter)
·
Java/Spring Boot
필터 (Filter)  - 요청/응답을 처리하기 전에 특정 작업을 수행할 수 있는 컴포넌트  - 웹 애플리케이션 영역에서 관리  - Spring Container의 앞에 위치하며, Web Container (WAS) 내에서 실행됨      → 필터는 요청이 필터/서블릿에 도달하기 전에 요청을 가로챌 수 있음 #  실행 시점  - 클라이언트 요청이 실제 서블릿/컨트롤러에 도달하기 전에 실행됨  - 서블릿/컨트롤러의 응답이 클라이언트로 돌아가기 전에 실행됨 #  목적  i. 인증 및 인가      : 사용자의 자격 증명을 확인하고 요청된 리소스에 대한 액세스 권한을 검사함  ii. 로깅      : 요청 및 응답에 대한 로깅 수행  iii. 요청 및 응답 수정      : 헤더, 쿠키, 파라미터 등을 추가/..
[Spring Boot] JSP 템플릿 엔진 연결하기
·
Java/Spring Boot
1. build.gradle 파일에서 의존성 추가12345dependencies {    implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' // JSP    implementation 'javax.servlet:jstl' // JSTL    ...}Colored by Color Scriptercs" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스   - Tomcat에서 JSP를 처리하기 위한 라이브러리  - Embedded Tomcat       : 스프..
[Spring Boot] 예외 처리 (exception)
·
Java/Spring Boot
#  관련 포스팅  - 사용자 정의 예외 클래스와 에러 페이지 : https://young0105.tistory.com/227 @ControllerAdvice & @RestControllerAdvice  - 예외 처리를 담당하는 클래스에 붙이는 어노테이션  - 스프링에서 예외 처리를 담당하는 핵심적인 요소 중 하나 #  차이점  - 반환 타입과 기본 응답 형태가 다름  ▶ @ControllerAdvice      · View를 렌더링하기 위해 ModelAndView 형태로 객체를 반환하도록 기본 설정되어 있음          - 요청에 대한 응답이 View 형태로 전달됨 (예외 page 리턴)          - JSP 등의 템플릿 엔진을 사용할 수 있음     ▶ @RestControllerAdvice..
[Spring Boot] Validation 관련 : BindingResult 클래스
·
Java/Spring Boot
#  관련 포스팅  - Validation 개념 : https://young0105.tistory.com/194 BindingResult 클래스  - @Valid에 대한 결과 값을 갖는 클래스       → 직접 예외에 대한 클래스를 컨트롤할 수 있음 (POST 요청에서 자주 사용됨)  - 단독으로 매개변수에 들어가면 오류 발생      → 반드시 유효성 검사 대상인 다른 매개변수 바로 뒤에 지정되어야 함  - Error에 대한 정보를 담는 DTO 클래스를 따로 만들어서 DTO 형식으로 에러 정보를 보낼 수도 있음 1234567891011121314151617181920212223242526272829303132333435@PostMapping("/user3")public ResponseEnti..
[Spring Boot] Validation (유효성 검사)
·
Java/Spring Boot
Validation  - 예외를 방지하기 위해 미리 검증하는 과정 (방어적 코드를 대신해서 사용할 수 있음)  - 검증해야 할 값이 많은 경우 코드의 길이가 길어짐      → 횡단 관심사 (AOP 기반) : 핵심 기능과의 분리  - 흩어져 있는 경우 어디에서 검증하는지 알기 어려움      → 재사용에 대한 한계가 있음  - 검증 로직이 변경되는 경우, 참조하는 클래스에서 로직이 변경되어야 하는 부분이 발생할 수 있음  - 메서드 호출 전/후에 필터링 및 검증 수행 #  Validation 라이브러리 추가하기 (Gradle 빌드)  1. build.gradle 파일에 명시 1234dependencies {    implementation 'org.s..