MVC 패턴, 모듈화

황희윤·2021년 12월 22일
0

모듈

모듈화 : 역할에 따라 코드를 분리하는 작업

  • 여러 개발자들과 협업하기 편한 코드를 만들기 위해 사용

모듈화 할 때 고려해야 할 사항

  • 확장성 (extensibility)
    - 시스템의 규모가 커져도 그에 맞게 동작할 수 있어야 한다.
  • 재사용성 (reusability)
    - 반복되는 코드는 함수로 재사용할 뿐만 아니라, 설계한 프로그램의 구조도 재사용할 수 있어야 한다.
  • 유지 보수 (maintainability)
    - 유지 보수를 편하게 하기 위해 여러 로직이 엉켜있는 복잡한 코드는 줄인다.

  • 가독성 (readability)
    - 어려운 로직을 되도록 쉽게 풀어서 쓴다.
    - 프로젝트의 구조도 한 눈에 볼 수 있도록 직관적이여야 한다.

  • 테스트 가능성 (testability)
    - 프로그램이 모듈화가 잘 되어 있고, 각각의 코드가 목적과 역할이 분명하고, 함수가 하나의 역할만 수행하면 테스트를 하기 쉽고 디버깅에 용이하다.

MVC 패턴

프로젝트를 구성하는 요소 세가지를 세가지 역할로 구분한 패턴


View

화면에 보여주는 역할

  • 클라이언트와 상호작용

  • 주로 프론트엔드가 담당

Controller

사용자의 요청을 처리하는 역할

  • View(사용자)와 Model(데이터)를 이어주는 가교 역할

  • http 요청이 들어왔을 때 request, reponse를 처리함

  • View에서 사용자의 request를 받으면, Model에게 데이터를 요청해서 데이터를 받은 다음 View에게 전달

Model

데이터 처리를 담당

  • Model에 정의된 데이터베이스 schema(모델 또는 테이블)를 통해서만 데이터베이스에 접근 가능

MVC 패턴 장점

  • 염려 혹은 관심사의 분리 (Seperation of Concerns)
    - MVC 각각의 역할이 분명하다.
    - View는 UI를 담당
    - Model은 데이터와 관련된 로직을 담당
    - 오로지 Controller만 Model에 접근 가능

  • 동시적인 개발 (Simultaneous Development)
    - MVC 각각의 역할이 나눠져 있기 때문에 개발자도 역할 별로 나눠서 맡은 역할만 집중해서 작업할 수 있어서 프로젝트 협업이 가능하다.

  • 수정의 용이함 (Ease of Modification)
    - 디버깅 할 때 다른 역할을 맡은 요소를 최대한 건드리지 않고, 오류가 있는 로직만 처리할 수 있다.

  • 테스트-주도 개발(Test Driven Development)
    - 각각의 역할을 맡은 요소의 각각의 모듈들을 각각 테스트하기 쉽다.

profile
HeeYun's programming study

0개의 댓글