데이터베이스(DB)의 정의
한 줄 요약
데이터베이스는 “디지털 대형 수납함”이며, 데이터를 체계적으로 저장·검색·관리합니다.
스마트폰에 연락처를 저장하거나 쇼핑몰에 회원가입을 할 때, 수많은 정보가 생성됩니다. 이러한 데이터를 안전하게 보관하고, 필요할 때 0.01초 안에 꺼낼 수 있도록 해 주는 것이 바로 **데이터베이스**입니다.
📊 엑셀과 DB, 왜 다를까?
엑셀은 1인 혹은 소규모 팀이 데이터를 정리하기에 적합하지만, 동시 다중 사용, 대용량 데이터, 보안 등에 한계가 있습니다. 반면 DB는 수천·수만 명이 동시에 접근해도 안정적으로 동작하고, 백업·복구·권한 관리까지 지원합니다.
| 구분 | 💚 엑셀 | 🗄️ 데이터베이스 |
|---|---|---|
| 주된 목적 | 개인·소규모 데이터 정리와 계산 | 수천·수만 명 동시 접속·대용량 데이터 관리 |
| 동시 작업 | 동시 편집 시 충돌·덮어쓰기 위험 | 동시 트랜잭션을 안전하게 처리 |
| 데이터 용량 | 수십만 행을 넘어가면 급격히 느려짐 | 수십억 행도 몇 초 안에 처리 가능 |
| 보안·백업 | 파일이 손상되면 복구 어려움 | 권한별 접근 제어·자동 백업·복구 기능 제공 |
✨ DB가 필요한 이유 3가지
빠른 검색
수백만 개의 상품 중 원하는 것을 눈 깜짝할 사이에 찾을 수 있습니다.
데이터 무결성
데이터가 엉키거나 사라지는 일을 방지합니다.
동시 처리
수천·수만 명이 동시에 요청해도 원활히 처리합니다.
데이터베이스 종류
데이터를 저장·관리하는 방식에 따라 크게 **관계형(RDBMS)**과 **비관계형(NoSQL)** 으로 나뉩니다.
관계형 DB (RDBMS)
데이터를 표(table) 형태로 체계적으로 정리합니다.
| ID | 이름 | 이메일 |
|---|---|---|
| 1 | 홍길동 | hong@mail.com |
| 2 | 이순신 | lee@mail.com |
- 비유: 정해진 칸에 맞춰 적는 양식지
- 장점: 데이터 정확도·무결성 보장
- 단점: 스키마 변경이 까다로움
- 대표 제품: MySQL, PostgreSQL, Oracle, MS SQL
- 추천 사용처: 금융·결제·회원 관리 시스템
비관계형 DB (NoSQL)
문서, 키‑값, 그래프 등 자유로운 형태로 저장합니다.
{
"이름": "홍길동",
"취미": ["독서", "수영"],
"특기": "길동무 만들기"
}
- 비유: 내용물을 자유롭게 넣을 수 있는 노트
- 장점: 스키마 없이 빠르게 확장·변경 가능
- 단점: 복잡한 관계 표현이 어려움
- 대표 제품: MongoDB, Redis, DynamoDB
- 추천 사용처: 실시간 채팅·피드·빅데이터 분석
🚀 팁: 인메모리 DB
일반 DB는 디스크에 저장하지만, **인메모리 DB(예: Redis)**는 메모리(RAM)에 데이터를 올려 초고속 읽·쓰기를 제공합니다. 로그인 세션, 실시간 인기 검색어 등에 적합합니다.
DB 사용법 (CRUD)
개발자가 DB와 대화할 때 가장 기본이 되는 네 가지 동작은 **CRUD**(Create, Read, Update, Delete) 입니다.
🔄 CRUD 4가지 기본 동작
Create (생성)
새 데이터 추가예) 회원가입, 새 게시글 작성
Read (조회)
데이터 읽기예) 내 주문 내역 보기, 검색 결과 조회
Update (수정)
데이터 수정예) 비밀번호 변경, 배송지 수정
Delete (삭제)
데이터 제거예) 장바구니 상품 삭제, 회원 탈퇴
💬 DB와 대화하는 언어 – SQL
SQL은 데이터베이스에 명령을 전달하는 표준 언어이며, 영어 문장 형태와 비슷해 비전공자도 직관적으로 이해할 수 있습니다.
SELECT 이름, 전화번호 FROM 회원목록 WHERE 나이 >= 20;
"회원목록에서 나이가 20세 이상인 사람의 이름과 전화번호를 가져와 주세요" 라는 의미입니다.
🎮 직접 체험해 보기
아래 버튼을 눌러 회원 데이터가 DB에 어떻게 Create·Read·Update·Delete 되는지 실시간으로 확인해 보세요.
동작 실행
| ID | 이름 | 직업 | 포인트 | 상태 |
|---|
🧩 복습 퀴즈
다음 질문에 답해 보며 방금 배운 내용을 확인해 보세요.
Q1. 쇼핑몰에서 "비밀번호 변경"은 CRUD 중 어느 동작에 해당하나요?
Q2. 수많은 사용자가 동시에 결제 정보를 안전하게 처리하려면 어느 DB 종류가 적합할까요?