Spring MVC - 구조 이해
·
Spring
스프링 MVC 전체 구조 이전에 만들었던 V5와 달라진 점은 이름밖에 없다. 대표적으로 FrontController가 DispatcherServlet으로 바뀌었다. DispatcherServlet 구조 살펴보기스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.스프링 MVC의 프론트 컨트롤러가 디스패처 서블릿(DispatcherServlet)이다.그리고 이 디스패처 서블릿이 Spring MVC의 핵심이다. DispatcherServelt 서블릿 등록- DispatcherServlet도 부모 클래스에서 HttpServlet을 상속받아서 사용하고, 서블릿으로 동작한다.- 스프링부트는 DispatcherServlet을 서블릿으로 자동 등록하면서, 모든경로(urlPatterns=" /")에 대해 매핑한다..
프론트 컨트롤러
·
Spring
프론트 컨트롤러 패턴 FrontController 패턴- 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음- 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출- 공통 처리 가능- 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 스프링 웹 MVC의 핵심이 FrontController 이다.스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있다. 프론트 컨트롤러 - V1 public interface ControllerV1 { void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;}..
서블릿, JSP, MVC 패턴
·
Spring
회원관리 웹 애플리케이션 요구사항회원관리 웹 애플리케이션을 만들어보자 회원정보이름: username나이: age 요구사항- 회원 저장- 회원 목록 조회 package hello.servlet.basic.domain.member;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age) { this.username = username; this.age = age..
서블릿
·
Spring
스프링 부트 서블릿 환경 구성@ServletComponentScan- 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan을 지원한다.@ServletComponentScan // servlet 자동 등록@SpringBootApplicationpublic class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); }} 서블릿 코드 작성@WebServlet(name = "helloServlet", urlPatterns = "/hello")public class HelloServlet ..
웹 애플리케이션의 이해
·
Spring
HTTPHTTP 메세지에 모든 것을 전송한다.- HTML, TEXT- IMAGE, 음성, 영상 파일- JSON, XML (API)- 거의 모든 형태의 데이터를 전송 가능. 서버간에 데이터를 주고받을 때도 대부분 HTTP를 사용한다. 웹 서버- HTTP 기반으로 동작한다.- 정적 리소스, 기타 부가기능을 제공- HTML, CSS, JS, 이미지, 영상 등 웹 애플리케이션 서버 (WAS - Web Application Server)- HTTP 기반으로 동작한다.- 웹 서버 기능 포함 (정적 리소스 제공 가능)- 프로그램 코드를 실행해서 애플리케이션 로직 수행 (REST API, 서블릿, JSP, 스프링 MVC 등등) 둘의 차이는?- 웹 서버는 정적 리소스, WAS는 애플리케이션 로직- 둘의 용어 경계가 모호..
빈 스코프
·
Spring
빈 스코프란?우리는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때까지 유지된다고 학습했다.그 이유는 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 빈이 존재할 수 있는 범위를 뜻한다. - 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프- 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 짧은 범위의 스코프- 웹 관련 스코프request : 웹 요청이 들어오고 나갈 때 까지 유지되는 스코프session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프application : 웹 서블릿 컨텍스트와 같은 범위로 유지되는 스코프@Scope("prototyp..