지예환Ewan Jee
프로젝트 목록
혜택홈 화면을 위에서 아래로 넘기는 모습

무신사: Retention 팀

혜택홈 새 판 서버와 편성 어드민

2026.06 ~ 2026.09, 서버 설계와 개발, 편성 어드민

  • 약 10만 번하루 화면 열림
  • 약 0.25초p99 응답
  • 약 5만 원출시 전 막은 총액 오류

13개 화면 영역을 판 API 한 번으로 내려주는 서버와, 운영자가 개발과 배포 없이 카드와 광고를 편성하는 어드민을 설계하고 만들었습니다. 하루 약 10만 번 열리는 화면을 p99 약 0.25초, 서버 오류 0건으로 처리하고, QA는 시뮬레이터를 띄워 테스트하고 티켓까지 만드는 봇으로 자동화했습니다.

혜택홈 열어 보기

문제

혜택홈은 혜택을 나열만 해서 사용자는 오늘 할 일과 받을 금액을 알기 어려웠고, 광고를 넣을 자리가 없어 방문이 늘어도 수익으로 이어지지 않았습니다.

운영자는 카드 순서나 노출 기간을 바꾸거나 미션을 새로 만들 때마다 개발과 배포를 거쳐야 했습니다.

그래서 하루 약 10만 번 열리는 화면을 운영자가 개발 없이 바꾸는 편성 데이터로 그리는 문제로 정했고, 운영자가 직접 다룰 대상은 카드와 광고의 순서, 노출 기간, 변경 이력이었습니다.

접근

결정

결과

기록과 자동화

배운 점

  1. 화면에 보이는 숫자는 시안이 아니라 실제 데이터로 다시 계산한 뒤에 확정합니다.
    • 상황: 시안의 혜택 총액은 41,030원이었는데 실제 데이터로는 최대 91,020원이 나와 약 5만 원이 달랐습니다.
    • 한 일: 시안 숫자를 그대로 쓰지 않고 실제로 받을 수 있는 최대 총액과 대조해 차이를 찾고, 총액 산출 정책을 고쳤습니다.
    • 결과: 혜택 총액 오류를 출시 전에 막았습니다.
  2. 테스트가 모두 통과해도 출시 전에 직접 다시 점검하고, 결함을 찾은 자리에는 회귀 테스트를 남깁니다.
    • 상황: 상태 API가 소스 서비스에 회원 정보를 넘기지 않는 결함이 있었는데, 기존 테스트는 모두 통과하고 있었습니다.
    • 한 일: 출시 전 자체 점검에서 결함을 찾아 고치고, 같은 자리를 다시 건드리면 실패하는 회귀 테스트 2건을 더했습니다.
    • 결과: 로그인 회원에게 미션과 자산 값이 비어 보일 뻔한 문제를 출시 전에 막았습니다.
  3. 구현 방식이 갈리면 후보를 모두 만들어 같은 조건에서 재 본 뒤 고릅니다.
    • 상황: 섹션 요약을 조회할 때 애플리케이션 메모리에서 집계할지, DB에서 집계할지 정해야 했습니다.
    • 한 일: 메모리 집계와 DB 집계를 모두 구현해 같은 조건에서 속도를 쟀습니다.
    • 결과: DB 집계가 지금 규모에서 3.3배, 1만 행에서 6.3배 빨라 DB 집계를 골랐습니다.