관심사의 분리, 스프링 MVC패턴

 

✔ 관심사란? (concern)

해야할 과정이 나누어져있을때 하나의 파트가 관심사.

1. 입력. 2.요일계산. 3.출력 일때 3개의 관심사로 나누어져 있음.

 

OOP 5대 설계원칙 - SOLID

1.SRP- 단일책임의 원칙, Single Responsibility Principle
: 하나의 메서드는 하나의 책임만 진다 ▶ 하나의 메서드안에 3개의 책임이 들어감. 객체지향측면에서 좋은 설계가 아님.
: 관심사의 분리 / 변하는것, 변하지 않는 것의 분리 / 공통코드(중복코드)의 분리를 중심으로 설계를 해나가야 함
👉 변경이 필요할때 수정할 대상이 명확해진다

2. OCP - 개방폐쇄원칙, Open-Closed Principle
: 확장에 대해 열려있고, 수정에 대해서는 닫혀있어야 한다
: 추상화에 의존한다
👉 요구사항 반영시 새로운 동작을 추가하여 확장하돼, 기존코드를 수정하지않고 변경할 수 있다

3. ISP - 인터페이스 분리 원칙, Interface segregation principle
: 목적과 관심이 각기 다른 클라이언트에 있다면 인터페이스를 통해 적절히 분리
: 클라이언트의 목적과 용도에 적합한 인터페이스만을 제공
👉 클라이언트가 자신의 관심에 맞는 퍼블릭 인터페이스만을 접근하여 불필요한 간섭 최소화

4. LSP - 리스코프 치환 원칙, Liskov Substitution Principle
: 올바른 상속관계 정립.
👉 하위타입은 상위타입을 대체할 수 있어야 한다

5. DIP - 의존 역전 원칙, Dependency Inversion Principle
: 고수준 모듈(추상화,인터페이스)은 저수준 모듈(변하기 쉬운 구체화된 클래스)의 구현에 의존해서는 안되며, 저수준 모듈이 고수준 모듈에서 정의한 추상타입에 의존
👉 개방폐쇄원칙과 밀접한 관련이 있음

 

 

✔ 입력의 분리 - 공통코드의 분리

선언부가 정리되면서 하나의 관심사(입력)가 사라짐

 

 

 

출력의 분리 - 변하는 것과 변하지 않는 것의 분리

MVC 패턴

View가 나누어지면 상황/사용자 선택에 따라 다른 view를 보여줄 수 있음

 

전체적인 관계도

'🔥 Vamos > Spring' 카테고리의 다른 글

1202 | 스프링의 정석 :: 2-11  (1) 2022.12.03
1201 | 스프링의 정석 :: 2-10  (0) 2022.12.03
1129 | 스프링의 정석 :: 2-8  (0) 2022.11.29
1128 | 스프링의 정석 :: 2-7  (0) 2022.11.28
1127 | 스프링의 정석 :: 2-6  (0) 2022.11.27

+ Recent posts