개발환경 프로젝트 생성 : https://start.spring.io/ GitHub Repository : https://github.com/jinyoungchoi95/learn_servlet Gradle 6.8.3 Java 11 Spring Boot 2.4.5 Packaging : Jar Dependency : Spring web, Lombok, Thymeleaf Jar를 통해 내장 톰캣을 사용하며 이전에 썼던 webapp경로도 사용하지 않게 된다. JSP를 이제 사용하지 않을 것이기 때문에 Jar 방식으로 진행을 이어간다. 스프링 부트 Jar 에서의 Welcome Page 스프링 부트에서 Jar를 사용한다면 /resource/static/index.html 파일은 항상 Welcome 페이지로 처리한다..
스프링 MVC 전체 구조 이전에 포스팅에서 Front Controller를 중심으로 Servlet Controller를 개편했었다. 그럼 이 개선한 MVC 프레임워크와 실제 Spring MVC는 얼마나 차이가 날까 개선한 MVC 프레임워크 Spring MVC 네임만 조금 다를 뿐 거의 똑같은 구조를 가지고 있다. 즉, Spring MVC도 마찬가지로 Dispatcher Servlet을 Front로 두고 컨트롤러들을 어댑터를 통해 관리한다. Servlet Container에서 HTTP 요청을 Servlet 제일 앞에 두고 중앙집중형으로 요청을 처리해주는 FrontController 결국 Dispatcher Servlet이 우리가 개발한 FrontController의 역할과 동일한 역할을 하는 Control..
프론트 컨트롤러 패턴 개요 앞전에 우리는 MVC 패턴을 Servlet과 JSP를 이용하여 만들면서 몇가지 아쉬운점이 있다는 것을 발견했다. 어떤 동작을 하는 컨트롤러를 생성할 때마다 String viewPath = "/WEB-INF/views/new-form.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); 와 같이 반복된 구문을 사용했고, 이러한 부분들이 많아질 수록 컨트롤러에서 공통으로 처리해야할 부분들이 늘어나 차후 유지보수단계에서 불편하게 될 것임을 예상했다. 따라서 도입이 된 것이 프론트 컨트롤러이다. 이전에는 클라이언트가 제각각 자기가 호..
회원 관리 웹 어플리케이션 요구사항 지금부터는 회원 가입과 회원 목록 조회의 기능을 통해서 Servlet으로 웹서비스를 개발해보면서 그 구조에 대해서 이해보고자 한다. 기능 요구 사항 회원 저장 가입된 회원 목록 조회 일단 회원 저장과 목록을 보려면 회원에 대한 정보를 나타내는 클래스와 회원 정보를 담는 저장소가 필요하다. 우리는 회원 정보를 나타내는 회원 도메인 모델을 만들 수 있다. package hello.servlet.domain.member; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { private Long id; private String username; private int age; pu..
개발환경 프로젝트 생성 : https://start.spring.io/ GitHub Repository : https://github.com/jinyoungchoi95/learn_servlet Gradle 6.8.3 Java 11 Spring Boot 2.4.4 Packaging : War Dependency : Spring web, Lombok Spring Boot 프로젝트를 생성하였는데 Packaging 방식을 Jar가 아닌 War로 한 이유는 차후 JSP를 사용하기 위함. Servlet 환경 구성 서블릿은 원래 Tomcat 등의 WAS를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 빌드해서 WAS를 실행하는 방식으로 사용한다. 하지만 Spring Boot는 이런 고질점을 해결하고자 Tomc..
웹 서버(Web Server), 웹 어플리케이션 서버(WAS) 네트워크 환경에서 모든 것은 Http 프로토콜 기반으로 데이터(메시지)를 전달하게 된다. 서버 간에 데이터를 주고받을 때도 대부분 Http를 사용을 하는데 웹 서버들이 어떤 방식으로 Http를 사용하는지 알아보고자 한다. Web Server Http 기반으로 동작하며 정적 리소스를 제공한다. 정적 리소스란 Html, Css, Js, 이미지 등과 같이 정적인 파일을 제공하는 역할을 하며 NGINX, APACHE등과 같은 웹 서버들이 있다. Web Application Server 흔히 WAS로 축약해서 말하는 웹 어플리케이션 서버이다. 웹서버와 마찬가지로 Http 기반으로 동작을 하지만 프로그램 코드를 실행해서 어플리케이션 로직을 수행한다는 차..
- Total
- Today
- Yesterday