모든 블로그
무신사

무신사

도메인medium.com
주요 카테고리 AI · 백엔드 · 아키텍처

활동 요약

대표 인기 포스트MDS(Musinsa Design System) 지속 가능한 디자인 시스템을 향한 여정490 조회
최근 30일
4개
평균 조회
136
누적 조회
14,046
전체 글
103개
마지막 발행
2026. 11. 10.
블로그 방문

무신사 기술 블로그 글 (29)

백엔드

로그가 서비스를 죽였다

동기 stdout 로깅이 커넥션 풀 고갈과 요청 실패로 이어진 원인을 분석했습니다. caller에서 추적 ID를 캡처해 비동기 로깅과 관측성을 함께 유지했습니다.

#logging#OpenTelemetry#분산 추적
11500

백엔드

의심했던 범인은 알리바이가 있었다.

Jenkins 배치의 5분~12분 Hang 원인을 JFR로 추적해, 의심했던 로그 appender가 아니라 N+1 쿼리와 Aurora 읽기 지연이 범인임을 밝혀냈습니다. 운영 코드 변경 없이 JVM 옵션 한 줄로 진단하고 쿼리 통합으로 문제를 해결했습니다.

#Spring Batch#Jenkins#JFR
11500

백엔드

“이 장애, 얼마나 심각한가요?” 사용자 경험을 기준으로 비즈니스 심각도를 정의하다

장애 심각도를 기술 지표가 아니라 사용자 경험과 비즈니스 영향으로 정의한 사례를 소개했습니다. CUJ와 CSP, SLI, SEV를 연결해 대시보드와 얼럿 운영까지 체계화했습니다.

#SRE#SLI#SLA
4900

백엔드

“스케줄이 또 안 돌았어요” — 우리가 Temporal을 선택한 이유

Jenkins 기반 스케줄 운영의 한계를 해결하기 위해 Temporal을 도입했습니다. 자동 재시도와 실행 이력 가시성으로 출고지시와 주문수집을 더 안정적으로 자동화했습니다.

#Temporal#Jenkins#Spring Batch
21900

백엔드

“이번 달도 밤샘 정산입니다.” — 더 이상 밤샘하지 않아도 됩니다 (운영편)

MASS 정산 시스템을 단계적으로 오픈하며 실제 운영 데이터로 정합성을 검증했습니다. 수기 정산을 자동화해 마감 시간을 줄이고 재처리 상황에서도 안정성을 확보했습니다.

#정산#배치#QA
10600

백엔드

“이번 달도 밤샘 정산입니다.” — 정산 시스템은 어떻게 만들었을까 (실전편)

정산 도메인의 특성에 맞춰 이벤트 처리와 배치 처리를 분리한 하이브리드 구조를 설명했습니다. Kafka, Spring Batch, Argo Workflow로 실패와 재처리를 전제로 한 정산 시스템을 구현했습니다.

#Kotlin#Spring Boot#Spring Batch
22500

백엔드

이구위크 전시 장애 대응기: Redis에는 무슨 일이 있었나

이구위크 전시 장애는 Redis의 네트워크 대역폭 초과와 버스트 크레딧 소진으로 발생했습니다. 이후 노드 스케일업, 모니터링 강화, 로컬 캐시 도입으로 재발 방지와 성능 개선을 진행했습니다.

#Redis#AWS#모니터링
12000

백엔드

불편함에서 시작된 효율화: QA 리포트 자동화하기

29CM QE팀이 QA 데일리 리포트를 Slack Bot으로 자동화한 사례를 소개했습니다. Jira와 TestRail 연동, 입력 검증, 비동기 처리로 효율과 안정성을 높였습니다.

#Slack Bot#Slack API#Jira API
3700

백엔드

29CM 에서 무신사머니 사용하기

29CM 주문서에 무신사머니를 외부 서비스 연동으로 도입한 사례를 소개했습니다. 안정성과 연속성을 위해 폴백, 서킷 브레이커, 전략 패턴, 파드 증설을 적용했습니다.

#Spring Boot#Circuit Breaker#resilience4j
10700

백엔드

29CM 에서 무신사머니 사용하기

29CM 주문서에 무신사머니를 외부 연동 방식으로 도입하며 안정성과 연속성을 우선해 설계했습니다. 점진적 기능 저하와 서킷 브레이커, 모니터링과 증설 전략으로 운영 안정성을 확보했습니다.

#Spring Boot#Java#Circuit Breaker
16700

백엔드

10초 타임아웃에서 벗어나기까지의 여정

체험단 활동목록 조회 API의 10초 타임아웃을 대용량 데이터에 맞는 인덱스와 쿼리 분리로 해결했습니다. 조회 구조를 바꿔 p99 지연시간을 20ms 이하로 낮췄습니다.

#MySQL#인덱스#커버링 인덱스
35800

백엔드

서비스의 건강을 수치화 할 수 있을까? — SLI/SLO

서비스의 건강을 수치로 보기 위해 SLI와 SLO를 정의하고 운영하는 방법을 소개했습니다. 29CM 사례를 통해 지표 설계, 모니터링, 지속 개선 체계를 설명했습니다.

#SRE#모니터링#Prometheus
10200

백엔드

무신사 쿠폰 시스템, DB 성능 64% 개선으로 기술 부채를 갚다

무신사는 쿠폰 시스템의 레거시 병목을 분석해 API와 쿼리 구조를 개선했습니다. 그 결과 DB 성능을 64% 높이고 고트래픽 구간의 CPU 알람을 안정화했습니다.

#DB#성능#cache
47400

백엔드

실패도 빠르게! 100개 배너 10초컷 테스트 자동화 구현기

배너 링크 검증 자동화를 UI가 아닌 API 상태 코드 기반으로 전환했습니다. 병렬 처리와 Slack 알림으로 100여 개 배너를 약 10초에 점검했습니다.

#test#자동화#API
21200

백엔드

29CM 제주/도서산간 배송비 시스템 구축기

제주/도서산간 배송비를 주문부터 정산까지 반영하도록 시스템을 재구축했습니다. 6자리 우편번호 마이그레이션과 클레임 로직까지 함께 처리해 고객 경험과 운영 효율을 개선했습니다.

#Java#test#API
20300

백엔드

무신사 QA 팀은 어떤 도구를 업무에 사용할까?

무신사 QA 팀이 엑셀 기반 리포트와 수기 입력의 비효율을 줄이기 위해 QA Admin 도구를 구축했습니다. Python과 Flask로 데이터를 구조화해 리포트 자동화, 리뷰 분석, XPath 관리를 통합했습니다.

#Python#Flask#API
20000

백엔드

구관이 꼭 명관은 아니다: 정산 시스템의 세대교체

레거시 정산 시스템의 성능 한계와 복잡도를 해결하기 위해 Spring Boot와 Spring Batch로 전면 재설계했습니다. 정산 기준별 Step 분리와 일간 집계 추가로 확장성과 운영 안정성을 높였습니다.

#Django#Python#PostgreSQL
25300

백엔드

레거시 시스템을 안정적으로 전환하는 전략

레거시 시스템 전환을 단순 교체가 아닌 점진적 이관 관점에서 정리했습니다.피처 플래그, 카나리 전환, 데이터 검증으로 서비스 안정성을 지키는 방법을 소개했습니다.

#refactoring#MSA#feature flag
21300