MVC 패턴

345·2022년 11월 30일
0

🧩 MVC 패턴

MVC 패턴은 Model, View, Controller 로 나눠서 처리하는 것을 의미합니다.
자세한 양상은 다음과 같습니다.

Model : 데이터 처리
View : 사용자가 보는 화면
Controller : 사용자가 입력한 라우트(URL 경로) 에 대한 반응 처리

사용자의 동작을 통해 이해해봅시다.

사용자 : /home 에 접속하자!
➡️ /home 라는 라우트에 대한 요청을 받으면 서버는 home 이라는 함수(컨트롤러) 를 실행
( Controller 가 처리!)
사용자 : /home 에 접속하니까 홈 화면이 보이네.
➡️ home 이라는 컨트롤러는 /home 라우트에 대한 응답으로 home.html 뷰를 렌더링
( home.html 이라는 View 가 있어야 함)
사용자 : 새로운 댓글을 달아보자.
➡️ 게시글 올리기 버튼을 누르면 /comments/upload 라우트로 POST 요청이 감. 이 요청은 commentUpload 라는 컨트롤러가 처리.
commentUpload 컨트롤러는 Comment 라는 모델을 이용하여 db 에 접근.
( Comment 모델을 이용하여 DB 사용)

위에서 나온 예시는 모두 하나의 공통점이 있습니다.

사용자의 행동(요청) 에 대해 Controller 가 처리(응답) 를 해주고 있다는 것이죠.
Controller 는 각 요청을 받아 View 를 렌더링하거나, Model 을 사용하여 DB 에 접근하거나 합니다.

Controller 가 중간관리자가 되어 사용자 요청을 처리하는 형태입니다.

🗂️ 디렉토리 구조

구조는 다음과 같습니다.

server.js : express app 생성
db.js : mongoose 로 mongodb 연결
init.js : app.listen() 으로 서버 대기
routers 폴더 : 각 라우터.js 파일 위치
controllers 폴더 : 라우트에 대한 컨트롤러.js 파일 위치
views 폴더 : 사용자한테 보여줄 템플릿(html 파일) 위치
models : 데이터를 정의하는 모델 파일 위치

|-- src
|-- controllers
|    |-- userController.js
|    |__ commentController.js
|
|-- models
|    |__ User.js
|
|-- routers
|    |__ userRouter.js
|
|-- views
|    |__ home.html
|
|-- db.js
|-- init.js
|__ server.js
profile
기록용 블로그 + 오류가 있을 수 있습니다🔥

0개의 댓글