김영한 스프링 강의/스프링 MVC 1편

김영한 스프링 강의/스프링 MVC 1편

7. 스프링 MVC - 웹 페이지 만들기

요구사항 분석상품 도메인 모델상품 ID상품명가격수량 상품 관리 기능상품 목록상품 상세상품 등록상품 수정 서비스 제공 흐름디자이너: 요구사항에 맞도록 디자인하고, 디자인 결과물을 웹 퍼블레셔에게 넘겨준다.웹 퍼블리셔: 디자이너에서 받은 디자인을 기반으로 HTML, CSS를 만들어 개발자에게 제공한다.백엔드 개발자: 디자이너, 웹 퍼블리셔를 통해서 HTML 화면이 나오기 전까지 시스템을 설계하고, 핵심 비즈니스 모델을 개발한다. 이후 HTML이 나오면 이 HTML을 뷰 템플릿으로 변환해서 동적으로 화면과 웹 화면의 흐름을 제어한다. 상품 도메인 개발@Getter @Setter public class Item { private Long id; private String itemName; private Inte..

김영한 스프링 강의/스프링 MVC 1편

6.스프링 MVC - 기본 기능

로깅 간단하게 알아보기로깅 라이브러리스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)이 포함된다.SLF4J: 인터페이스Logback, Log4J, Log4J2: SLF4J인터페이스 구현체 로그 선언private Logger log = LoggerFactory.getLogger(getClass());@Slf4j 롬복 로깅 사용log.trace("trace log={}", name); log.debug("debug log={}", name); log.info("info log={}", name); log.warn("warn log={}", name); log.error("error log={}", name);개발 환경, 배포 환경 등 여러 각각..

김영한 스프링 강의/스프링 MVC 1편

5. 스프링 MVC - 구조 이해

스프링 MVC 전체 구조직접 만든 프레임워크 ⇒ 스프리 MVC 비교FrontController ⇒ DispatcherServlethandlerMappingMap ⇒ HandlerMappingMyHandlerAdapter ⇒ HandlerAdapterModelView ⇒ ModelAndViewviewResolver ⇒ ViewResolverMyView ⇒ View DispatcherServlet 서블릿 등록DispatcherServlet도 부모 클래스에서 HttpServlet을 상속 받아서 사용하고, 서브릿으로 동작한다.스프링 부트는 DispatcherServlet을 서블릿으로 자동으로 등록하면서 모든 경로(urlPatterns=”/”)에 대해서 매핑한다. 동작 순서핸들러 조회: 핸들러 매핑을 통해 요청 ..

김영한 스프링 강의/스프링 MVC 1편

4. MVC 프레임워크 만들기

프론트 컨트롤러 패턴프론트 컨트롤러 서블릿 하나로 클라이언트 요청을 받는다.이후 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.입구가 하나이기 때문에 공통 부분을 프론트 컨트롤러에서 처리할 수 있다.프론트 컨트롤러 이외의 다른 컨트롤러는 서블릿을 사용할 필요가 없다. 프론트 컨트롤러 도입 - v1public interface ControllerV1 { void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; }@WebServlet(urlPatterns = "/front-controller/v1/*") public class FrontControllerServ..

김영한 스프링 강의/스프링 MVC 1편

3. 서블릿, JSP, MVC 패턴

서블릿만으로 HTML 생성모든 회원 조회 서블릿 작성@WebServlet(urlPatterns = "/servlet/members") public class MemberListServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List members = memberRepository.findAll(); response.setContentTy..

김영한 스프링 강의/스프링 MVC 1편

2. 서블릿

서블릿 등록 방법@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 {..

김영한 스프링 강의/스프링 MVC 1편

1. 웹 애플리케이션 이해

웹 서버 vs 웹 애플리케이션 서버(WAS)웹 서버HTTP 기반 동작정적 리소스 기능 + 기타 부가 기능정적 HTML, CSS, JS, 이미지, 영상 등 제공예) NGINX, APACHE 웹 애플리케이션 서버(WAS)HTTP 기반 동작웹 서버 기능 + 프로그램 코드 실행 해서 애플리케이션 로직 수행동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVC예) 톰캣, Jetty, Undertow 차이웹 서버는 정적, WAS는 애플리케이션 로직을 제공한다.근데… 사실은 경계가 모호하다. 웹 서버도 프래그램을 실행할 수 있고, 웹 애플리케이션 서버도 웹 서버의 기능을 제공한다.Java에서는 서블릿 컨테이너 기능을 제공하면 WAS로 분류한다. 웹 시스템 구성 종류WAS + DBWAS가 정적 리소스..

피곤한투티
'김영한 스프링 강의/스프링 MVC 1편' 카테고리의 글 목록