일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- BFS
- Backtracking
- 이분탐색
- 부분수열의합
- JPA
- greedy
- 프로그래머스
- 네트워크
- programmers
- DFS
- 해시맵
- boj
- 동적계획법
- 백준
- DynamicProgramming
- 깊이우선탐색
- 너비우선탐색
- 백트래킹
- 브루트포스
- Network
- Spring
- 그리디
- 스프링
- 알고리즘
- 해시
- dynamic programming
- DP
- 구현
- Algorithm
- HashMap
- Today
- Total
목록JPA (2)
옌의 로그
현재 회사에서 진행중인 프로젝트가 api 서버를 먼저 만들고 admin 서버를 추후에(지금ㅋ) 만들고 있는데,그러다 보니 조회만 할 땐 문제없던 엔티티들이 어드민에서 CRUD를 하려니 JPA를 활용할 수 없는 등 문제가 발생해서(ㅠㅠ)그 중 고민했던 내용을 포스팅하고자 한다 List로 관리하는 경우(JPA에서 연관관계를 맺을 때 가장 흔하게 사용하는 방식)@Entitypublic class Author { @OneToMany(mappedBy = "author") private List events = new ArrayList(); @OneToMany(mappedBy = "author") private List awards = new ArrayList(); // ...} 장점순..
1. 서론: 연관관계, 그리고 성능 고민최근에 투입된 프로젝트는 다양한 도메인 간에 1:N 관계가 아주 많은 구조를 가지고 있었다.상품과 카테고리, 유저와 구매내역, 상품과 메타데이터 등 대부분의 엔티티가 서로 깊게 연관돼 있었고,그 연관관계들이 곧바로 화면 응답이나 API 출력으로 이어지다 보니,JPA의 Lazy Loading, N+1 문제, fetch join, open-in-view 설정 같은 키워드들이 일상처럼 따라다녔다. 특히, 연관된 데이터를 DTO로 변환해야 하는 경우가 많았는데, 이때마다 트랜잭션이 이미 종료돼 있어서 Lazy 객체 접근 시 LazyInitializationException이 터지는 일이 많았다. 그 과정에서 자연스럽게 다음과 같은 질문이 생겼다:지연 로딩은 어떻게 최적화할..