기초 개념 · 기술 면접 대비

데이터베이스 면접 퀴즈

데이터 저장과 관리의 핵심

SQL, 인덱스, 트랜잭션, 정규화, NoSQL 등 데이터베이스 핵심 개념을 마스터하세요. 백엔드 개발의 중심인 DB 설계와 최적화 능력을 키우세요.

로그인 없이 풀어보기
50개 문제 · 무료

학습할 핵심 개념

SQL 쿼리 최적화
인덱스 설계와 B-Tree
트랜잭션과 ACID
정규화와 비정규화
NoSQL 종류와 선택
샤딩과 레플리케이션
Connection Pool

핵심 개념 미리보기

데이터베이스 면접에서 꼭 나오는 개념을 미리 확인하세요

인덱스와 B-tree

핵심

인덱스와 B-tree

B-tree 인덱스 구조

  • 정렬된 상태 유지 → 범위 검색에 유리
  • 노드 하나에 여러 키 → 디스크 I/O 최소화
  • 높이 3-4면 수천만 건도 3-4번 탐색으로 조회

인덱스 종류

종류특징용도
B-tree범위, 정렬대부분
Hash정확히 일치만등호 검색
복합 인덱스여러 컬럼WHERE 조건 최적화
커버링 인덱스인덱스만으로 응답조회 최적화

실무 포인트

  • EXPLAIN ANALYZE로 쿼리 플랜 확인 필수
  • 인덱스가 많으면 쓰기(INSERT/UPDATE) 성능 하락
  • WHERE절 순서와 복합 인덱스 컬럼 순서 일치시키기
면접에서 이렇게 나옵니다
  • Q.인덱스를 걸면 왜 빨라지나요? 내부 구조를 설명해주세요
  • Q.인덱스를 무조건 많이 걸면 좋은가요?
  • Q.복합 인덱스에서 컬럼 순서가 중요한 이유는?

B-tree 인덱스

핵심

B-tree 인덱스

데이터베이스에서 가장 널리 사용되는 인덱스 구조. 정렬된 데이터의 빠른 검색, 범위 조회, 정렬을 지원한다.

왜 인덱스가 필요한가?

인덱스 없이: Full Table Scan
┌──────────────────────────┐
│ 1000만 건을 처음부터 끝까지│
│ 하나씩 확인... O(N)       │
└──────────────────────────┘

B-tree 인덱스: 트리 탐색
┌──────────────────────────┐
│ 3~4단계만에 찾음 O(log N) │
│ 1000만 건 → 약 23번 비교   │
└──────────────────────────┘

B-tree 구조

         [  30  |  60  ]         ← Root
        /       |       \
  [10|20]    [40|50]    [70|80]  ← Branch
  / | \     / | \     / | \
[..] [..] [..] [..] [..] [..] [..]
                                  ← Leaf
  (Leaf 노드끼리 연결 → 범위 조회)

핵심 특징:

  • 모든 리프 노드가 같은 깊이
  • 리프 노드끼리 연결 (Linked List)
  • 키가 정렬된 상태 유지

B-tree vs Hash 인덱스

연산B-treeHash
등호 (=)O(log N)O(1)
범위 (<, >)지원불가
정렬 (ORDER BY)지원불가
LIKE 'abc%'지원불가
GROUP BY지원불가

→ 대부분의 경우 B-tree가 범용적

인덱스 동작 원리

-- 인덱스가 있는 컬럼 조회
SELECT * FROM users WHERE age = 25;

B-tree 탐색:
Root [30|60]
  → 30보다 작으니 왼쪽
Branch [10|20|25]
  → 25 발견!
Leaf → 실제 행 위치 (ROWID)
  → 테이블에서 해당 행 가져옴

인덱스가 안 타는 경우

케이스이유
WHERE age + 1 = 26컬럼에 연산
WHERE name LIKE '%kim'앞에 %
WHERE age != 25부정 조건
WHERE age IS NULL(DB에 따라 다름)
데이터 대부분 매칭Full Scan이 더 효율적

인덱스의 비용

INSERT/UPDATE/DELETE 시:
  테이블 수정 + 인덱스도 수정!

인덱스 많으면:
  읽기 ↑ 빨라짐
  쓰기 ↓ 느려짐 (인덱스 유지 비용)

→ "읽기 위주" 테이블에 인덱스 추가
→ "쓰기 위주" 테이블은 최소한으로

실무 가이드

상황인덱스 전략
WHERE 자주 사용해당 컬럼에 인덱스
JOIN 조건FK 컬럼에 인덱스
ORDER BY + LIMIT정렬 컬럼에 인덱스
복합 조건복합 인덱스 고려
로그 테이블 (쓰기 위주)인덱스 최소화
면접에서 이렇게 나옵니다
  • Q.B-tree 인덱스의 구조와 동작 원리를 설명해주세요.
  • Q.B-tree와 Hash 인덱스의 차이는 무엇인가요?
  • Q.인덱스를 타지 않는 쿼리 패턴은 어떤 것이 있나요?

트랜잭션과 ACID

핵심

트랜잭션과 ACID

ACID 속성

속성의미예시
Atomicity전부 성공 or 전부 실패송금: 출금+입금 한 묶음
Consistency규칙 위반 없음잔액 음수 불가
Isolation동시 실행해도 간섭 없음동시 주문 처리
Durability커밋되면 영구 보존서버 다운 후 복구

실무 포인트

  • 트랜잭션 범위는 최소화 (긴 트랜잭션 = 데드락 위험)
  • Spring @Transactional 기본이 REQUIRED (전파 속성 이해 필수)
  • 분산 트랜잭션: 2PC vs Saga 패턴
면접에서 이렇게 나옵니다
  • Q.ACID 각 속성을 설명해주세요
  • Q.트랜잭션이 왜 필요한지 실무 예시로 설명해주세요
  • Q.은행 송금에서 트랜잭션이 없으면 어떤 문제가 생기나요?

더 많은 개념과 문제는 가입 후 이용할 수 있어요

먼저 5문제 맛보기

데이터베이스 면접 빈출 질문

실제 면접에서 자주 나오는 질문들입니다

Q.

인덱스를 걸면 왜 빨라지나요? 내부 구조를 설명해주세요

인덱스와 B-tree · Foundry에서 퀴즈로 연습하기

Q.

인덱스를 무조건 많이 걸면 좋은가요?

인덱스와 B-tree · Foundry에서 퀴즈로 연습하기

Q.

복합 인덱스에서 컬럼 순서가 중요한 이유는?

인덱스와 B-tree · Foundry에서 퀴즈로 연습하기

Q.

커버링 인덱스란 무엇인가요?

인덱스와 B-tree · Foundry에서 퀴즈로 연습하기

Q.

B-tree 인덱스의 구조와 동작 원리를 설명해주세요.

B-tree 인덱스 · Foundry에서 퀴즈로 연습하기

Q.

B-tree와 Hash 인덱스의 차이는 무엇인가요?

B-tree 인덱스 · Foundry에서 퀴즈로 연습하기

Q.

인덱스를 타지 않는 쿼리 패턴은 어떤 것이 있나요?

B-tree 인덱스 · Foundry에서 퀴즈로 연습하기

Q.

인덱스를 많이 만들면 어떤 문제가 생기나요?

B-tree 인덱스 · Foundry에서 퀴즈로 연습하기

이런 점이 좋아요

DB 성능 최적화

데이터 모델링 능력

면접 핵심 질문

지금 바로 시작하세요

무료로 데이터베이스 퀴즈를 풀고, AI 오답 분석으로 실력을 키우세요.