본문 바로가기
Basic/Design Pattern

SOLID와 MVC

by egas 2021. 9. 1.

설계단계에서 어떤 아키텍처를 선택하여 설계를 진행할 것인지는 결국엔 프로그램의 전체적인 방향성, 비용과 시간에 직결된 문제이다.

 

Robert C. Martin은 다섯 가지 지침을 개발했다. 다섯 가지 지침과 원칙을 통해 개발자는 읽기 쉽고 유지 보수가 쉬운 프로그램을 쉽게 만들 수 있다.

 

다섯 가지 원칙은 S.O.L.I.D이다.

 

  • S: Single Responsibility Principle (단일 책임원칙)
  • O: Open-Closed Principle (열린-닫힌 원칙)
  • L: Liskov Substitution Principle (리스 코프 치환 원칙)
  • I: Interface Segregation Principle (인터페이스 분리 원칙)
  • D: Dependency Inversion Principle (의존성 역전 원칙)

SOLID

Single Responsibility Principle (단일 책임 원칙)

단일 클래스는 오직 하나의 일을 가져야 한다.

 

단일 클래스는 오직 하나의 책임을 갖고 있어야 한다. 클래스가 하나 이상의 책임을 갖고 있다면, 하나의 책임에 대한 변경이 다른 책임을 수정하여 결함을 불러올 가능성이 높다. 

 

Open-Closed Principle (열림-닫힘)

소프트웨어 엔티티(클래스, 모듈, 함수)는 확장을 위해 열려있고, 수정되서는 안 된다.

 

Liskov Substitution Principle (리스 코프 치환 원칙)

자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.

 

 Interface Segregation Principle (인터페이스 분리 법칙)

클라이언트는 자신이 이용하지 않는 메서드에 의존하면 안 된다.

 

Dependency Inversion Principle (의존성 역정 원칙)

상위 모듈은 하위 모듈의 구현에 의존해서는 안된다. 하위 모듈은 상위 모듈이 정의한 추상에 의존해야 한다.

 

하위 레벨에서의 구현이 변경이 되더라도 변경이 상위 레벨로 전파되지 않는다. (DBMS를 MySQL에서 MongoDB로 교체하더라도 상위 레벨엔 영향을 주지 않음).


MVC

모델-뷰-컨트롤러(Model–View–Controller, MVC)는 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만드는 것을 목적으로 한다.

 

비즈니스 로직업무에 필요한 데이터 처리를 수행하는 응용프로그램의 일부를 말한다. 이것은 데이터 입력, 수정, 조회 및 보고서 처리 등을 수행하는 루틴, 좀 더 엄밀히 말하면 보이는 것의 그 뒤에서 일어나는 각종 처리를 의미한다.

 

  • model: model이란 어떠한 동작을 수행하는 코드, 사용자에게 어떻게 보일지 신경 쓰지 않는다. 사용자의 질의에 상태 정보를 제공/갱신한다.
  • view: MVC에서 model은 여러 개의 뷰(view)를 가질 수 있다. view는 model에게 질의를 하여 상태 정보를 가져와 사용자에게 보여준다.
  • controller: MVC의 view는 여러 개의 controller를 가지고 있다. 사용자는 controller 사용하여 model의 상태를 바꾼다. model의 상태가 바뀌면 model은 등록된 뷰에 자신의 상태가 바뀌었다는 것을 알리고 view는 거기에 맞게 사용자에게 model의 상태를 보여 준다.

http://www.tonymarston.net/php-mysql/3-tier-architecture.html

 

728x90

'Basic > Design Pattern' 카테고리의 다른 글

Factory Method Pattern  (2) 2021.08.04
디자인 패턴 사이트 모음  (0) 2021.08.04

댓글