-
Notifications
You must be signed in to change notification settings - Fork 6
MongoDB를 사용한 이유
우리는 MongoDB를 우리 서비스의 DB로 삼았다.
기획단계에서 DB를 고르는 과정이 신속했지만
후에 개발을 해나가면서 많은 생각을 하게만들었다.
사실 몽고디비를 선택한 제 1의 이유는 새로운 기술에 대한 도전이었다.
물론 mySQL을 잘해서가 아니다.
하지만, 부스트캠프에서, 가장 중요하다고 생각한 가치는 도전이었다.
우리 팀은 WHY 가 중요했다. 왜?에 대한 답을 할 수 없으면 그건 프로젝트의 방향성을 모른채 진행한다는 것이라 판단했다.
제 2의 이유는 서비스적인 관점에서 들여다 보았다.
가계부라는 서비스는 수정이 적은 서비스다.
하루, 한 주, 한 달의 재정상태를 파악하기 위함이다.
그 기간의 수입/지출을 기록, 분석하고 정리하는 회고의 형태이다.
이런 관점에서 가계부 서비스는 **추가(CREATE)**와 **조회(READ)**가 가장 중요한 작업이었다.
추가와 조회가 중요한 작업이니만큼 그 속도가 빨라야했다.
여기에 덧대어 **관계형데이터베이스(RDB)**와 NoSQL의 차이점중 하나인 확장성에 주목했다.
약 5주간의 개발일정중 마지막 1주는 마무리 작업을 해야했기에 개발기간에서 제외했다.
그러면 4주 동안 요구사항을 충족시키면서 개발을 해야했기에 일정이 촉박할 수 밖에 없었다.
게다가 매주 금요일은 개발에 온전히 집중할 수 없는 요일이었기에, 사실상 16일이라는 개발기간이 주어졌다. ( 물론 코어타임에 한해서이다 )
RDB의 경우 DB가 바뀌면 테이블 자체를 수정해야했고, ERD를 다시그리고 관계를 다시설정해야했다.
한마디로 처음부터 다시 만들어야했다. ( Sequelize 와같은 ORM을 사용해서 어느정도 보완은 가능하다 )
따라서 첫 설계가 너무나도 중요했고 그만큼 시간이 지체될 수 있다.
RDB보다 확장성이 좋은 NoSQL을 사용해서, 개발 시작을 빠르게 할 수 있었다.
모델을 수정하는데 빠르게 수정할 수 있기 때문이었다.