Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

데이터베이스 접근 계층의 이해

Raw Query에서 ORM까지 — 그리고 그 너머의 설계 이야기

데이터베이스에 접근하는 방식은 시간이 지나며 계속 진화해왔다.
이 책은 그 진화의 흐름을 따라가며, 각 방식의 본질과 한계,
그리고 실무에서 어떻게 함께 쓰이는지를 다룬다.

기술 자체가 아니라 상황에 맞는 선택의 관점에서 풀어낸 책이다.


책의 구성

1부. 데이터베이스 접근 방식의 변천

데이터 접근 방식이 어떻게 발전해왔는지를 다룬다.
하나의 방식이 다른 방식을 대체한 것이 아니라,
각자의 역할로 남아 있다는 것이 핵심이다.

제목핵심 내용
1장데이터베이스 접근 방식의 시작SQL을 코드에 섞어 쓰는 방식이 만드는 문제들
2장Raw Query 중심 접근가장 직접적인 접근 방식의 장점과 한계
3장Query Builder의 등장문자열에서 구조로 — SQL을 다루는 새로운 방법
4장ORM(Object Relational Mapping)SQL에서 객체로 — 데이터 접근의 추상화
5장현실적인 선택셋을 함께 쓰는 혼합 전략

2부. 데이터 접근 계층의 설계

기술을 골랐다고 끝이 아니다.
이를 코드 안에 어떻게 배치하고, 어떤 문제를 의식하며 다뤄야 하는지를 다룬다.

제목핵심 내용
6장아키텍처 관점에서의 DB 접근 계층Controller / Service / Repository 계층 설계
7장N+1 문제와 데이터 로딩 전략ORM의 가장 흔한 함정과 해결 패턴
8장트랜잭션과 데이터 일관성트랜잭션을 어느 계층에서 관리할 것인가
9장페이지네이션과 대용량 조회Offset vs Cursor — 조회 전략의 선택
10장마치며 — 좋은 데이터 접근 코드란도구가 아니라 시야에 대한 이야기

흐름 한눈에 보기

[1부] 기술의 변천
   1장. 문제의 시작
        ↓
   2장. Raw Query       (직접 제어)
        ↓
   3장. Query Builder   (구조적 개선)
        ↓
   4장. ORM             (객체 기반 추상화)
        ↓
   5장. 혼합 전략       (상황에 맞는 선택)

[2부] 계층의 설계
   6장. 계층 구조
        ↓
   7장. N+1 문제        (조회 함정)
        ↓
   8장. 트랜잭션        (저장 흐름)
        ↓
   9장. 페이지네이션    (대용량 조회)
        ↓
   10장. 마치며

누가 읽으면 좋은가

  • 데이터 접근 코드를 처음 짜기 시작한 개발자
  • ORM을 쓰고 있지만 내부 동작이 궁금한 개발자
  • Raw Query와 ORM 사이에서 고민하는 개발자
  • 데이터 접근 계층을 설계해야 하는 개발자

이 책이 다루지 않는 것

  • 특정 ORM(Prisma, TypeORM 등)의 상세 문법
  • 데이터베이스 튜닝과 인덱스 설계
  • 분산 트랜잭션(2PC, Saga 등)
  • 마이그레이션 도구의 사용법

예제는 TypeScript와 Prisma / Knex / Raw SQL을 사용하지만,
이야기의 본질은 언어와 도구에 종속되지 않는다.