[취업을 위한 CS 지식] 39강. NoSQL(완강)
- NoSQL은 'Not Only SQL'의 약자로, SQL 외 다양한 언어로 질의 가능하며, 테이블 형태 외 다양한 비정형 데이터 저장이 가능한 유연한 데이터베이스입니다. 🧩
- NoSQL은 높은 확장성, 유연성, 가용성, 성능을 강점으로 가지며, 대용량 분산 환경 및 높은 부하 처리에 적합합니다. 🚀
- RDBMS와 달리 ACID나 정규화를 엄격히 지키지 않아 성능 향상에 유리하지만, 데이터 무결성/일관성이 다소 저하될 수 있습니다. 📉
- NoSQL의 주요 유형은 키-값, 도큐먼트, 그래프, 컬럼 패밀리 데이터베이스입니다. 📊
- 키-값 데이터베이스(예: Redis)는 데이터를 키-값 쌍으로 저장하며, 인메모리 방식으로 빠른 접근 속도를 제공하여 주로 캐시용으로 사용됩니다. ⚡
- 도큐먼트 데이터베이스(예: MongoDB)는 JSON, XML 같은 비정형 '도큐먼트' 단위로 데이터를 저장하며, 유연한 스키마를 가집니다. 📄
- 그래프 데이터베이스(예: Neo4j)는 데이터를 노드 형태로 저장하여 관계성이 중요한 데이터(SNS 친구 관계 등)에 활용됩니다. 🕸️
- 컬럼 패밀리 데이터베이스(예: Cassandra)는 행과 열이 있지만 스키마가 고정되어 있지 않아 열을 자유롭게 추가/삭제할 수 있습니다. 🏗️
- MongoDB는
use, createCollection으로 DB/컬렉션을 생성하고, insertOne/insertMany로 삽입, find로 조회, updateOne/updateMany로 갱신, deleteOne/deleteMany로 삭제합니다. 💾
- MongoDB
find는 다양한 연산자($eq, $gt, $and, $or 등)로 필터링 가능하며, 갱신 시 $set으로 필드 설정, $unset으로 필드 제거가 가능합니다. 🔍
- Redis는 키-값 데이터베이스로, 값에 문자열, 리스트, 해시 등 다양한 자료구조를 활용할 수 있습니다. 🗄️
- Redis 문자열 명령어는
SET, SETNX, GET, , 등이 있습니다. 📝
MGET
DEL
Redis 리스트 명령어는 LPUSH, RPUSH, LPOP, RPOP, LRANGE, LLEN 등이 있습니다. 📚데브허브 | DEVHUB | [취업을 위한 CS 지식] 39강. NoSQL(완강)