MVC에 대해 진심으로 정리해 보았습니다.

2869 단어 mvcRails6Rails

소개



Rails를 당연히 사용하고 있지만,
"그런데 MVC는 무엇?"
나름대로 언어화하기 위해 다시 한번 정리해 보았습니다.

※여기서 취급하는 MVC는, Rails에서 사용되는 소위 「MVC2」라고 불리는 것입니다.

MVC란?



Model View Controller의 약칭으로,
전체 프로그램을 데이터 표시 부분과 데이터 처리, 데이터베이스 관리의 3가지 요소로 나눈 웹 애플리케이션의 디자인 패턴입니다.

Rails의 경우, MVC의 처리는 대략, 아래 그림(자작… )의 흐름으로 행해집니다.



처리 흐름에 따라 MVC의 각 기능을 순서대로 설명합니다.

MVC에 들어가기 전의… 라우팅이란



고객으로부터 먼저 요청을 받습니다.
요구 내용으로부터 대응하는 처리를 가지는 컨트롤러에 목적지를 지정하는 「대응표」와 같은 역할을 가집니다.

C:Controller(컨트롤러)



클라이언트의 요청에 대한 처리를 제어하는 ​​부분입니다.
요청에 해당하는 작업을 수행하고 정렬된 내용을 응답으로 클라이언트에 반환합니다.

응답에 필요한 정보를 정렬하려면
  • 모델에 알리고 필요한 데이터를 준비합니다
  • 화면 표시에 필요한 데이터를 뷰에 전달

  • 같은 다른 기능과의 "교도"와 같은 역할을 가지고 있습니다.

    M:Model(모델)



    데이터베이스와 상호 작용하는 "창구"와 같은 기능을 가지고 있습니다.
    컨트롤러의 지시에 따라 데이터베이스에 액세스하고,
    필요한 데이터를 취득하거나 데이터의 가공(삽입·갱신·삭제)을 하는 부분입니다.

    또, 데이터의 검증(밸리데이션)이나 테이블끼리의 관련등, 데이타베이스내에 보존되는 데이터에 대한 세세한 설정을 하는 역할도 담당하고 있습니다.

    V:View(뷰)



    최종 웹페이지의 외형을 설정하는 부분입니다.
    컨트롤러로부터 건네받은 데이터를 HTML등으로 정형해, 리스폰스로서 돌려주는 화면 표시를 실시합니다.

    또한 입력 양식에서 데이터를 검색하여 컨트롤러로 전달할 수 있습니다.

    MVC의 장점



    아래 2점이 큰 장점입니다.
  • 기능별로 분리되어 분업이 쉽다
  • 다른 기능 부분의 변경에 의한 영향을 받기 어려워, 보수성이 높아진다

  • 끝에 / 감상



    개인 개발로 어쩐지 MVC를 알고 싶었지만,
    기사에 정리하는 것으로, 다시 이해를 깊게 할 수 있었다고 느끼고 있습니다.

    초학자로 졸려 기사입니다만, 조금이라도 도움이 되면 기쁘게 생각합니다.
    끝까지 읽어 주셔서 감사합니다.

    개발 환경



    Ruby 2.6.5
    Rails 6.0.3.4
    MySQL
    Visual Studio Code
    (Google Chrome)

    참고 기사・서적



    【서적】Ruby on Rails6 초입문/카마타 츠야노
    【공식】Rails 문서
    【Qiita】MVC라는 개념을 빨리 이해하기 위한 정리.
    【Qiita】MVC 모델에 대해서
    【Qiita】Rails의 MVC를 정리해 본다
    【피카와카】MVC 프레임워크를 1부터 정중하게 해설!

    좋은 웹페이지 즐겨찾기