본문 바로가기

전체 글360

[테스트 및 리팩토링 9편] Junit5 정리 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 및 리팩토링 9편] Junit5 정리 추후 찾아보기 위해 정리했습니다. 내용을 보강할 예정입니다. ExtendWith Junit5 의 라이프사이클 중 Test 에서 사용할 기능을 확장하는 것입니다. ExtendWith (SpringExtension.class) spring TestContext + Junit5 통합하여 사용합니다. 인터페이스 : BeforeAllCallback, AfterAllCallback, TestInstancePostProcessor, BeforeEachCallback, AfterEachCallback, BeforeTestExecutionCallback, AfterTestExecutionCallback, ParameterReso.. 2023. 10. 10.
[spring 22편] 멀티스레드 환경 로그 식별 (MDC, ThreadLocal) 목차는 spring series 목차 에 있습니다. [spring 22편] 멀티스레드 환경 로그 식별 (MDC, ThreadLocal) 나중에 볼려고 정리했습니다. 상황 멀티 스레드 환경에서 로그를 찍다보면 식별이 안되는 경우가 있습니다. 멀티스레드 환경에서는 컨텍스트 스위칭이 일어나 실행이 되기 때문에 로그가 섞이기 때문입니다. 이를 해결하는 방법중 Correlation ID 라는 것이 있습니다. Correlation ID, ThreadLocal 위와 같은 상황을 해결하기 위해 같은 스레드 요청에 대해 특정 ID 를 부여해 grouping 할 수 있습니다. 이를 Correlation ID 라고 합니다. 자바에서는 이를 구현하기 위해 ThreadLocal 을 제공하며, ThreadLocal 은 동일한 스.. 2023. 10. 6.
[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.