일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- java
- Synchronized
- Di
- jpa
- Varchar
- 백엔드
- db
- iterable
- 가비지 컬렉터
- Atomic Type
- Locking Read
- iterator
- Lock
- 자바
- foreach
- 가비지 컬렉션
- gc
- 스프링
- text
- MySQL
- 데이터 타입
- 동시성 문제
- 동시성
- CAS
- reflection
- MVCC
Archives
- Today
- Total
목록2024/04 (1)
과정을 즐기자
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bny1Fn/btsGQZfmBbP/tirB2dsKSsL5xLDZB6cmN0/img.png)
프로젝트를 진행하면서 사용자가 시간표를 등록하면 해당 시간표 정보를 서비스의 캘린더에 반영하는 기능을 구현하였습니다. 이때 1명의 사용자만 한 학기의 시간표를 등록해도 한 번에 200, 300개의 insert 쿼리가 날라갔습니다. 만약 1000명의 사용자가 동시에 등록을 하게되면 20, 30만건의 insert 쿼리가 한 번에 날라가게 된 것입니다. Spring Data Jpa의 save 메소드 기존에 Spring Data JPA를 사용하여 단순히 save 메소드를 호출하였는데 서비스가 점점 커질수록 이러한 방식은 문제점을 가지고 있던 것입니다. 먼저 기존의 코드를 살펴보겠습니다. 저장할 스케줄을 List로 받아서 하나 하나 save 메소드를 호출해주었습니다. @Transactional public voi..
Spring Data
2024. 4. 23. 17:52