Web Development/스프링 MVC 1편(9)
-
스프링 MVC - 구조 이해(1)
스프링 MVC 전체 구조직접 만든 MVC 프레임워크와 스프링 MVC를 비교해보자. 직접 만든 MVC 프레임워크 구조 SpringMVC 구조 직접 만든 프레임워크 -> 스프링 MVC 비교- FrontController -> DispatcherServlet- handlerMappingMap -> HandlerMapping- MyHandlerAdapter -> HandlerAdapter- ModelView -> ModelAndView- viewResolver -> ViewResolver- MyView -> View ⭐ DispatcherServlet 구조 : org.springframework.web.servlet.DispatcherServlet 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.스프..
2024.10.23 -
MVC 프레임워크 만들기(2)
단순하고 실용적인 컨트롤러 - V4앞서 만든 v3 컨트롤러는 서블릿 종속성을 제거하고 뷰 경로의 중복을 제거하는 등, 잘 설계된 컨트롤러이다.그런데 실제 컨트톨러 인터페이스를 구현하는 개발자 입장에서 보면, 항상 ModelView 객체를 생성하고 반환해야 하는 부분이 조금은 번거롭다. 좋은 프레임워크는 아키텍처도 중요하지만, 그와 더불어 실제 개발하는 개발자가 단순하고 편리하게 사용할 수 있어야 한다. 소위 실용성이 있어야 한다. 이번에는 v3를 조금 변경해서 실제 구현하는 개발자들이 매우 편리하게 개발할 수 있는 v4 버전을 개발해보자. 인터페이스 ControllerV4.javapackage hello.servlet.web.frontcontroller.v4;import java.util.Map;..
2024.10.21 -
MVC 프레임워크 만들기(1)
⭐FrontController 패턴 특징 - 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음- 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출- 입구를 하나로! - 공통 처리 가능 - 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 ⭐ 스프링 웹 MVC와 프론트 컨트롤러스프링 웹 MVC의 핵심도 바로 FrontController-> 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있음 프론트 컨트롤러 도입 - v1목표: 기존 코드를 최대한 유지하면서, 프론트 컨트롤러를 도입해보자!먼저, 구조를 맞춰두고 점진적으로 리팩터링 해보자 인터페이스 - ControllerV1.javapackage hello.servl..
2024.10.21 -
서블릿, JSP, MVC 패턴(2)
MVC 패턴 - 개요 - "너무 많은 역할" => 유지보수가 너무 어려워짐 - "변경의 라이프 사이클" => UI변경/비즈니스 로직을 수정하는 일은 각각 다르게 발생할 가능성이 매우 높음이러한 것을 하나의 코드로 관리하는 것은 유지보수하기 좋지 않다. "기능 특화"=> JSP같은 뷰 템플릿은 화면을 렌더링 하는데 최적화되어 있기 때문에 이 부분의 업무만 담당하는 것이 가장 효과적이다. MVC(Model View Controller)MVC 패턴은 지금까지 학습한 것 처럼 하나의 서블릿이나, JSP로 처리하던 것을 컨트롤러(Controller)와 뷰(View)라 는 영역으로 서로 역할을 나눈 것을 말한다. 웹 애플리케이션은 보통 이 MVC 패턴을 사용한다.- 컨트롤러: HTTP 요청을 받아서 파라미터를 검..
2024.10.20 -
서블릿, JSP, MVC 패턴(1)
회원 관리 웹 애플리케이션 요구사항회원 정보 - 이름: username- 나이: age 기능 요구사항 - 회원 저장- 회원 목록 조회 1. java>hello.servlet>domain.member package 생성 Member.java 클래스 생성package hello.servlet.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)..
2024.10.14 -
서블릿(3)
HTTP 요청 데이터 - POST HTML Form이번에는 HTML의 Form을 사용해서 클라이언트에서 서버로 데이터를 전송해보자.주로 회원가입, 상품 주문 등에서 사용하는 방식이다. 특징- content-type : appication/x-www-form-urlencoded- 메시지바디에 쿼리 파라미터 형식으로 데이터를 전달한다. ex) username=suyeon&age=26 webapp> basic> hello-form.html 생성 username: age: 전송" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 실행결과 POST의 HTML Form을 전송하면 웹 브라우저는 다음 형식으로 HTTP 메시지를 만든다.(웹 브라우저 개발자 모드 확인) 요청..
2024.10.13