inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Node.js 교과서 - 기본부터 프로젝트 실습까지

express-generator, npm scripts, bin/www

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

354

박봉균

작성한 질문수 5

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안에 로직들이 너무 길어질 때는 보통 어떤식으로 코드를 모듈화하는 패턴을 가지는 지 궁금합니다.

javascript mongodb mysql nodejs

답변 1

0

제로초(조현영)

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

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

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

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

실제 서비스에서도 cluster를 사용하나요?

1

314

2

캐싱에 관하여

0

279

3

salt를 실무에서 사용할때 항상 randomBytes로 만들어줘야 하나요?

0

347

1

게시물 올리기 오류

0

408

1

캐슁 이후 로그인창

0

266

1

kakao passport 질문있습니다.

0

493

3

global객체 공유 질문드립니다.

1

418

1

서버가 죽어버리네요

0

1047

8

포링키 문제..

0

235

2

커넥션 플래시 설치문제

0

216

2

익스프레스 제너레이터? 설치문제

0

2586

6

redis 질문입니다.

0

305

1

9장 세션을 DB에 저장시 리다이렉션 오류 발생

0

874

8

프레임워크 선택에 관하여 질문이 있습니다.

0

300

3

시퀄라이즈 질문입니다 ! !

0

588

1

리뉴얼 강의 12강 socket.io에서 req.session접근 관련 질문

0

922

6

oAuth 질문입니다.

0

356

3

GCP 질문입니다.

0

366

1

Passport 모듈 로그인 구현관련

0

720

6

카카오 로그인 관련 질문입니다!!

0

606

4

스스로 해보기 10-16 nunjuncks 질문있습니다

0

499

5

제로초님 HTTP 완벽가이드 추천해주신거 너무 잘 읽었습니다.

0

317

2

gif채팅방 nunjucks관련 질문입니다!

0

338

3

현영님 몽고db관련 질문입니다.

0

233

3