- 3개 구조로 나누어 구현하는 것
Control layer(컨트롤러): 사용자의 요청(request)을 분석한 후, 알맞은 서비스로 해당 요청을 전달해 준 다음, 서비스의 결과를 다시 응답(response)하는 층
즉, 라우팅(Routing)이 이루어지는 층
express의 경우, req.params(), req.body(), res.status(), res.send()와 같은 코드가 작성됨
Service layer(서비스): 컨트롤러부터 전달된 요청에 로직을 적용하는 층(아래와 같은 것이 로직)
Model layer(데이터): 서비스 층에서 데이터베이스 접근이 필요한 경우가 있는데, 이 때 데이터 관련 코드가 작성되는 층
Mongoose의 경우 Model.find({})와 같은 코드가 작성됨
위의 로그인 서비스를 예시로 보면, 요청으로 온 ID가 데이터베이스에 존재하는지, 만약 존재한다면 그 때 데이터베이스 상에 저장된 비밀번호는 요청으로 온 (사용자가 입력한) 비밀번호와 일치하는지 확인해야 합니다.
이 때 서비스 층은 데이터 층에 데이터베이스 확인 요청을 하게 되는 것입니다.
- middleware, test 폴더를 제외하면 3개의 상위 폴더로 구성되어 있음