database_(NoSQL (MongoDB) + Python (PyMongo)) 개념

김현희·2026년 4월 23일

1. NoSQL 개념

database 종류

RDBMS (SQL, (관계형 데이터베이스):

  • 표(Table) 형태처럼 데이터 구조가 명확하고 변경될 일이 적을 때
  • 정해진 구조(스키마) 필수
  • 금융 시스템처럼 데이터의 일관성과 정확성(ACID 트랜잭션)이 절대적으로 중요할 때
  • 복잡한 관계 설정과 조인(Join) 연산이 빈번할 때

NoSQL(Not Only SQL)

  • 데이터의 형태가 정해지지 않아서 다양하며 대량 데이터, 빠른 처리 필요
  • 스키마 없음 또는 유연함
  • 막대한 양의 데이터를 읽고 써야 해서 빠른 성능이 요구될 때 (빅데이터, 실시간 스트리밍)
  • 서비스 규모가 빠르게 커져서 서버 분산 확장이 필수적일 때
  • NoSQL 종류: Document DB (MongoDB) - JSON / Key-Value Store: Redis / DynamoDB / Wide-column DB: Cassandra, Graph DB (Neo4j)

2. MongoDB

  • MongoDB는 데이터베이스 자체(서버), PyMongo는 파이썬에서 MongoDB에 명령 보내는 라이브러리
  • 따라서 PyMongo 없으면 파이썬에서 MongoDB 못 건드림
  • 전통적인 SQL 데이터베이스와 달리, 데이터를 JSON 형식과 유사한 BSON(Binary JSON) 형태로 저장하는 NoSQL 데이터베이스
  • 구조: 데이터베이스(Database) > 컬렉션(Collection) > 문서(Document)
    ➡️ Document: SQL의 '행(Row)' { key: value }
    ➡️ Collection: SQL의 '테이블(Table)', 여러 Document가 모여 있음

2-1.) BSON / JSON

구분JSONBSON
형태텍스트바이너리
가독성사람이 읽기 좋음사람이 읽기 어려움
속도느림(파싱 필요)빠름
데이터 타입제한적다양함
  • MongoDB는 JSON처럼 보이지만
    → 실제로는 BSON으로 저장됨
    → 그래서 SQL보다 데이터 타입이 더 유연함하다는 것만은 기억하자!
profile
AI 헬스케어 공부하는 간호사

0개의 댓글