brunch

You can make anything
by writing

C.S.Lewis

by 이종복 May 18. 2019

MVC 패턴 - Controller(1)

MVC 패턴은 Model-View-Controller 패턴의 줄임말로서, 애플리케이션을 세가지 역할로 구분한 개발 방법론이다. 사용자가 Controller를 조작하면 Model을 통해서 데이터를 가져오고, 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달한다. 


                                                                    출처: 생활코딩 


위의 개념을 Web에 적용하면 다음과 같다. 

사용자가 웹사이트에 접속한다. (Uses)

Controller는 사용자가 요청한 웹페이지를 서비스 하기 위해서 모델을 호출한다. (Manipulates)

모델은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴한다.

Controller는 Model이 리턴한 결과를 View에 반영한다. (Updates)

데이터가 반영된 VIew는 사용자에게 보여진다. (Sees)


이 글에서는 우선 Route를 만드는 법을 정리해보겠다. 


- Route 만들기 

 

1) Route란 네트워크에서 통신 데이터를 보낼 경로를 의미한다.  

    우선 Route를 입력하기 위해서 다음과 같이 Routes.js를 만든다. 


2) Routes.js에 3종류의 Route들을 입력할 것이다. 첫째는, Global Route, 둘째는, User Route, 셋째는 Video Route이다. 

이 때, 각각 필요한 Route에 따라 이름을 잘 지정하는 것이 중요하다. LOGIN, LOGOUT, SEARCH 등의 이름을 지정하고, 각각에 맞는 Route url을 지정한다. 


3) const routes를 통해서 위에서 만든 Route들을 새로 정의해준다. 이렇게 새롭게 정의한 route를 이후에   globalRouter, userRouter, videoRouter 파일에서 각각 활용 가능하다. 

    이 때, routes를 다른 파일에서 활용하기 위해서 export default routes를 선언한다. 


4) router 폴더에 globalRouter.js 파일을 만든다. 

    여기서 routes 파일에서 만든 routes에 대해서 실제 라우팅을 한다. 

     import routes from "../routes"로 routes.js 파일을 불러오고,

     const globalRouter = express.Router()로 라우터를 생성한다.

     그리고 globalRouter.get()을 통해서 routes.js 파일에서 선언한 routes를 불러온다.  


5) app.js파일에서, globalRouter.js 파일과 routes 파일을 import해준다. 

    그리고 app.use(routes.home, globalRouter)를 선언한다. 


6) userRouter.js, videoRouter.js에 대해서도 마찬가지로 설정할 수 있다. 


"다음은 노마드코더(https://academy.nomadcoders.co/)의 [초급 풀스택] 유튜브 클론 코딩 강의를 참고하였습니다."

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari