| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- AWS
- Dead Letter Queue
- DI
- CORS
- docker compose
- dockerhub
- DLQ
- 지연 로딩
- 컨테이너
- kafka
- MSA
- Spring Data JPA
- Spring
- Web
- @Transactional
- docker
- JWT
- JdbcTemplate
- JPQL
- 쿠버네티스
- @ComponentScan
- Spring Container
- mybatis
- 스프링 부트
- 서블릿 컨테이너
- Routing Key
- securitycontextholderfilter
- JPA
- 페이징
- redis
- Today
- Total
목록lock (2)
look-forest
게시글에 '좋아요' 기능을 추가하면서, 동시성 문제에 대해 알아보자.사용자가 게시글에 '좋아요'를 추가/해제하는 작업과, 게시글마다 좋아요 수를 조회하는 것이 있다.좋아요 설계사용자는 게시글 하나에 좋아요 하나를 누를 수 있으므로, 제약조건으로써 (게시글ID + 사용자ID)로 유니크 인덱스를 만들면 된다.그리고 적절한 분산 단위로서, Shard key는 게시글ID로 한다. 구현@Service@RequiredArgsConstructorpublic class ArticleLikeService { private final Snowflake snowflake = new Snowflake(); private final ArticleLikeRepository articleLikeRepository; public A..
트랜잭션 - 개념 이해데이터를 파일이 아닌 데이터베이스에 저장하는 가장 대표적인 이유는 바로 트랜잭션이라는 개념을 지원하기 때문.데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻한다. 예시) 5000원 계좌이체1. A의 잔고를 5000원 감소2. B의 잔고를 5000원 증가 데이터베이스가 제공하는 트랜잭션 기능을 사용하면 1,2 둘다 함께 성공해야 저장하고, 중간에 하나라도 실패하면 거래 전의 상태로 돌아갈 수 있다.모든 작업이 성공해서 데이터베이스에 정상 반영하는 것을 커밋(Commit)이라 하고,작업 중 하나라도 실패해서 거래 이전으로 되돌리는 것을 롤백(Rollback)이라 한다. 트랜잭션 ACID트랜잭션은 ACID라하는 원자성(Atomicity), 일관성(Consi..