Spring Framework/Spring Boot 8

[Spring Boot] 8. Thymeleaf

Thymeleaf는 SpringBoot에서 공식적으로 지원하는 View 템플릿이다.Thymeleaf의 특징- JSP와 달리 Thymeleaf 문서는 html 확장자를 가지고 있어 JSP처럼 Servlet이 문서를 표현하는 방식이 아니기 때문에   서버 없이도 동작이 가능하다.- SSR 템플릿으로 백엔드에서 HTML을 동적으로 생성한다.- SpringBoot에서 JSP는 별도의 설정이 필요하지만 Thymeleaf는 바로 적용이 가능하다.Thymeleaf의 장단점1. 장점- Natural Templates를 제공한다. (HTML의 기본 구조를 그대로 사용할 수 있으며 HTML 파일을 직접 열어도 동작한다.)  * Natural Templates: 기존 HTML의 마크업 언어를 사용한 디자인 구조로 되어 있는..

[Spring Boot] 6. Interceptor

Spring Interceptor란?Spring Interceptor는 Spring 프레임워크에서 제공하는 기능 중 하나로, 클라이언트의 요청을 가로채서 처리하는 역할을 한다. 이를 통해 공통적인 로직(로깅, 성능 측정, 캐싱)을 처리하거나, 보안(인증, 권한) 등의 목적으로 특정 조건을 검사하고 해당 요청을 처리하거나 무시할 수 있다. Dispathcer Servlet이 핸들러 매핑을 통해 controller을 찾도록 요청하는데, 그 결과로 실행 체인(HandlerExecutionChain)을 돌려준다. 여기서 1개 이상의 interceptor가 등록되어 있다면 순차적으로 intercept들을 거쳐 controller가 실행되도록 하고, interceptor가 없다면 바로 controller를 실행한다..

[Spring Boot] 4. View Resolver

핸들러 메소드가 요청을 처리하고 논리 뷰 이름을 반환하면DispatcherServlet은 화면에서 데이터를 표시하도록 뷰 템플릿에 제어권을 넘긴다. 스프링 MVC에서는 뷰를 해석할 수 있는 ViewResolver 구현체 몇 가지가 있는데,그 중 MVC 기본 설정에는 InternalResourceViewResolver를 기본으로 사용하고 있다. InternalResourceViewResolver는 사용이 간단해서 편하지만, RequestDispatcher가 forward 할 수 있는 내부 리소스(jsp/서블릿)만 해석이 가능하기 때문에 다른 뷰 템플릿(Thymeleaf )을 사용하는 경우에는 다른 viewResolver를 사용해야 한다.  Thymeleaf와 같은 뷰 템플릿을 사용하는 경우에는 Thymel..

[Spring Boot] 3. Handler Method

매핑된 핸들러 메소드로 우리가 입력하는 데이터가 전달되게 하려면 어떻게 해야할까?핸들러 메서드의 다양한 파라미터 전달 방법에 대해 알아보자.WebRequest로 요청 파라미터 값 전달받기첫번째 방법으론 WebRequest로 파라미터 값을 전달받을 수 있다.HttpServletRequest/Response, ServletRequest/Response도 핸들러 메소드 매개변수로 사용 가능하지만,이 방식들은 Servlet에 종속이므로, Servlet에 종속적이지 않은 WebRequest가 Spring 기반의 프로젝트에서 더 자주 사용된다.WebRequest는 Spring Framework에서 제공한다! 코드를 통해 알아보자. index.html에서 GET 방식의 /first/regist 요청을 전달한다. ..

[Spring Boot] 2. Request Mapping

Spring MVC1.  MVC 패턴Spring Web MVC에서는 Controller, Service, DAO 계층으로 구성된 MVC 패턴을 따른다.1) Controller 계층: 클라이언트의 요청을 처리하고, 비즈니스 로직을 실행한 뒤 Model 객체를 반환한다.2) Service 계층: 비즈니스 로직을 수행한다.    Controller에서 전달받은 Model 객체를 가공하고, DAO에서 전달받은 데이터를 조합하여 비즈니스 로직을 실행한다.   Transaction이 분리되어 있다.3) DAO 계층: 데이터베이스와의 상호작용을 담당한다.    데이터베이스에 접근하여 데이터를 조회하거나 수정하는 등의 작업을 수행한다.   (DAO는 데이터베이스에 접근하는 객체이고, CRUD가 분리되어 있다.)    ..

[Spring Boot] 1. Spring Boot 개요 및 개발환경 구축

스프링부트의 특징1. 톰캣 서버(WAS 서버)가 내장되어 있어서 따로 구축할 필요가 없다.2. Starter을 이용하여 라이브러리를 묶어서 버전을 관리한다. - ex) 웹개발을 할거면, spring-boot-starter-web을 추가해주면 웹과 관련된 라이브러리가 모두 제공된다. -> Starter만 추가하면 연관되어 있는 라이브러리가 한 번에 관리된다. -> 1) 버전관리 2) 의존성관리 3) 빈등록 관리가 자동화 된다.3. xml 설정을 사용하지 않는다.4. Spring Boot는 내장 톰캣을 사용하고 있기 때문에 jar 형식을 이용해 단독 배포가 가능하다(.war는 배포 서버에 톰캣, jdk를 설치해주어야 하는데, .jar는 jdk에 대한 설치만 되어 있으면 톰캣 서버 설치 필요없이 .jar를 바..