더북(TheBook)

8.6 몽구스 사용하기

 

MySQL에 시퀄라이즈가 있다면 몽고디비에는 몽구스(Mongoose)가 있습니다.

▲ 그림 8-32 몽구스 로고

 

몽구스는 시퀄라이즈와 달리 ODM(Object Document Mapping)이라고 불립니다. 몽고디비는 릴레이션이 아니라 다큐먼트를 사용하므로 ORM이 아니라 ODM입니다.

몽고디비 자체가 이미 자바스크립트인데도 굳이 자바스크립트 객체와 매핑하는 이유가 궁금할 것입니다. 그 이유는 몽고디비에 없어서 불편한 기능들을 몽구스가 보완해주기 때문입니다.

먼저 스키마라는 것이 생겼습니다. 몽고디비는 테이블이 없어서 자유롭게 데이터를 넣을 수 있지만, 때로는 자유로움이 불편함을 초래합니다. 실수로 잘못된 자료형의 데이터를 넣을 수도 있고, 다른 다큐먼트에는 없는 필드의 데이터를 넣을 수도 있습니다. 몽구스는 몽고디비에 데이터를 넣기 전 노드 서버 단에서 데이터를 한 번 필터링하는 역할을 해줍니다.

또한, MySQL에 있는 JOIN 기능을 populate라는 메서드로 어느 정도 보완해줍니다. 따라서 관계가 있는 데이터를 쉽게 가져올 수 있습니다. 비록 쿼리 한 번에 데이터를 합쳐서 가져오는 것은 아니지만, 이 작업을 우리가 직접 하지 않아도 되므로 편리합니다.

ES2015 프로미스 문법과 강력하고 가독성이 높은 쿼리 빌더를 지원하는 것도 장점입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.