MVC 패턴

알비레오·2024년 8월 29일

컴퓨터 여러가지

목록 보기
11/21

MVC(Model View Controller) 패턴

Model

  • 애플리케이션의 데이터를 표현하고 관리한다.
  • 데이터베이스와 상호작용하여 데이터를 저장하고 가져온다
  • 데이터의 변경을 감지하고 뷰에 알려준다
  • 애플리케이션의 비즈니스 로직을 담당한다

View

  • 사용자에게 보여지는 화면을 구성한다
  • 모델에서 제공하는 데이터를 사용하여 화면을 렌더링한다
  • 사용자의 입력을 받아 컨트롤러에 전달한다

Controller

  • 사용자의 요청을 받아 처리하고, 모델과 뷰 사이의 상호 작용을 조정한다
  • 사용자의 입력을 기반을 모델을 업데이터하고, 뷰를 갱신한다.

MVC 패턴의 장점

  • 유지보수성 향상: 각 요소의 역할이 명확하게 분리되어 있어 특정 부분을 수정하거나 추가할 때 다른 부분에 미치는 영향을 최소화할 수 있다.
  • 재사용성 증가: 모델과 뷰를 독립적으로 개발하고 재사용할 수 있어 개발 효율성을 높인다.
  • 테스트 용이성: 각 요소를 개별적으로 테스트할 수 있어 애플리케이션의 품질을 향상시킬 수 있다.
  • 협업 효율성: 개발팀 내에서 역할 분담이 명확해져 협업이 원활하게 이루어질 수 있다.

MVC 패턴의 예시

  • 사용자가 웹 페이지의 버튼을 클릭한다.
  • 컨트롤러는 이 요청을 받아 해당 기능을 수행하기 위한 모델의 메서드를 호출한다
  • 모델은 데이터베이스에서 필요한 데이터를 가져오거나, 데이터를 변경하고 비즈니스 로직을 수행한다
  • 모델은 변경된 데이터를 뷰에 알린다
  • 뷰는 모델에서 받은 데이터를 사용하여 화면을 갱신하고, 변경된 내용을 사용자에게 보여준다.

MVC 패턴 비유

  • 1. 모델(Model): 요리사

역할:

요리의 레시피와 재료를 관리하며, 실제 요리를 만드는 주체다.

MVC에서의 역할:

애플리케이션의 데이터를 관리하고, 비즈니스 로직을 담당한다. 예를 들어, 사용자 정보, 게시글 내용 등의 데이터를 저장하고, 데이터를 처리하는 로직을 수행한다.

  • 2. 뷰(View): 접시

역할:

요리가 담겨져 손님에게 보여지는 부분이다.
요리의 모양새와 구성을 결정한다.

MVC에서의 역할:

사용자에게 보여지는 화면을 구성한다.
모델에서 제공하는 데이터를 바탕으로 사용자 인터페이스를 생성한다.
예를 들어, 웹 페이지, 모바일 앱의 화면 등이 해당된다.

  • 3. 컨트롤러(Controller): 웨이터

역할:

손님의 주문을 받아 요리사에게 전달하고, 요리사가 만든 요리를 접시에 담아 손님에게 가져다 준다.

MVC에서의 역할:

사용자의 입력을 받아 모델과 뷰를 연결하는 역할을 한다.
예를 들어, 사용자가 버튼을 클릭하면 컨트롤러가 이를 감지하고, 모델에게 데이터를 요청하거나 뷰를 업데이트하도록 지시한다.

0개의 댓글