본문 바로가기

전체 글358

[spring redis 1편] 분산락 (redis, spring) 목차는 spring redis 목차 에 있습니다. [spring redis 1편] 분산락 (redis, spring, lettuce) RedisLockRegistry spring integration 에서 제공해주는 Redis 분산락 입니다. spin lock, pub-sub lock 옵션을 제공하며, pub-sub 이 성능상 이유로 선호 됩니다. spin lock 은 주기적으로 lock 을 획득하며, pub-sub 은 pub-sub 구조로 lock 을 획득하기에 성능상 유리합니다. 어떻게 동작하는지? LockRegistry 는 UUID 와 lock 의 map 을 메모리에 가지고 있습니다. lockRegistry 는 일종의 lock 저장소입니다. lockRegistry 에서 lock 을 획득하려고 할 때.. 2023. 10. 5.
[ETC 6편] git tag란? tag 를 이용해서 branch 생성 목차는 ETC 목차 에 있습니다. [ETC 6편] git tag란? tag 를 이용해서 branch 생성 나중에 볼려고 정리했습니다. tag 란? 특정 커밋을 표시하기 위한 기능입니다. 즉, 특정 커밋 번호를 통해 작업을 하던 것을 태그를 이용해서 할 수 있습니다. ex) git revert qwasd123 -> git revert release/1.0.0 tag, 커밋번호 차이점 tag 경우 수정이 불가능하며, 읽기 전용입니다. 커밋번호는 checkout 하여 수정이 가능합니다. 그래서 tag 의 경우 release 를 관리할 때 사용합니다. ex) release/1.0.0 tag 생성 방법 lightweight lightweight 의 경우 특정 커밋을 가리키는 기능입니다. 설명 등을 입력할 수 없습.. 2023. 9. 21.
[gradle 1편] gradle spring profile 관련 적용 예제 목차는 gradle 목차 에 있습니다. [gradle 1편] gradle spring profile 관련 적용 예제 나중에 볼려고 정리했습니다. 상황 gradle 에서 spring profile 관련 내용을 적용하고 싶은 순간이 있습니다. 예를 들면, prod, dev, local profile 이 있다고 가정했을 때, application.yml 설정을 달리 가져가고 싶은 필요가 생길 수 있습니다. 예시 SPRING_PROFILES_ACTIVE=local 또는 -Dspring.profiles.active=local 을 통해 spring profile 을 적용합니다. 2023. 8. 16.
[ETC 1편] git reset, revert 정리 목차는 ETC 목차 에 있습니다. [ETC 1편] git reset, revert 정리 git revert 란? remote repository 에 이미 반영한 내용을 되돌리고 싶을 때가 있습니다. 그럴 때, revert 를 사용하면 좋으며, revert 란 특정 commit 의 내용을 되돌리는 commit 을 새로 만듭니다. 예제 1 (특정 commit 을 revert) Develop1.java 를 생성해서 commit and push 를 했습니다. (hash 1) Develop2.java, Develop3.java 를 생성해서 commit and push 를 했습니다. (hash 2) Develop4.java, Develop5.java 를 생성해서 commit and push 를 했습니다. (Hash.. 2023. 8. 16.
[ETC 5편] git feature branch 내용을 develop release 둘다 반영해야하는 경우 목차는 ETC 목차 에 있습니다. [ETC 5편] git feature branch 내용을 develop release 둘다 반영해야하는 경우 나중에 볼려고 정리했습니다. 상황 git 에서 feature branch 에서 작업하고 있는데 develop, release 에 둘다 반영해야하는 경우가 생길 수 있습니다. feature branch 는 develop branch 를 기준으로 만들어진거라 feature branch -> develop branch 로 pr 을 날려서 merge 하면 문제 없습니다. (feature branch 변경사항만 반영됨) 문제는 feature branch 를 release 에 반영할 때인데, feature branch 가 develop 을 기준으로 만들어진거라 release.. 2023. 6. 24.
[상품 주문 4편] 동시성 테스트 source 는 Github 에 있습니다. 목차는 상품 주문 에 있습니다. [상품 주문 4편] 동시성 테스트 Webflux, 코틀린, Redis, 분산락 공부를 위해 작성했습니다. 테스트 데이터 데이터를 아래와 같이 미리 만들었습니다. (Spring - schema.sql) Application 이 실행될 때, 아래 데이터가 INSERT 됩니다. id 는 productId, name 은 product_name, stock 은 재고입니다. insert into product (id, name, stock) values ('product1001', 'Product A', 1000), ('product1002', 'Product B', 2000), ('product1003', 'Product C', 3000).. 2023. 5. 8.