모든 블로그
마켓컬리

마켓컬리

주요 카테고리 백엔드 · AI · 아키텍처

활동 요약

대표 인기 포스트Claude Code를 활용한 예측 가능한 바이브 코딩 전략370 조회
최근 30일
3개
평균 조회
27
누적 조회
6,328
전체 글
236개
마지막 발행
2026. 11. 9.
블로그 방문

마켓컬리 기술 블로그 글 (84)

백엔드

하이버네이트의 시간은 거꾸로 간다

스프링부트 업그레이드 후 하이버네이트의 시간 변환 로직 변화로 LocalTime 조회 오류가 발생했습니다. 임시로 Converter를 적용해 나노초를 제거하며 장애를 우회했습니다.

#Spring Boot#Hibernate#Java
4100

백엔드

데이터가 있었는데요, 아니 없어요

autocommit 비활성화와 MVCC Snapshot 유지로 Master DB 데이터가 간헐적으로 조회되지 않은 원인을 분석했습니다. 외부 조회 메서드에 읽기 전용 트랜잭션을 적용하고 COMMIT 경로를 점검해 해결했습니다.

#MySQL#MariaDB#JPA
100

백엔드

데이터가 있었는데요, 아니 없어요

회원 조회가 간헐적으로 실패하던 원인을 COMMIT, MVCC, autocommit 설정 관점에서 분석했습니다. `@Transactional(readOnly = true)`와 open-in-view 영향까지 확인해 조회 흐름을 정리했습니다.

#MariaDB#MVCC#autocommit
4100

백엔드

함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 2부

실시간 장바구니 추천 모델을 위한 서빙 아키텍처와 운영 체계를 소개했습니다. TorchServe, Kubernetes, ArgoCD, MLOps와 모니터링 적용 사례를 정리했습니다.

#AWS#GCP#Kubernetes
3200

백엔드

컬리가 상품을 고객에게 빠르게 전달하는 똑똑한 방법

컬리는 TC-권역 할당을 조합 최적화 문제로 정의해 배송 효율을 높이는 방법을 소개했습니다. OR-Tools의 solver와 현실 데이터를 활용해 권역 재분할까지 적용했습니다.

#최적화#OR-Tools#조합 최적화
1500

백엔드

후기 서비스 AWS Opensearch 도입기

MySQL 조회 병목을 해결하기 위해 후기 서비스에 AWS OpenSearch를 5일 만에 도입했습니다. CQRS·이벤트 기반 구조와 모니터링으로 레이턴시를 17초에서 200ms까지 낮췄습니다.

#AWS#OpenSearch#MySQL
100

백엔드

BULK 처리 Write에 집중해서 개선해보기

JPA의 건별 INSERT 한계를 JDBC 배치 INSERT로 개선한 사례를 소개했습니다. PK 추론으로 1:N 외래키를 연결해 처리 시간과 DB 부하를 줄였습니다.

#JPA#JDBC#batch
200

백엔드

BULK 처리 Write에 집중해서 개선해보기

BULK 처리의 Write 성능 개선을 중심으로 JPA와 JDBC의 차이를 정리했습니다. last_insert_id와 PK 연산을 활용해 FK 포함 대량 적재를 빠르게 처리하는 방법을 설명했습니다.

#JPA#JDBC#batch
4400

백엔드

풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson

Spring AOP와 Redisson으로 어노테이션 기반 분산락 컴포넌트를 구성했습니다. 트랜잭션 커밋 후 락을 해제해 재고 차감과 중복 등록의 정합성을 검증했습니다.

#Spring Boot#Redisson#Redis
100

백엔드

풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson

풀필먼트 입고 서비스의 동시성 문제를 해결하기 위해 Redisson 기반 분산락을 적용한 사례를 소개했습니다. AOP와 어노테이션으로 락을 추상화하고 트랜잭션 커밋 이후 해제로 정합성을 보장했습니다.

#Spring Boot#Redis#Redisson
4800

백엔드

TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기

Testcontainers로 Kafka·PostgreSQL·Spring 애플리케이션을 함께 구동해 사용자 시나리오 통합 테스트를 구성했습니다. GitHub Actions 트리거로 배포 이미지 생성 뒤 테스트를 실행해 QA 부담을 줄이는 방식을 소개합니다.

#Testcontainers#Docker#Kafka
300

백엔드

TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기

Testcontainers로 Kafka, PostgreSQL, Spring 앱을 함께 띄워 실제 사용자 흐름에 가까운 통합테스트를 구성했습니다. 서버 간 제약 불일치로 생길 수 있는 버그를 QA 전에 조기에 찾고, 배포 후 자동 검증까지 연결했습니다.

#TestContainers#통합테스트#Kafka
3000

백엔드

컬리의 BigQuery 도입기 - 2부

BigQuery 기반 CDC 파이프라인으로 정형·비정형 데이터를 Final 테이블에 동기화했습니다. Merge와 리소스 분리로 적재 시간·조회 응답 시간·비용을 개선했습니다.

#BigQuery#Kafka#Airflow
100

백엔드

컬리의 BigQuery 도입기 - 2부

BigQuery 도입으로 정형·비정형 데이터 파이프라인을 분리해 구축하고, CDC 기반 적재와 Merge Procedure로 원본 정합성을 맞췄습니다. 또한 데이터 레이크하우스화, 쿼리 성능 개선, 비용 절감 효과를 얻었습니다.

#BigQuery#Kafka#AWS DMS
3300

백엔드

컬리의 BigQuery 도입기 - 1부

기존 데이터 파이프라인의 지연, 스토리지, 쿼리 경합, 복잡성 문제를 분석했습니다. BigQuery Streaming API와 프로젝트·파티션 분리로 개선 방향을 설계했습니다.

#BigQuery#Kafka#AWS DMS
000

백엔드

컬리의 BigQuery 도입기 - 1부

기존 데이터 파이프라인의 지연과 복잡성을 줄이기 위해 컬리가 BigQuery 도입 배경과 주안점을 정리했습니다. 스트리밍 적재, 파티션 관리, 프로젝트 분리로 성능과 비용을 함께 고려했습니다.

#BigQuery#Kafka#Airflow
4200

백엔드

컬리는 물류 최적화 문제를 어떻게 풀고 있을까? - 2부

컬리는 실제 물류 환경을 닮은 Digital Twin을 만들어 최적화 알고리즘을 검증했습니다. 시뮬레이션과 현장 적용 모두에서 주문 그룹 내 상품 가짓수를 줄이는 효과를 확인했습니다.

#MLE#회귀분석#Digital Twin
3400

백엔드

컬리는 물류 최적화 문제를 어떻게 풀고 있을까? - 1부

컬리는 QPS 공정의 생산성을 높이기 위해 바구니 안 고유 상품 수를 줄이는 최적화 문제를 다뤘습니다. 기존 방식 대신 유전 알고리즘을 적용해 10% 이상 개선 가능성을 확인했습니다.

#유전 알고리즘#최적화#물류
5200