📝

MVC & MTV, 그리고 ORM

저는 Django를 주로 사용하는데요. Django는 MTV라고 부릅니다. 각각에 Framework마다 부르는 이름이 조금씩 다를 수 있으니 이 점 유의해주세요. Node에 express는 MVC라고 부릅니다. 이렇게 개발하면 유지보수하기 좋고, 확장성이 뛰어납니다.
 
  • Model - Model : 데이터(ORM의 data name, data)
  • View - Template : 사용자에게 보여지는 화면
  • Controller - View : 두뇌(이러한 url이 들어왔으면 저쪽으로 가, 로그아웃 했어? 그럼 이 페이지는 못 보여줘! 사용하시는 프레임워크에 따라 router를 view쪽으로 포함시키는 경우도 있습니다.)
 
보통 controller, router 등의 폴더를 별도로 만들어 JS 파일을 만듭니다. app.js에 있는 파일들을 각각 기능에 따라 옮겨주시면 돼요.
  • 가장 중요한 것은 반복되는 코드를 발견하고 그것을 유지보수하기 쉽게 하나의 js 파일로 묶어주는 것입니다!
 

 
객체 관계 매핑(Object-relational mapping; ORM)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법이다. 객체 관계 매핑을 가능하게 하는 상용 또는 무료 소프트웨어 패키지들이 있고, 경우에 따라서는 독자적으로 개발하기도한다. - wikipedia
 

 
ORM은 node에서는 SQL을 배우지 않고 javascript로 mySQL 등을 컨트롤 할 수 있게 해주고, django에서는 sql을 배우지 않고 python으로 mysql 등을 컨트롤 할 수 있게 해줍니다.
그런데 nosql인 mongodb는 기본 문법이 javascript입니다. 따라서 ODM(mongoose는 ORM이 아니라 ODM입니다. 릴레이션이 아니라 도큐먼트이기 때문이에요.)을 사용할 필요가 없습니다. 하지만 여러가지 편의기능(set 추가 기능이라던지 스키마 기능이라던지 등)을 제공하기 때문에 ODM을 사용하시는 것이 좋습니다.