📅 2026.07.08 · 🧊 Custom Topic · ☕ JPA Basic
<aside> 🧊
오늘의 핵심 질문
Lazy Loading에서 연관 데이터의 빈 자리를 대신하는 Proxy는 Java의 Optional처럼 “값이 없을 수도 있음”을 표현하는 도구인가?
</aside>
| Category | Recommended Level |
|---|---|
| Java Core | Top 45~35% |
| Spring Backend Core | Top 55~40% |
| Database | Top 60~45% |
| Required Concepts | class, object reference, entity, association, Optional |
| Helpful Concepts | Persistence Context, Transaction, FetchType, Proxy, LazyInitializationException |
| Not Required | Hibernate proxy internals, bytecode enhancement, N+1 optimization, EntityGraph tuning |
<aside> 📝
이 글은 “Lazy로 가져오면 연관 데이터의 빈 자리를 Proxy가 채운다”는 말을 들은 뒤, 그 Proxy가 Java의 Optional과 비슷한 존재인지 헷갈리는 학습자를 기준으로 작성했습니다. 핵심은 Proxy를 “값이 없음”의 표현이 아니라, 아직 로딩하지 않은 연관 객체를 대신 서 있는 지연 로딩 대리 객체로 이해하는 것입니다.
</aside>
<aside> ✅
이 글을 읽고 나면 다음을 설명할 수 있어야 합니다.
<aside> ❓
Lazy Loading Proxy는 빈 값을 감싸는 Optional이 아니라면, 왜 실제 연관 객체 대신 먼저 등장하는가?
</aside>
처음 이 개념을 배우는 학습자는 다음 흐름부터 이해하면 됩니다.
이미 기본 흐름을 알고 있는 학습자라면 다음 지점을 더 생각해볼 수 있습니다.
<aside> 🧵
이 개념은 “Lazy로 가져왔을 때 연관 데이터 빈 자리를 Proxy가 대신 채운다”는 문장을 정리하다가 출발했습니다. 여기서 생긴 질문은 “이 빈 깡통 같은 Proxy 객체는 Java의 Optional과 무엇이 같고 다른가?”였습니다.
</aside>
오늘의 출발점은 EAGER와 LAZY의 차이였습니다.
<aside> 🧩