MVC 패턴

임수정·2023년 8월 8일
0
post-thumbnail

MVC 패턴

MVC 패턴은 소프트웨어 개발에서 사용되는 아키텍처 패턴 중 하나로, 애플리케이션을 세 가지 주요 컴포넌트로 나누어 개발하고 관리하는 방법을 나타냅니다. 이 컴포넌트는 각각 모델(Model), 뷰(View), 컨트롤러(Controller)로 불리며, 애플리케이션의 구조와 역할을 명확하게 분리함으로써 유지보수성과 확장성을 향상시키는데 도움을 줍니다.

Model

내부 비지니스 로직을 처리하고 데이터 가공하는 역할을 합니다.

모델은 데이터 추출, 저장, 삭제, 업데이트 등의 역할을 수행하며 데이터 변경 사항을 감지하고, 변경 사항을 관련된 뷰와 컨트롤러에 알립니다.

  • 모델의 규칙

    • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야합니다.
    • 의존성을 낮추는 역할을 하기 위해 뷰나 컨트롤러에 대해서
      어떠한 정보도 알지 말아야합니다.
      • 의존성을 낮춘다는 것 : 뷰와 컨트롤러의 코드가 모델에 존재하지 않아야 한다는 것을 의미합니다.
    • 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 합니다.

View

데이터를 시각적으로 표현하는 화면(UI)역할을 합니다.

모델의 데이터를 기반으로 화면에 보여지는 요소들을 렌더링합니다. HTML,CSS와 같은 요소들이 View에 저장됩니다. 모델의 데이터 변경을 감지하고, 변경 사항에 따라 자동으로 화면을 업데이트합니다.

  • 뷰의 규칙

    • 모델이 가지고 있는 정보를 따로 저장해서는 안됩니다.
      • 뷰는 시각적으로 표현하는 곳이기 때문에 데이터를 저장하면 일관성이 깨지는 문제가 발생하기 때문에 저장을 해서는 안됩니다.
    • 모델이나 컨트롤러와 같이 다른 구성 요소들을 몰라야 됩니다.
    • 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 합니다.

Controller

사용자의 입력과 요청을 처리하고, 모델과 뷰를 조정하는 역할을 합니다.

모델이나 뷰는 서로의 존재를 모르고 변경 사항만 외부에 알리고 수신합니다. 하지만 컨트롤러는 모델과 뷰에 대해 알고 있어야 하고 변경된 내용을 통지 받으면 각 구성 요소에게 전달하며 상호작용하는 역할을 수행합니다.

  • 컨트롤러의 규칙

    • 모델이나 뷰에 대해서 알고 있어야 합니다.
    • 모델이나 뷰의 변경을 모니터링 해야 합니다.

MVC 패턴 작동원리

MVC 패턴은 주로 Java 기반의 Spring 프레임워크에서 사용됩니다. 자세하게 작동원리를 설명하고 싶었지만 Java언어에 대한 지식이 부족하여 간략하게만 설명하도록 하겠습니다.
(연차가 쌓이면 백엔드 개발자로서 도전해보고 싶습니다!)

  1. 웹사이트에 접속한 사용자가 "게시글"이라는 웹 페이지를 요청합니다.
  2. Controller : 요청한 웹페이지를 보여주기 위해 모델을 호출합니다.
  3. Model : 관련 데이터 소스을 가지고와 Controller에게 반환합니다.
  4. Controller : Model이 리턴한 결과를 View에 요청합니다.
  5. View : 반영된 데이터를 렌더링 하면 사용자에게 "게시글" 웹 페이지를 보여줍니다.

이와 같이 MVC 패턴은 각각의 컴포넌트가 명확한 역할을 수행하며, 사용자 요청을 처리하고 데이터를 가져와 화면에 표시하는 구조를 가지고 있습니다. 이렇게 역할과 책임을 분리함으로써 코드의 유지보수성과 재사용성을 향상시키며, 애플리케이션의 구조를 보다 체계적으로 관리할 수 있습니다.

[참고한 자료]

profile
부족함을 인정하고 채워나가는 개발자! (Node.js 개발자)

1개의 댓글

comment-user-thumbnail
2023년 8월 8일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기