전체 글(68)
-
[Spring] 분산락에서 발생하는 레이스 컨디션을 해결..!.part2
개요 지난 블로그까지의 스토리 테스트 코드상으로 맥북에서는 문제가 없고, 기존 리눅스에서는 문제가 생기는 것을 발견 하지만 해당 문제를 좀 더 찾아보고 테스트를 해보았다. nGrinder 로 과부화 테스트 및 동시성 테스트 진행 기존 테스트 코드를 조금 수정을 하긴 했지만 가장 큰 문제인 부분을 수정하지 않았기에 nGrinder로 레이스 컨디션 상태를 만들어 보았다. 테스트 상에서는 전부 통과를 하는 모습을 확인을 할 수 있다. 하지만 API를 호출을 하여서 값이 얼마나 남았는지를 확인해보자. Stock이 남은 값을 의미하는데 100번을 반복을 하였는데 144번이나 남은 모습을 확인할 수 있었다.사실 리눅스에서는 Stock이 200~300번까지 확인을 하였다. 이제 해결한 코드를 같이 봐보자. 문제 ..
2025.04.08 -
[Spring] 분산락에서 발생하는 레이스 컨디션을 해결..?.part1
개요프로젝트에서 동시성 제어를 mvp를 만들면서 생긴 레이스 컨디션에 대한 이야기를 정리를 해보려고 한다. 소스 코드@Transactionalpublic void payment(/*Long userId, */Long bookId) { Book book; RLock lock = redissonClient.getFairLock("book:"+bookId); try { boolean acquired = lock.tryLock(10L, 1L, TimeUnit.SECONDS); if (!acquired) { throw new InterruptedException(); } book = bookRepository.findById(bookId).orElseThrow( () -> new NotFoundE..
2025.04.03 -
[Redis] Redisson 설정 해보자.
개요최종 프로젝트를 진행을 하면서 동시성 제어를 맡게 되었다. 다른 락도 같이 공부를 할 것인데, 일단 기능을 만들어두고 공부를 해야겠다고 생각을 하여서 Redis부터 진행을 하게 되었다. 이번에 Redis 설정을 진행을 하면서 설정법에 대해서 알게 되어 정리를 남긴다. Redis 의존성 종류에 대해서 알아보자.implementation 'org.redisson:redisson:3.43.0'implementation 'org.redisson:redisson-spring-data-34:3.45.1'implementation 'org.springframework.boot:spring-boot-starter-data-redis' 이렇게 3가지가 있는 것을 확인을 하였다. 간단하게 정리를 하면가장 위에 있는 의..
2025.04.02 -
[회고] 동시성 프로젝트를 마치며
개요 GitHub - countdown10/count10shop: [내배캠] 동시성 제어 프로젝트[내배캠] 동시성 제어 프로젝트. Contribute to countdown10/count10shop development by creating an account on GitHub.github.com 카운트다운10 | Notion팀 프로젝트 - 3/24(월) ~ 3/31(금)teamsparta.notion.site 이번 내배캠에서 count10shop이라는 프로젝트를 진행을 하면서 느낀점에 대해서 적고자 한다. 느낀점좋았던 점CI/CD를 적용을 하고 push하고 pull_request를 하면서 바로 테스트를 확인해볼수 있던 점각 인원의 역할 분배가 잘 이루어져 다른 사람의 작업을 신경 쓰지 않아도 진행이..
2025.03.31 -
[CI/CD] 테스트 시 검사를 해보고 배포를 진행을 해보자.
개요 GitHub - countdown10/count10shop: [내배캠] 동시성 제어 프로젝트[내배캠] 동시성 제어 프로젝트. Contribute to countdown10/count10shop development by creating an account on GitHub.github.com 내배캠에서 동시성 제어 프로젝트를 진행을 하면서CI/CD 를 담당하게 되었다. 이번에 진행을 하면서 생긴 부분에 대해서 정리를 해보았다. 요구사항 분석요구사항코드 변경 시, 자동으로 빌드 및 테스트를 수행하는 CI 파이프라인을 구성하세요.테스트가 성공적으로 완료되면 프로덕션에 자동 배포되도록 CD 파이프라인을 설정하세요.조건CI/CD 관련 이슈를 해결하기 위해 다음을 고려해야 합니다.테스트 커버리지 강화: 배포..
2025.03.30 -
[EC2] 부족한 용량을 늘려보자.
개요 Docker compose 로 다운을 받던 도중 문제가 생겼다. 용량이 부족하다는 내용이 였다. EC2는 잘못하면 과금이 되기 때문에 조심스럽게 진행을 해보겠다. 어디까지 늘려도 되는가? EBSEC2 인스턴스용 영구 블록 수준 스토리지 볼륨Amazon EBS 30GB까지 무료EBS 마그네틱은 2,000,000번 I/O 무료1GB의 스냅샷 스토리지 무료 (초과된 저장된 스냅샷에 대해서 1GB당 0.05불의 추가비용 부과)참고 자료 [AWS] 💰 프리티어 요금 폭탄 방지 💸 - 무료 사용량 정리AWS 프리티어 과금 (AWS Reduce Cost) 아마존에선 신규 AWS 고객에게 1년간의 프리 티어를 제공한다. 원래는 AWS 서비스는 사용하는데 돈이 들어가지만, 마케팅 홍보를 위해 처음 계정을 ..
2025.03.28