

에러를 리턴하는 goroutine 테스트 코드 쉽게 제어하기
goroutine 내부 에러를 테스트할 때의 비결정성을 줄이는 방법을 다뤘습니다. sync.WaitGroup과 채널 기반 Waiter로 종료 대기와 에러 전파를 제어하는 구조를 소개했습니다.


goroutine 내부 에러를 테스트할 때의 비결정성을 줄이는 방법을 다뤘습니다. sync.WaitGroup과 채널 기반 Waiter로 종료 대기와 에러 전파를 제어하는 구조를 소개했습니다.


Redis 분산 락과 스프링 AOP로 입하 확정 처리 API의 동시성 이슈를 해결했습니다. 또한 @Transactional과의 실행 순서 문제와 커넥션 사용 이슈를 @Order로 정리했습니다.


GPU 메모리 사용을 줄이기 위한 그레이디언트 누적, 체크포인팅, ZeRO, LoRA, QLoRA를 정리했습니다. 각 기법이 절감하는 메모리 영역과 적용 효과를 예시와 함께 설명했습니다.


Swift Concurrency에서 데이터 레이스를 막기 위한 `Sendable`의 개념과 사용법을 설명했습니다. 값 타입, actor, 락 기반 동기화, `@unchecked Sendable`의 주의점까지 실전 관점에서 정리했습니다.


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에서의 동작 흐름도 살펴봤습니다.