• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

Express에서 MVC 패턴에 관해 질문이 있습니다

18.11.19 22:57 작성 조회수 255

0

죄송합니다 질문이 좀 기네요..ㅠㅠ

제가 MVC 패턴에 대한 개념이 잘 잡히지 않아,

제로초님 서적에서 읽어보니 router 미들웨어가 MVC패턴 중 controller 역할을 해주고,

실제 강의 프로젝트 코딩 상에서 봤을 때도 아래와 같은 패턴으로

router.get('/post',async (req,res)=>{

.. USER.findOne({where ...})

})

라우터 함수 안에 모델들을 불러와 쿼리를 실행하는 것으로 배웠고, 실제로도 그렇게 코딩을 하고 있었는데,

오늘 문득 위와 같은 코딩 패턴이 Controller와 Model이 분리가 된 것인가라는 저 스스로 궁금증이 생기더라구요.

1)라우터 미들웨어 자체가 Controller 역할을 하는 것이 맞는지 여부와

2)위와 같은 코딩 패턴이 M,C를 분리한 패턴이 맞는지

3)서버 사이드 렌더링이 아닌, 뷰를 보여주는 프론트엔드(?)서버와 DB에 접근하는 백엔드 서버가 나뉘어져 있는 방식일 때, Controller 역할을 하는 곳은 프론트 서버인지 백엔드 서버인지

4)Router안에 로직들이 너무 길어질 때는 보통 어떤식으로 코드를 모듈화하는 패턴을 가지는 지 궁금합니다.

답변 1

답변을 작성해보세요.

0

1) 라우터의 마지막 미들웨어(res.send 등을 하는 미들웨어)가 컨트롤러입니다.

2) 컨트롤러 특성상 모델과 뷰를 연결하는 역할을 하기 때문에 컨트롤러 안에서 모델과 뷰를 호출하는 부분이 존재합니다.

3) 프론트와 백엔드 서버가 나뉘어져있는 경우 각각 MVC 패턴을 구현합니다.

4) 미들웨어를 각 역할 별로 여러 개로 쪼개시면 됩니다.