NoSQL 데이터베이스 선택을 위한 101 가지 질문

Source

  • Evernote/Technote scraps/High Scalability - High Scalability - 101 Questions to Ask When Considering a NoSQL Database.md

Summary

이 문서는 확장 가능한 웹 애플리케이션을 위해 SQL, NoSQL 또는 하이브리드 아키텍처를 선택할 때 고려해야 할 핵심 질문들을 카테고리별로 정리한 체크리스트입니다. 단순한 기술 스펙 비교를 넘어, 프로젝트의 초기 상태(그린필드 vs 레거시), 비즈니스 목표, 예산, 개발팀의 역량, 데이터 접근 패턴, 성능 요구사항, 운영 편의성, 벤더의 신뢰도 등 총 8 가지 영역(시작점, 목표, 문제 정의, 비용, 프로그래밍, 성능, 기능, 벤더)에 걸쳐 체계적인 의사결정 프레임워크를 제시합니다. 특히 ‘가용성 vs 일관성’, ‘확장성 vs 복잡도’ 등의 트레이드오프를 명확히 하는 데 중점을 둡니다.

Key Points

  • 의사결정 프레임워크: NoSQL 선택은 기술적 선호도가 아닌 비즈니스 요구사항과 제약조건(예산, 인력, 일정)에 기반해야 함.
  • 8 가지 고려 영역: 시작점(프로젝트 단계), 목표(배달 일정, 구체적 사용 사례), 문제 정의(접근 패턴, 확장성 필요성), 비용(운영비, 라이선스), 프로그래밍(스키마 유연성, 트랜잭션 모델), 성능(IOPS, 동시성), 기능(다중 DC 지원, 백업/복구), 벤더(생존 가능성, 지원 수준).
  • 핵심 트레이드오프: 가용성(Availability)과 일관성(Consistency) 중 우선순위 결정, ACID vs BASE 모델 선택, 수평 확장성 vs 운영 복잡도 관리.
  • 실무적 조언: Facebook 사례처럼 실제 데이터 패턴(예: 메시지 저장)을 모니터링하여 구체적인 요구사항을 도출한 후 기술 선택을 해야 함.
  • 운영 및 유지보수: 설치/설정/업그레이드의 용이성, 자동 로드 밸런싱, 장애 복구, 벤더의 커뮤니티 및 지원 품질이 장기적 성공에 영향.