1. 들어가며
“나는 백엔드 개발자인데… DB를 잘 몰랐다.”
아니, 정확히 말하자면 “몰라도 된다”고 생각했다.
Spring Boot를 쓰면 JPA가 알아서 다 해주는 줄 알았다.
Entity만 잘 만들면 쿼리가 자동으로 나가고,
CRUD는 그냥 되며,
join도 fetch 하나면 다 해결되는 줄 알았다.
…정확히 말하면
그게 해결되는 건지조차 잘 몰랐다.
2. 문제 발생

어느 순간부터 이상한 일들이 생기기 시작했다.
❌ 객체는 참조로 연결되어 있는데, DB에서는 join이 필요하다는 말이 이해되지 않았다.
❌ @OneToMany를 썼더니 insert가 두 번 나간다는 말도 처음엔 무슨 말인지 감이 오지 않았다.
❌ select 한 번 날렸을 뿐인데 콘솔에는 수십 줄의 쿼리가 쏟아졌다.
❌ flush, commit, dirty checking… 처음 보는 단어들이 튀어나왔고, 제대로 이해하지 못한 채 그대로 넘어가곤 했다.
내가 몰랐던 건 단지 “문법”이 아니라,
데이터베이스의 철학과 객체지향의 간극이었다.
3. 결론
이 시리즈는 그런 나의 탈출 기록이다.
📍 테이블이 뭐고, 정규화가 왜 필요한지
📍 객체와 테이블은 왜 그렇게 다르게 생겼는지
📍 ORM은 무슨 역할을 하고, JPA는 어떻게 쓰는 게 맞는지
📍 그리고, 진짜 “DB를 아는 백엔드”가 되려면 어떤 걸 알아야 하는지
이 시리즈를 통해,
나처럼 “JPA는 쓰는데 DB는 잘 모르는 백엔드”들이 하나씩 퍼즐을 맞춰가며 탈출하는 데 도움이 되었으면 한다.
당신도 지금 그 출구를 찾고 있다면,
우리 함께 탈출해보자.
다음 글: 2025.04.13 - [DB 모르는 백엔드 탈출기] - [DB 모르는 백엔드 탈출기 Ep.1] JPA 쓰기 전에 꼭 알아야 할 DB 기초
[DB 모르는 백엔드 탈출기 Ep.1] JPA 쓰기 전에 꼭 알아야 할 DB 기초
1. 들어가며많은 백엔드 개발자들이 JPA부터 배우기 시작한다.Entity 클래스를 만들고, 어노테이션을 붙이면쿼리 없이도 데이터가 저장되고 조회되는 걸 보고 이렇게 생각한다.“와, JPA가 다 해주
mingking2.tistory.com
'DB 모르는 백엔드 탈출기' 카테고리의 다른 글
| [DB 모르는 백엔드 탈출기 Ep.4] 연관관계 주인은 누가 되어야 할까? (0) | 2025.04.16 |
|---|---|
| [DB 모르는 백엔드 탈출기 Ep.3] JPA는 객체를 어떻게 관리할까? (0) | 2025.04.14 |
| [DB 모르는 백엔드 탈출기 Ep.2] 테이블은 객체가 아니다. (1) | 2025.04.13 |
| [DB 모르는 백엔드 탈출기 Ep.1] JPA 쓰기 전에 꼭 알아야 할 DB 기초 (0) | 2025.04.13 |