본문 바로가기

TIL

2020-12-07 TIL : MVC

MVC란?

  • Model View Controller의 약자.
  • 소프트웨어 아키텍쳐 디자인 패턴
  • 특정 라이브러리를 지칭하는 것이 아님.
  • 어떤 서비스가 돌아가는 아이디어의 패턴
  • 서비스가 돌아가기 위한 기능들을 나눈다는 특징이 있다. 의도된 코드를 특정 역할에 사용한다.
  • 루비 온 레일즈, 익스프레스, 라라벨, 장고 등 유명 웹 프레임워크들이 사용하고 있다.

각 요소에 대한 설명

  1. Model
    • 각 데이터에 대한 정보를 갖고 있다.
    • 자신이 데이터를 갖고 있을 수 있다.
    • 데이터베이스에 연결해서 데이터를 가지고 올 수 있다.
    • 뷰와는 직접 소통하지 않으며, 컨트롤러와 소통한다.
  2. View
    • 유저가 보는 화면을 보여주는 역할을 한다.
    • 컨트롤러와만 소통하고, 직접 데이터베이스와 연결되지 않는다.
    • 유저의 액션이나 이벤트 등을 전달한다.
    • 데이터를 받아서 유저가 볼 수 있도록 화면을 그려준다.
  3. Controller
    • 뷰에서 일어나는 액션, 이벤트에 대한 인풋값을 받는다.
    • 해당 값을 모델에 던져주기 전에 특정 프로세스를 실행할 수 있다.
    • 가공한 데이터를 모델에 전달해 준다.
    • 모델로부터 받은 데이터를 뷰가 알아들을 수 있도록 다시 가공한다.
    • 뷰가 그릴 수 있게 가공한 데이터를 전달한다.

웹 예제(세 가지 요소의 작동)

  • 브라우저에서 유저에 의해 특정 요청에 의해 라우팅(분기)이 일어난다.
  • 각 라우터는 라우팅 엔드 포인트에 맞는 컨트롤러의 함수를 호출한다.
  • 컨트롤러는 바로 뷰로 전달할 수도 있고, 모델과 소통하며 데이터베이스와 소통한 다음 뷰로 보내줄 수도 있다.

'TIL' 카테고리의 다른 글

2020-12-09 TIL : 인증(Hashing, Salting, Cookie)  (0) 2020.12.10
2020-12-08 TIL : Sequelize  (0) 2020.12.08
2020-12-04 TIL : Database 스프린트  (0) 2020.12.04
2020-12-03 TIL : Schema  (0) 2020.12.03
2020-12-02 TIL : Database  (0) 2020.12.02