[면접을 위한 CS 전공지식 노트] 디자인 패턴 - MVC, MVP, MVVM

Yijun Jeon·2024년 1월 3일
0

CS 전공지식

목록 보기
7/21
post-thumbnail

디자인 패턴

💡 디자인 패턴이란?

  • 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것

MVC 패턴

💡 MVC 패턴 이란?

모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴

  • 각각의 구성 요소에만 집중해서 개발 가능
    • 재사용성과 확장성 용이
    • but, 앱이 복잡해지면 모델과 뷰의 관계도 복잡해짐

🔗 실제 사용

  • 스프링(Spring) : 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크

모델

⭐️ 모델은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻함

  • 위치 정보, 글자 내용, 글자 포맷...
  • 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신

⭐️ 뷰는 모델을 기반으로 사용자가 볼 수 있는 화면, 즉 사용자 인터페이스 요소를 나타냄

  • 모델이 가지고 있는 정보를 따로 저장하지 않아야 함
  • 단순히 화면에 표시하는 정보만 가지고 있음
  • 변경이 일어나면 컨트롤러에 반드시 전달

컨트롤러

⭐️ 컨트롤러는 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할

  • 이벤트 등 메인 로직 담당
  • 모델과 뷰의 생명주기 관리
  • 모델이나 뷰의 변경 통지를 받으면 이를 해석하여 각 구성 요소에 전달

MVP 패턴

💡 MVP 패턴 이란?

MVC에서 C에 해당하는 컨트롤러가 프레젠터(presenter)로 교체된 패턴

  • 뷰와 프레젠터는 일대일 관계
  • MVC 보다 더 강한 결합을 지님

MVVM 패턴

💡 MVVM 패턴 이란?

MVC의 C에 해당하는 컨트롤러가 뷰모델(view model)로 바뀐 패턴

  • 커맨드와 데이터 바인딩을 가짐
  • 뷰와 뷰모델 사이 양방향 데이터 바인딩 지원
    • 별도 코드 수정 없이 UI 재사용 가능
    • 단위 테스팅 용이

🔗 실제 사용

  • 뷰(Vue.js) : 반응형 프론트엔드 프레임워크
    • 재사용 가능 컴포넌트 기반 UI 구축

커맨드 : 여러 가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법
데이터 바인딩 : 화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법
-> 뷰모델을 변경하면 뷰가 변경됨

0개의 댓글