본문 바로가기

Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술11

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 스프링 MVC - 구조 이해 스프링 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도 프론트 컨트롤러 패턴으로 구현되어 있다. 스프링 MVC의 프론트 .. 2022. 7. 28.
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] MVC 프레임워크 만들기 2 유연한 컨트롤러1 - v5 만약 어떤 개발자는 ControllerV3 방식으로 개발하고 싶고, 어떤 개발자는 ControllerV4 방식으로 개발하고 싶다면 어떻게 해야할까? public interface ControllerV3 { ModelView process(Map paramMap); } public interface ControllerV4 { String process(Map paramMap, Map model); } 어댑터 패턴 지금까지 우리가 개발한 프론트 컨트롤러는 한가지 방식의 컨트롤러 인터페이스만 사용할 수 있다. ControllerV3 , ControllerV4 는 완전히 다른 인터페이스이다. 따라서 호환이 불가능하다. 마치 v3는 110v이고, v4는 220v 전기 콘센트 같은 것이다.. 2022. 7. 28.
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] MVC 프레임워크 만들기 1 프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 전 프론트 컨트롤러 도입 후 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 입구를 하나로! 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 스프링 웹 MVC와 프론트 컨트롤러 스프링 웹 MVC의 핵심도 바로 FrontController 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있음 프론트 컨트롤러 도입 - v1 프론트 컨트롤러를 단계적으로 도입해보자. 이번 목표는 기존 코드를 최대한 유지하면서, 프론트 컨트롤러를 도입하는 것이다. 먼저 구조를 맞추어두고 점진적.. 2022. 7. 28.
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 서블릿, JSP, MVC 패턴 회원 관리 웹 애플리케이션 요구사항 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 회원 도메인 모델 @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age) { this.username = username; this.age = age; } } id는 Member를 회원 저장소에 저장하면 회원 저장소가 할당한다. 회원 저장소 /** * 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려.. 2022. 7. 28.