2-9 관심사의 분리와 MVC패턴 - 이론

서현우·2022년 5월 12일
0

스프링의정석

목록 보기
9/85

1. 관심사의 분리 Separation of Concerns

입력, 작업, 출력 3개의 관심사(해야 할 작업)를 분리

OOP 5대 설계 원칙 - SOLID

  1. SRP - 단일 책임의 원칙
    "하나의 메서드는 하나의 책임"

- 분리

  1. 관심사 분리
  2. 변하는 것, 자주 변하지 않는 것 분리
  3. 공통 코드 분리(중복 제거)

2. 공통 코드의 분리 - 입력의 분리

[1.입력] --> [2.처리, 출력], [2.처리, 출력], [2.처리, 출력]
(입력, 처리, 출력에서 입력을 분리)

request객체로 매개변수를 받지 않고, 직접 값을 받을 수도 있다.

입력 제거

HttpServletRequest request을
--> String year, String month, String day
--> 또는 int year, int month, int day
(Spring이 자동 변환 함)

3. 출력(view)의 분리 - 변하는 것과 변하지 않는 것의 분리

출력을 분리하면 변수를 사용할 수 없으므로 Model을 이용

MVC 패턴

  • 처리(Controller)
  • Model
  • 출력(View)


1. 클라이언트에서 요청이 들어옴.
2. DispatcherServlet에서 입력을 처리, Model을 생성해서 Controller로 보냄.
3. Controller에서 처리 후 결과를 Model에 저장해서 입력(DispatcherServlet)으로 전달.
4. DispatcherServlet에서 View로 Model을 전달.
5. View에서 클라이언트로 응답을 보냄.

4. MVC 패턴


1. 클라이언트에서 요청이 들어옴.
2. DispatcherServlet에서 new Model();로 모델 생성해서 Controller로 전달.
3. Controller에서 매개변수로 Map의 형태인 Model을 받음.
4. 유효성 검사를 통과하면 처리 및 Model에 작업 결과를 저장.
5. 작업 결과를 보여줄 View의 이름을 String으로 DispatcherServlet에 반환.
6. DispatcherServlet에서 반환된 View의 이름을 찾아서 Model을 전달.
7. 해당 View에서 클라이언트로 응답을 보냄.

profile
안녕하세요!!

0개의 댓글