

Swift Concurrency 1탄: async/await, Task, TaskGroup개념 정리
Swift Concurrency의 기본 개념인 async/await, Task, TaskGroup, Task.detached를 정리했습니다. SwiftUI와 TCA에서의 사용법과 주의점도 함께 소개했습니다.


Swift Concurrency의 기본 개념인 async/await, Task, TaskGroup, Task.detached를 정리했습니다. SwiftUI와 TCA에서의 사용법과 주의점도 함께 소개했습니다.


API 개발 중 발생한 동시성 이슈를 해결하기 위해 Redis 분산 락 애노테이션 구현 사례를 다뤘습니다. 스프링 AOP 활용 방식과 주의점을 함께 정리했습니다.


룰렛 프로모션의 동시성 문제를 막기 위해 Redis Lettuce 기반 분산 락 구현 방식을 소개했습니다. 대기열 순서 보장과 TTL, 소유권 확인으로 실시간 정합성을 확보했습니다.

코틀린 코루틴의 예외가 부모-자식 관계를 따라 전파되며 전체 취소로 이어지는 과정을 설명했습니다. 실무에서는 발생 지점 처리와 supervisorScope 같은 방법으로 전파 범위를 조절하는 방식이 필요합니다.

GraphQL을 인메모리 QueryFacade로 활용해 복잡한 Aggregator 구조를 정리한 사례를 다뤘습니다. 필요한 의존성만 조회하고 부분 에러 처리와 캐시 제어를 붙여 성능도 개선했습니다.

가상 스레드의 고정(pinned) 이슈를 JDK 소스 코드로 분석했습니다. 블로킹 I/O와 synchronized, JNI 사용 시 발생 가능성과 한계를 살펴봤습니다.

Go Fiber Framework를 활용한 디지털 트윈용 백엔드 서비스 개발 사례를 다뤘습니다. 동시성과 고성능 실시간 데이터 처리에 초점을 맞춘 내용입니다.

Java 가상 스레드의 컨텍스트 스위칭 원리를 park/unpark와 Continuation 소스 코드로 분석했습니다. NioSocketImpl과 Poller 예시로 블로킹 I/O에서의 동작 흐름도 살펴봤습니다.

MongoDB 트랜잭션 도입 과정에서 멤버십 결제와 해지 로직이 충돌하며 이중 결제가 발생했습니다. 공통 키 기반 Lock과 모니터링으로 동시 접근을 제어해 문제를 줄였습니다.

Java 가상 스레드의 생성과 시작 과정을 소스 코드로 분석했습니다. 플랫폼 스레드와 Continuation 구조를 통해 동시성 효율을 높이는 원리를 설명했습니다.

코루틴과 Virtual Thread를 비교하고 사용 예제를 통해 차이를 살펴보았습니다. 비동기 실행 방식 선택 시 두 경량 동시성 모델의 활용 포인트를 확인할 수 있습니다.


Spring Batch 배치가 멈춘 원인을 트랜잭션 분리 실패와 스레드 풀 정책에서 찾았습니다. `CallerRunsPolicy`와 `@Transactional` 누락이 겹치며 경합이 발생했고, 설정 개선이 필요했습니다.