MongoDB를 사용하는 이유

👉 ”MongoDB는 유연하고 확장성 높은 Opensource Document 지향 Database”

SQL NoSQL
구조 Table에 row 단위로 데이터 저장 Collection에 Document 단위로 데이터 저장
종류 MySQL, Oracle 등 • MongoDB : Document Store
• redis : Key-Value Store
• HBASE : Wide-Column Store
• neo4j : Graph Store
장점 • 데이터 중복을 방지할 수 있음
• Join 성능이 좋음
• 복잡하고 다양한 쿼리가 가능
• 잘못된 입력을 방지할 수 있음 • 데이터 접근성과 가시성이 좋음
• Join 없이 조회가 가능해 응답속도가 일반적으로 빠름
• 스키마 변경에 공수가 적음
• 스키마가 유연 → 데이터 모델을 App의 요구사항에 맞게 데이터를 수용할 수 있음
• HA와 Sharding에 대한 솔루션을 자체적으로 지원하고 있어 Scale-Out이 간편
• 확장 시 Application의 변경사항이 없음
단점 • 하나의 레코드를 확인하기 위해 여러 테이블을 Join하여 가시성이 떨어짐
• 스키마가 엄격해서 변경에 대한 공수가 큼
• Scale-Out이 가능하지만, 설정이 어려움
• 확장할 때 마다 App단의 수정이 필요
• 전통적으로 Scale-Up 위주로 확장함 • 데이터의 중복이 발생할 수 있음
• 스키마가 자유롭지만, 스키마 설계를 잘 해야 성능저하를 피할 수 있음

MongoDB의 구조

Database → Collection → Document → Field 순으로 구조가 형성됨

스크린샷 2023-04-12 오후 2.51.35.png

스크린샷 2023-04-12 오후 2.51.51.png

스크린샷 2023-04-12 오후 2.52.05.png

스크린샷 2023-04-12 오후 2.52.41.png