[기술면접] MVC 모델이란?

ayboori·2023년 8월 22일
1

CS Study

목록 보기
3/22
post-custom-banner

참조 링크 1 / 참조 링크 2

MVC 모델은?

- [디자인 패턴](https://www.notion.so/Backend-top30-27112e66e9e84420b3de93a4cf34480d?pvs=21)의 한 종류
- 기능 별로 코드를 분리하여 가독성, 코드의 재사용성 증가
- 개발 후에도 유지보수성, 확장성이 보장됨
- 여러 개 뷰 만들 수 있음 > 한 개의 모델에 대해 여러 개 뷰 필요할 때 적합
- 독립적인 상태라고는 하지만, Controller가 중간 다리 역할을 해서 완전히 분리되긴 힘듦
- 복잡한 대규모 프로그램의 경우 Controller가 불필요하게 커지기도 한다.

MVC (모델-뷰-컨트롤러) 모델의 요소들

  1. 모델
    1. 데이터 처리
    1. 앱이 포함해야 할 데이터가 무엇인지 다룸
    2. 사용자가 편집하기를 원하는 모든 데이터를 가짐
    2. 비즈니스 로직을 관리
    1. DB와 연동하여 데이터와 연관된 로직을 처리
    3. 다른 요소는 참조하거나, 어떻게 동작하는지 알아서는 안 된다
    4. 데이터 추출, 저장, 삭제, 업데이트 등의 역할 수행
    5. 변경 발생 시 변경 통지에 대한 처리 방법을 구현해야 한다.

  2. 1. 레이아웃과 화면을 처리 (정보 출력 / UI)
    2. 데이터를 표시하는 방식을 정의
    3. 모델이 가지고 있는 정보를 따로 저장하지 않고, 출력만 함
    4. 다른 요소는 참조하거나, 어떻게 동작하는지 알아서는 안 된다
    5. 변경 발생 시 변경 통지에 대한 처리 방법을 구현해야 한다.
  3. 컨트롤러
    1. 명령을 모델과 뷰 부분으로 라우팅 (서로를 잇는 인터페이스 역할)
    2. 사용자 요청 받음 (View ), 적절한 서비스를 호출 (해당 업무를 수행하는 model )하여 사용자에게 반환
    3. 다른 요소에 대해 알고 있어야 한다.
    4. 다른 요소들의 변경을 모니터링 해야 한다.
  • 디자인 패턴
    • 모듈 간 관계 및 인터페이스 설계 시 참조할 수 있는 전형적인 해결 방식이나 예제

💡 3~4줄 답변!
모델, 뷰, 컨트롤러로 이루어진 디자인 패턴의 한 종류이다. 모델은 데이터 처리, 비즈니스 로직 관리의 역할을 한다. 뷰는 레이아웃, 화면을 처리하는 역할을 한다. 컨트롤러는 View를 통해 받은 사용자의 요청을 토대로 적절한 서비스에 해당하는 Model을 호출하여, 결과값을 View를 통해 사용자에게 반환한다. 모델과 컨트롤러는 독립성 유지를 위해 다른 요소를 참조하거나, 동작 방식을 알 수 없지만 컨트롤러의 경우 뷰와 모델을 잇는 역할을 하기 때문에 다른 요소에 대해 알고 있고, 다른 요소들의 변경을 모니터링 해야 한다.

profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초
post-custom-banner

0개의 댓글