MVC

Controller, Service, DAO 셋을 이해하려면 먼저 MVC패턴이 왜 등장했는지부터 알아봐야 한다. 1. MVC 패턴 기존의 서블릿과 JSP 방식은 하나의 파일에 비지니스 로직(서비스 호출) 과 뷰 렌더링(HTML)이 모두 존재 했다. 즉, 하나의 파일에 자바코드와 HTML 코드가 전부 들어가 있었다. 그러다 보니 코드의 복잡성이 올라가고 결국 유지보수가 어려워 졌다. 이러한 문제를 해결하기 위해 MVC(Model View Controller)패턴이 도입되었다. View(HTML)와 Controller(비지니스 로직)을 분리하였다. 그래서 view에서 HTTP 요청을 보내면 Controller가 비지니스 로직(회원가입, 상품주문 등)을 수행하였다. 그리고 view 렌더링에 필요한 데이터는 M..
스프링 MVC - 웹 페이지 만들기 1. 요구사항 분석 상품 도메인 모델 상품 ID 상품명 가격 수량 상품 관리 기능 상품 목록 상품 상세 상품 등록 상품 수정 프론트엔드 개발자가 만든 html 폼 상품목록(등록, 상세 버튼) 상품등록 폼(저장, 취소 버튼) 상품 상세(수정, 목록 버튼) 상품 수정 폼(저장, 취소 버튼) 1) 클라이언트가 상품 목록 요청 2) `상품목록 controller`에서 `상품목록 폼` 랜더링 2-1) 상품등록 버튼 클릭 -> `상품등록 controller`에서 `상품등록 폼` 랜더링 3-1) 상품저장 버튼 클릭 -> `상품저장 controller`에서 `상품상세 폼` 랜더링 3-2) 취소 버튼 클릭 -> `상품등록 폼`에서 `상품목록 링크`로 이동 2-2) 상품상세 버튼 클릭 ..
MVC 프레임워크 만들기 1. 프론트 컨트롤러 패턴 소개 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받는다. 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다. 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출해준다. 스프링 웹 MVC와 프론트 컨트롤러 스프링 웹 MVC의 DIspatcherServlet이 FrontController 패턴으로 구성 2. 프론트 컨트롤러 도입 - v1 V1 구조 HTTP요청이 오면 프론트 컨트롤러에 URL매핑 정보에서 컨트롤러를 조회한다. 조회한 컨트롤러를 호출한다. 해당 컨트롤러에서 직접 JSP forward를 수행한다. view 렌더링이 수행된다. 프론트 컨트롤러 분석 urlPatterns url..
서블릿, JSP, MVC 패턴 1. 회원 관리 웹 애플리케이션 요구사항 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 회원 도메인 모델 id 는 Member 를 회원 저장소에 저장하면 회원 저장소가 할당한다 회원 저장소 회원 저장소는 싱글톤 패턴을 적용했다. 스프링을 사용하면 스프링 빈으로 등록하면 되지만, 지금은 최대한 스프링 없이 순수 서블릿 만으로 구현하는 것이 목적이다. 싱글톤 패턴은 객체를 단 하나만 생생해서 공유해야 하므로 생성자를 private 접근자로 막아둔다 회원 저장소 테스트 코드 회원을 저장하고, 목록을 조회하는 테스트를 작성했다. 각 테스트가 끝날 때, 다음 테스트에 영향을 주지 않도록 각 테스트의 저장소를 clearStore() 를 호출해..
서블릿 Hello 서블릿 @ServletComponentScan : 해당 패키지와 하위 패키지의 servlet을 모두 찾아서 등록해준다. @WebServlet : 서블릿 애노테이션 name : 서블릿 이름 urlPatterns : URL 매핑 HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다. protected void service(HttpServletRequest req, HttpServletResponse resp) 개발시 편리하게 HTTP 요청 메시지를 다 보고싶다면? application properties에 다음 문장을 추가하자. logging.level.org.apache.coyote.http11=debug 참고 운영서버에 모든 요청정보를 다 남기면 성능..
코드 미식가
'MVC' 태그의 글 목록