고성능 캐시 아키텍처 설계 - 로컬 캐시와 Redis로 대규모 증정 행사 관리 최적화
증정 행사 조회 트래픽 급증 문제를 해결하기 위해 RDS, ElastiCache, 로컬 캐시를 결합한 다중 레이어 캐시를 적용했습니다. 그 결과 TPS는 크게 증가하고 Redis 네트워크 송신량은 대폭 감소했습니다.


증정 행사 조회 트래픽 급증 문제를 해결하기 위해 RDS, ElastiCache, 로컬 캐시를 결합한 다중 레이어 캐시를 적용했습니다. 그 결과 TPS는 크게 증가하고 Redis 네트워크 송신량은 대폭 감소했습니다.

Java 개발자가 Kotlin을 사용하며 느낀 문법적 장점을 정리한 글입니다. null 안전성, data class, 기본 인자, 확장함수 같은 편의 기능을 소개했습니다.
정산 데이터를 프로세스별로 가공해 적재하던 구조를 원천 데이터 기반 정산 구조로 개편했습니다. 보정 작업이 사라지고 마감과 운영 효율이 크게 개선되었습니다.

올리브영 선물하기관은 DB 의존과 배치 지연으로 성능과 신뢰성 문제가 있었습니다. 전시 전략 통합과 AOP·리플렉션 기반 개선으로 빠르고 정확한 서비스로 개편했습니다.
Redis Stream으로 재고 변동 이력을 시계열 데이터로 쌓아 조회 비효율을 줄인 사례를 소개했습니다. 날짜 단위 키와 범위 분할 조회로 순서 보장과 성능을 함께 고려했습니다.

Debezium MSK Connect 장애 대응을 위해 Heartbeat 모니터링과 Failover 복구 흐름을 구성했습니다. 신규 Connector 재생성, op 변환, AOP 공통화로 데이터 연속성과 안정성을 높였습니다.
Spring Batch 배치가 멈춘 원인을 트랜잭션 분리 실패와 스레드 풀 정책에서 찾았습니다. `CallerRunsPolicy`와 `@Transactional` 누락이 겹치며 경합이 발생했고, 설정 개선이 필요했습니다.

Spring Boot 시작 시 발생하는 콜드 스타트 지연을 줄이기 위해 웜업 로직을 개선했습니다. 커스텀 어노테이션과 리플렉션, 비동기 실행으로 초기 응답 속도와 운영 효율을 높였습니다.
올리브영은 온라인몰과 물류센터 간 연계 방식을 EAI에서 MQ로 바꾸어 실시간성과 처리 성능을 높였습니다. 다만 큐 기반 구조라 조회와 검색에는 제약이 있다는 점도 함께 짚었습니다.
Kafka 메시지 중복과 유실을 Producer, Consumer, MSK 운영 구간별로 나누어 해결 방법을 정리했습니다. AWS MSK 환경에서 설정과 운영 포인트를 함께 점검할 수 있는 글입니다.

고화질 이미지 다장 업로드의 지연과 서버 부하를 줄이기 위해 병렬 업로드, PreSignedURL, 이미지 압축을 적용했습니다. 업로드 진행 상태 UI까지 개선해 평균 50% 이상 성능을 향상했습니다.

올영 세일 기간의 주문·결제 안정성을 위해 모니터링과 알림, 배치 검증 체계를 운영한 사례입니다. 세일 이후 회고로 반복 오류를 줄이고 고객 경험 개선을 이어갔습니다.

외부 솔루션에 의존하던 HTML 상품 설명 영역을 내재화해 PC와 모바일 모두 빠르게 제공하도록 개선했습니다. 또한 이미지 검증과 비동기 가공 파이프라인을 구축해 운영 안정성과 유지보수성을 높였습니다.
올리브영 POS 서버를 레거시 IDC 환경에서 Spring Boot와 AWS 기반으로 현대화한 사례를 다뤘습니다. Bridge 방식과 성능 테스트로 위험을 줄이며 점진적으로 이관했습니다.

상세 기술서 이미지 타입의 NAS 기반 구조를 공통 API와 AWS S3, 코루틴 비동기 처리로 개선한 내용을 정리했습니다. 유지 보수성과 확장성을 높이고 webp 변환으로 제공 속도도 개선했습니다.
기존 Fixture 생성 방식의 한계와 문제점을 정리하고, FixtureMonkey로 이를 개선하는 방법을 소개했습니다. 다양한 객체 생성 방식을 FailoverIntrospector로 묶어 재사용성과 테스트 편의성을 높이는 내용입니다.
파트너오피스 리뉴얼 과정에서 가독성 저하, 공용 구조, 미사용 코드 등을 정리하며 리팩터링을 진행했습니다. 그 결과 코드 라인 감소와 함께 서비스 이해도, 유지보수성이 함께 개선되었습니다.
엑셀 데이터 추출 기능이 느려지고 서버 부하가 커지는 문제를 개선한 경험을 공유했습니다. 비동기 이벤트와 Spring Batch Partitioning으로 처리 분리와 재다운로드 구조를 구성했습니다.