기존 Servlet MVC 구조를 기반으로
FrontController 패턴을 적용하여 구조를 개선하는 것을 목표로 합니다.
현재 제공된 코드는 다음과 같은 구조입니다:
- URL마다 개별 Servlet이 존재
- 각 Servlet이 직접 요청을 처리
- View(JSP)로 직접 forward
현재 구조는 다음과 같은 한계를 가집니다:
- Servlet 개수가 많아짐 (URL마다 하나씩 필요)
- 공통 로직 처리 어려움
- 확장성 낮음
- 코드 중복 발생
- 하나의 Servlet이 모든 요청을 받도록 구현
- URL에 따라 적절한 Controller를 호출하는 HandlerMapping 구조 구현
- if/else 또는 switch로 URL 분기 처리 금지
- 기존 Servlet 로직을 Controller 클래스로 분리
- Controller는 공통 인터페이스를 구현하도록 설계할 것
- FrontController에서 호출하도록 변경
- Controller에서 viewName 반환
- Controller는 Model 데이터를 생성하여 View에 전달할 것
- FrontController에서 JSP로 forward
- Build and run using :
IntelliJ IDEA로 변경 - Run tests using :
IntelliJ IDEA로 변경
- 아래 주석 제거
→ 이제 모든 요청은 /front-controller/* 로 들어오게 됩니다.
- 모든 버튼 및 form action 경로에
/front-controllerprefix 추가
ex) /home → /front-controller/home으로 경로 수정
- FrontController 패턴 적용 코드
- PR 내용에 반드시 포함: FrontController 기반 MVC 요청 처리 흐름을 그림 그려서 첨부