Node.js | Project Architecture

Hyeonju L.·2021년 1월 18일
0

Node.js

목록 보기
2/4

목표! sw설계(project 폴더 설계)에 대한 개념 숙지

어떤 framework인지에 상관없이 기본적으로 통용되는 sw설계 방법이 존재한다.

1. Why do we modularize our applications?

확장성, 재사용성, 유지-보수 가능성, 가독성, 테스트 가능성

django의 application

client - (request) - url config - view - model - database communication

Node.js 모듈화

장고는 모듈화가 잘 되어 있는 반면 node.js에서는 모듈화를 '직접'해야함.

2. MVC pattern

model DB에서 데이터 꺼내오는 것
view 화면에 보여주는 것
controller http 요청을 제어(control)하는 것
ex. 모든 유저에게 접근 권한을 주지 않음. 유저의 접근권한을 확인하여 제어 (권한이 없으면 에러 발생시킴).

  • 그러나 백엔드의 모든 Api를 controller와 model로만 관리하면 방대한 양의 코드가 너무 한곳에 모여있게 됨.
  • 따라서 Api를 모듈화 하여 코드간 의존성을 최소화 하려고 함.
    ex. django의 user app에서 urls.py를 따로 작성하는 것

Node.js의 architecture

  • Route django의 urls.py 역할(endpoint).
    함수를 각각 맞는 url에 맵핑해주기 위해 routing이 필요함.
  • controller 함수가 작성되는 곳. 요청과 응답 제어
  • service logic controller에서 인증이 되면(요청이 유효하면) DB에 접근
    ex. 제품 정보 조회, 유저 정보 조회 etc.
  • 각 레이어는 오로지 바로 아래 레이어만 의존함
    route > controller / controller > service / service > model
profile
What you think, you become. What you feel, you attract. What you imagine, you create.

0개의 댓글