BioPlayground

🧬
목록으로

데이터베이스란 무엇인가

데이터베이스가 왜 필요한지, 파일과 뭐가 다른지, CRUD와 SQL/NoSQL의 차이를 5분 안에 이해합니다.

입문
|
5
|
검증 완료 (2026-07)
진행률0/18 (0%)

데이터베이스란 무엇인가

이 토픽을 마치면

데이터베이스가 왜 필요한지 설명할 수 있고, CRUD의 의미와 SQL/NoSQL의 차이를 알게 됩니다.


파일로는 부족한 이유

프로그램이 데이터를 저장해야 한다면, 가장 단순한 방법은 파일입니다. JSON 파일에 사용자 목록을 저장하는 식이죠.

json
[
  {"id": 1, "name": "김훈", "email": "hoon@example.com"},
  {"id": 2, "name": "이수", "email": "su@example.com"}
]

이 방식은 처음엔 괜찮지만, 곧 문제가 생깁니다:

  • 사용자가 1만 명이 되면 검색이 느려집니다 — 전체 파일을 읽어야 하니까
  • 두 명이 동시에 수정하면 데이터가 덮어써집니다
  • "이메일이 'naver.com'인 사용자만 찾아줘" 같은 복잡한 질문에 직접 코드를 짜야 합니다

**데이터베이스(DB)**는 이런 문제를 해결하기 위해 만들어진 전문 데이터 저장·검색 시스템입니다.


CRUD — 데이터의 네 가지 동작

데이터베이스에서 하는 일은 결국 네 가지입니다:

동작의미SQL 키워드
Create새 데이터 만들기INSERT
Read데이터 읽기/검색SELECT
Update기존 데이터 수정UPDATE
Delete데이터 삭제DELETE

웹 애플리케이션의 거의 모든 기능은 CRUD의 조합입니다. 회원가입(C), 게시판 목록(R), 프로필 수정(U), 계정 탈퇴(D).


관계형 데이터베이스 — 표(Table)로 정리

가장 오래되고 널리 쓰이는 방식은 **관계형 데이터베이스(RDBMS)**입니다. 데이터를 형태로 저장합니다.

text
users 테이블:
+----+--------+---------------------+
| id | name   | email               |
+----+--------+---------------------+
|  1 | 김훈   | hoon@example.com    |
|  2 | 이수   | su@example.com      |
+----+--------+---------------------+

각 행(row)이 하나의 데이터, 각 열(column)이 속성입니다. 이 표에 질문하는 언어가 SQL입니다.

sql
-- 이메일이 naver.com인 사용자 찾기
SELECT name, email FROM users WHERE email LIKE '%@naver.com';

대표적인 RDBMS: MySQL, PostgreSQL, SQLite, Oracle.


NoSQL — 표 형식이 아닌 데이터베이스

모든 데이터가 깔끔한 표에 들어맞지는 않습니다. 사용자마다 가진 속성이 다르거나, 데이터 구조가 자주 바뀌는 경우 NoSQL을 사용합니다.

json
// MongoDB 문서 (document) 예시
{
  "_id": "abc123",
  "name": "김훈",
  "skills": ["Python", "JavaScript"],
  "address": {
    "city": "서울",
    "district": "강남"
  }
}

SQL 없이 JSON과 비슷한 구조로 저장합니다. 유연하지만, 복잡한 관계(JOIN)는 불편합니다.

대표적인 NoSQL: MongoDB, Redis, Firebase, Supabase(PostgreSQL 기반이지만 BaaS).


어떤 걸 배워야 할까?

상황추천
웹 개발 기초MySQL 또는 PostgreSQL (SQL 필수)
빠른 프로토타입Supabase, Firebase (설정 최소)
대규모 비정형 데이터MongoDB

처음에는 SQL을 먼저 배우는 것이 좋습니다. SQL은 어떤 데이터베이스를 쓰더라도 기초가 되고, 데이터를 다루는 사고방식 자체를 훈련해줍니다.


→ 바이오에 적용: DevBench — Supabase 셋업