

카프카 컨슈머에 동적 쓰로틀링 적용하기
카프카 컨슈머 처리량을 외부 DB 부하에 맞춰 동적으로 조절하는 방법을 다뤘습니다. Thread.sleep()의 한계와 pause()/resume()을 활용한 리밸런싱 회피 방식을 설명했습니다.


카프카 컨슈머 처리량을 외부 DB 부하에 맞춰 동적으로 조절하는 방법을 다뤘습니다. Thread.sleep()의 한계와 pause()/resume()을 활용한 리밸런싱 회피 방식을 설명했습니다.


Redis와 로컬 캐시를 결합해 조회 성능을 개선한 사례를 공유했습니다. 1만 건 요청 기준 2배 이상 성능 향상을 확인했으며 캐시 동기화 구조와 개선 포인트도 정리했습니다.


ES에 의존하던 LTR 구조를 분리해 rerank API와 model API로 재구성했습니다. gRPC, 응답 압축, 2단계 캐싱으로 성능과 운영 리스크를 함께 개선했습니다.

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


C++로 운영하던 대규모 트래픽 서버를 Java와 Spring Boot로 전환한 과정을 정리했습니다. 성능 검증, Canary 배포, GC 개선까지 거쳐 안정적으로 이관했습니다.

Java의 static function을 Kotlin에서 어떻게 대체할 수 있는지 성능 관점에서 살펴본 글입니다. 여러 방식의 차이를 비교해 적절한 선택 기준을 정리했습니다.


JDBC Driver 변경 이후 발생한 OOM 원인을 DB Connection 누수로 추적하고 Heap Dump로 확인했습니다. mysql-connector-j 업그레이드와 cleanup thread 비활성화로 문제를 해결했습니다.

오픈뱅킹 단일 시스템에 있던 카드 청구금액 알림 서비스를 별도 시스템으로 분리한 이관 과정을 공유했습니다.외부 의존성과 재처리, 검증 전략 조정 과정을 통해 안정적으로 전환한 경험을 정리했습니다.
RSS로 사이트 업데이트를 자동으로 받아보는 방법과 활용법을 정리했습니다. 또한 잦은 조회로 생길 수 있는 서버 부하와 RSS의 한계도 함께 설명했습니다.
RSS의 개념과 리더를 통한 자동 구독 방법을 설명했습니다. 또한 서버 부하와 실시간성 한계, 여전히 유용한 활용처를 함께 정리했습니다.

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


운영 로그의 기준을 다시 정리해 실제 장애와 가짜 에러를 구분하는 방법을 다뤘습니다. 알람 노이즈를 줄이고 빠른 인지를 위해 로그 레벨과 임계치를 팀 기준으로 조정했습니다.