Coroutine Context 대한 이해 (feat. Redisson)
Kotlin 코루틴 Trouble-Shooting (with Redisson 분산락) Situation Redisson 분산락을 사용하는 lock 함수에서, block() 람다 함수 실행 후에 락이 정상적으로 해제(unlock)되지 않는 현상 발생 -- 1. 정상적으로 `unlock` 되는 경우 2025-05-1...
무더운 사막을 묵묵히 한 발자국씩 나아가는 낙타처럼,
꾸준히 배우고, 성장하고, 보다 더 멋지고,
성숙한 개발자가 되기 위한 기록 저장소.
Kotlin 코루틴 Trouble-Shooting (with Redisson 분산락) Situation Redisson 분산락을 사용하는 lock 함수에서, block() 람다 함수 실행 후에 락이 정상적으로 해제(unlock)되지 않는 현상 발생 -- 1. 정상적으로 `unlock` 되는 경우 2025-05-1...
Spring Data Redis 예외 처리 Situation Spring Data Redis 의 @Cacheable 애노테이션 적용한 캐싱 패턴 중 Redis 인스턴스의 지연 이슈로 RedisCommandTimeoutException 발생 Redis 명령어 요청 후 spring.redis.timeout: 500 ...
Java Instant 사용하기 Instant 란? Java 8에서 도입된 시간 API로, UTC(협정 세계시) 기준의 시간을 나타내는 클래스 시간대와 무관하게 항상 동일한 시간을 표현하며, 주로 타임스탬프나 시간 기반 연산 사용 주요 특징 UTC 기준: 모든 시간이 UTC 기준으로 표현 nanos...
Java 21 JVM Option 설정 튜닝 Problem JVM 옵션 튜닝 포인트 메모리 설정: 초기 힙 크기가 작아 동적 증가 시 오버헤드 발생 NewRatio 설정으로 인한 불필요한 메모리 조정 GC 설정: ZGC는 2GB 정도의 힙 크기에서...
Spring Boot DataSource decorator 소개 Spring Boot DataSource decorator 는 기존 DataSource 를 데코레이팅하여 다양한 기능을 추가할 수 있도록 돕는 라이브러리이다. P6Spy 와 Datasource Proxy, FixyPool 를 활용하여 데이터베이스와 상호 작용...