[면접준비] MVC패턴 (24/04/30)
2024. 4. 30. 10:00ㆍ공부/면접 준비
MVC - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN (mozilla.org)
MVC패턴
MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴으로, 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있습다.
이러한 "관심사 분리" 는 더나은 업무의 분리와 향상된 관리를 제공합니다.
구조
- 모델: 데이터와 비즈니스 로직을 관리합니다.
- 모델은 앱이 포함해야할 데이터가 무엇인지를 정의합니다. 데이터의 상태가 변경되면, 모델을 일반적으로 뷰에게 알리며(따라서 필요한 대로 화면을 변경할 수 있습니다) 가끔 컨트롤러에게 알리기도 합니다(업데이트 된 뷰를 조절하기 위해 다른 로직이 필요한 경우).
- 뷰: 레이아웃과 화면을 처리합니다.
- 뷰는 앱의 데이터를 보여주는 방식을 정의합니다.
- 컨트롤러: 모델과 뷰로 명령을 전달합니다. MVC 패턴의 핵심.
- 컨트롤러는 앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함합니다.
- 단순히 데이터를 다른 형태로 나타내기 위해 뷰를 업데이트하고 싶을 수도 있습니다(예를 들면, 항목을 알파벳순서로 정렬한다거나, 가격이 낮은 순서 또는 높은 순서로 정렬). 이런 경우에 컨트롤러는 모델을 업데이트할 필요 없이 바로 처리할 수 있습니다.
웹에서의 MVC
의식적으로 사용한 적이 없더라도 아마 상당히 친숙할 것입니다.
데이터베이스(모델), UI(뷰), 제어 코드(컨트롤러) - nest.js에서도 비슷하게 구성하고 있다.
MVC 는 이러한 컴포넌트들이 더 엄격한 패턴을 따르도록 합니다.
'공부 > 면접 준비' 카테고리의 다른 글
[면접 회고] 온라인으로 진행한 짧은 면접(약 15분) 회고 (24/06/18) (0) | 2024.06.18 |
---|---|
[면접준비] EFK와 ELK - Logstash와 Fluentd (24/06/11) (0) | 2024.06.11 |
[면접준비] MySQL JOIN (24/04/29) (0) | 2024.04.29 |
[면접준비] JWT + Node.js 질문 (24/04/25) (0) | 2024.04.25 |
[면접준비] 해시테이블과 이진 검색 트리 (24/04/24) (0) | 2024.04.24 |