← 홈페이지 5강 목록으로
🗄️
EPISODE 01
RDBMS vs NoSQL · SQL · SQLite

DB 개념

JSON 파일의 한계와 데이터베이스가 필요한 이유, RDBMS와 NoSQL의 차이, SQL의 역할, 그리고 학습용으로 적합한 SQLite를 소개합니다.

DBRDBMSNoSQLSQLite
소요 시간
30~45분
난이도
📊 중급
선수 조건
🎯 node-06
결과물
DB의 필요성과 RDBMS·NoSQL 선택 기준에 대한 이해

이 강의에서 배우는 것

  • 1JSON 파일 방식의 한계 5가지를 설명한다
  • 2RDBMS와 NoSQL의 차이를 비교한다
  • 3SQL의 4가지 핵심(조회/삽입/수정/삭제)을 안다
  • 4SQLite의 특징과 사용 시점을 안다

1. JSON 파일의 한계

문제설명
동시 접근 충돌두 사용자가 동시에 쓰면 데이터가 덮어씌워짐
검색 성능10만 건 중 하나를 찾으려면 전체를 읽어야 함
관계 표현유저-주문-상품 관계를 표현하기 어려움
데이터 무결성타입 검증, 중복 방지 없음
트랜잭션여러 작업을 묶어서 처리할 수 없음

2. 데이터베이스란

데이터베이스(DB): 구조화된 방식으로 데이터를 저장·관리하는 시스템. DBMS는 그 DB를 관리하는 소프트웨어.

text
애플리케이션 → DBMS → 데이터베이스(파일/디스크)

3. RDBMS vs NoSQL

RDBMS — 테이블·SQL·JOIN

text
[users 테이블]
id | name   | email
1  | 김철수 | kim@example.com
2  | 이영희 | lee@example.com

[orders 테이블]
id | user_id | product | price
1  | 1       | 노트북  | 1500000
2  | 1       | 마우스  | 30000

MySQL, PostgreSQL, SQLite, Oracle 등.

NoSQL — 문서·키값·그래프

json
// MongoDB 문서
{
  "_id": "64abc123",
  "name": "김철수",
  "orders": [
    { "product": "노트북", "price": 1500000 },
    { "product": "마우스", "price": 30000 }
  ]
}

MongoDB(문서), Redis(키-값), Neo4j(그래프) 등.

항목RDBMSNoSQL
데이터 구조고정 스키마유연한 스키마
관계JOIN문서 내 중첩
확장수직수평
트랜잭션강력제한적
사용 사례금융, 쇼핑몰SNS, 실시간 앱

4. SQL이란

Structured Query Language — RDBMS를 조작하는 표준 언어. 거의 모든 RDBMS에서 동일하게 동작합니다.

sql
SELECT name, email FROM users WHERE id = 1;
INSERT INTO users (name, email) VALUES ('김철수', 'kim@example.com');
UPDATE users SET email = 'new@example.com' WHERE id = 1;
DELETE FROM users WHERE id = 1;

5. SQLite

파일 하나가 곧 데이터베이스. 서버 설치 불필요, 가볍고 빠름.

text
my-project/
├── app.js
├── database.db   ← 이 파일이 전체 DB
└── package.json
  • 모바일 앱 로컬 DB (iOS/Android 내장)
  • 브라우저 로컬 저장소
  • 소규모 웹 서비스, 학습용

6. DB Browser for SQLite

GUI로 SQLite 파일을 확인하고 쿼리를 실행하는 도구.

bash
# macOS
brew install --cask db-browser-for-sqlite

# Ubuntu
sudo apt-get install sqlitebrowser

# Windows: https://sqlitebrowser.org/dl/
예제 코드 / 강의 자료

전체 강의 자료와 예제 코드는 GitHub에서 자유롭게 받아볼 수 있습니다.

GitHub에서 보기 ↗