데브허브 | DEVHUB | why everyone misunderstood MongoDBwhy everyone misunderstood MongoDB
- MongoDB는 Google, Facebook 등 거대 기업들이 사용하는 "Humongous" 데이터베이스로, 빠르고 유연하며 신규 팀과 대규모 엔터프라이즈 환경 모두에 적합합니다. 🚀
- 과거의 오해와 달리, MongoDB는 데이터를 잃지 않으며(기본 쓰기 승인
majority), ACID 트랜잭션을 지원합니다(v4.0부터 다중 문서 트랜잭션). 🛡️
- "스키마 없는 혼돈"이라는 비판과 달리, MongoDB는 스키마 유효성 검사를 지원하며, 애플리케이션 또는 DB 수준에서 스키마를 정의하고 강제할 수 있는 유연성을 제공합니다. 📝
- MongoDB는 2018년 라이선스를 AGPL3에서 SPL로 변경하여 상업적 서비스에 무료로 사용할 수 있지만, 호스팅 서비스로 재판매하려면 전체 서비스 스택을 오픈 소스화해야 합니다. ⚖️
- 데이터는 JSON과 유사하지만 더 풍부한 데이터 타입(날짜, 십진수 등)과 효율적인 이진 인코딩을 제공하는 BSON 형식으로 저장되어, 개발자에게는 JSON처럼 느껴지면서도 빠른 쿼리와 인덱싱이 가능합니다. 💾
- 개발자 생산성을 위한 다양한 도구(CLI, Compass GUI, MongoDB Shell)를 제공하며, 로컬 컨테이너를 통해 쉽게 시작하고 데이터베이스 및 컬렉션을 생성할 수 있습니다. 🛠️
- 관계형 데이터베이스의 '테이블'에 해당하는 '컬렉션'을 사용하며, 관련 데이터를 함께 모델링하는 것을 권장하지만, 필요시
lookup을 통한 조인도 지원합니다. 🧩
- 데이터 삽입, 조회, 업데이트, 삭제는 직관적인 메서드를 통해 이루어지며,
upsert와 같은 유용한 기능도 제공합니다. ➕
- MongoDB는 모든 관계형 DB를 대체하는 만능 해결책은 아니지만, 특정 사용 사례에서 강력한 성능과 유연성을 제공하며, 때로는 PostgreSQL과 같은 관계형 DB가 더 적합할 수도 있습니다. 💡