요구사항 분석상품 도메인 모델상품 ID상품명가격수량 상품 관리 기능상품 목록상품 상세상품 등록상품 수정 서비스 제공 흐름디자이너: 요구사항에 맞도록 디자인하고, 디자인 결과물을 웹 퍼블레셔에게 넘겨준다.웹 퍼블리셔: 디자이너에서 받은 디자인을 기반으로 HTML, CSS를 만들어 개발자에게 제공한다.백엔드 개발자: 디자이너, 웹 퍼블리셔를 통해서 HTML 화면이 나오기 전까지 시스템을 설계하고, 핵심 비즈니스 모델을 개발한다. 이후 HTML이 나오면 이 HTML을 뷰 템플릿으로 변환해서 동적으로 화면과 웹 화면의 흐름을 제어한다. 상품 도메인 개발@Getter @Setter public class Item { private Long id; private String itemName; private Inte..
프론트 컨트롤러 패턴프론트 컨트롤러 서블릿 하나로 클라이언트 요청을 받는다.이후 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.입구가 하나이기 때문에 공통 부분을 프론트 컨트롤러에서 처리할 수 있다.프론트 컨트롤러 이외의 다른 컨트롤러는 서블릿을 사용할 필요가 없다. 프론트 컨트롤러 도입 - v1public interface ControllerV1 { void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; }@WebServlet(urlPatterns = "/front-controller/v1/*") public class FrontControllerServ..
서블릿 등록 방법@ServletComponentScan // 하위 패키지의 서블릿 자동 등록 @SpringBootApplication public class ServletApplication { }psvm main()이 있는 클래스 위에 @ServletComponentScan애너테이션을 추가하여 서블릿 자동 등록을 할 수 있다. @WebServlet(urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {..
웹 서버 vs 웹 애플리케이션 서버(WAS)웹 서버HTTP 기반 동작정적 리소스 기능 + 기타 부가 기능정적 HTML, CSS, JS, 이미지, 영상 등 제공예) NGINX, APACHE 웹 애플리케이션 서버(WAS)HTTP 기반 동작웹 서버 기능 + 프로그램 코드 실행 해서 애플리케이션 로직 수행동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVC예) 톰캣, Jetty, Undertow 차이웹 서버는 정적, WAS는 애플리케이션 로직을 제공한다.근데… 사실은 경계가 모호하다. 웹 서버도 프래그램을 실행할 수 있고, 웹 애플리케이션 서버도 웹 서버의 기능을 제공한다.Java에서는 서블릿 컨테이너 기능을 제공하면 WAS로 분류한다. 웹 시스템 구성 종류WAS + DBWAS가 정적 리소스..