MVC 만들기

KJH·2023년 1월 11일
0

SpringMVC1

목록 보기
5/8

프런트 컨트롤러 패턴

특징

  • 서블릿 하나로 요청을 받음
  • 프런트 컨트롤러가 요청에 맞는 컨트롤러 호출 (입구 하나)
  • 나머지 컨트롤러는 서블릿 사용 ❌


v1

기본 구조는 그대도되, Front Controller 추가


v2

View 분리


V3

  • 서블릿 종속성 제거

    • 요청 파라미터 정보는 자바 Map으로 대신 넘김
    • request 객체를 Model로 쓰지 않고 별도의 Model 객체 반환
  • View 이름 중복 제거

    • 컨트롤러는 논리이름만 반환, 물리 위치는 프론트 컨트롤러에서 처리


V4

  • 기본적인 구조는 V3과 같지만, 컨트롤러가 viewname만 반환
  • 모델객체는 파라미터로 전달, 뷰 이름만 return

개발자 입장에서 군더더기 없는 코드


V5 (유연한 컨트롤러)

지금까지는 한가지 컨트롤러 인터페이스만 사용했는데
A는 v3, B는v4 방식으로 개발하고 싶다면?

어뎁터 패턴을 사용

  • 핸들러 어댑터 : 중간에 어댑터 역활을 하는 어댑터

  • 핸들러 : 해당하는 어댑터만 있으면 다 처리할 수 있기 때문에 컨트롤러의 이름을 더 넓은 핸들러로 변경

  • Instanceof를 통해 bool 반환


스프링 MVC는 이 과정과 거의 같은 구조를 가지고 있다

0개의 댓글