김준형

비즈니스 임팩트로 증명하는 개발자

📧 toong03284@gmail.com

☎️ 010-3959-5195

💻 https://github.com/toongri

이커머스 도메인 백엔드 3년차로, 상품과 셀러 어드민 영역을 주로 다뤘고 최근에는 위탁판매 상품 입고와 등록 자동화 파이프라인을 개발했습니다.

당연해 보이는 원인일수록 다시 확인합니다. 엉뚱한 문제를 풀면 상황은 개선되지 않기 때문입니다. 상품 검수 인력이 부족하다는 판단에 인력충원을 준비하던 중 현장 라인을 방문해 병목을 확인하고, 검수 자동화를 통해 1인당 처리량을 5배로 끌어올리고 월 1,500만원 운영비를 절감했습니다.

배포 후 지표를 확인할 때까지 기능을 놓지 않습니다. 코드를 배포했다고 끝난 게 아니라, 실제로 지표가 움직였는지 확인해야 비로소 마무리된다고 생각하기 때문입니다. 좋아요 집계 개선 후 가입자 상품 상세 조회 CTR 10%→22%를 확인하고, 캐시 적용 후 p95와 DB CPU 메트릭으로 효과를 검증한 뒤에야 마무리했습니다.

최근에는 AI 에이전트를 활용한 개발 생산성 개선에 여러 시도를 하고 있습니다. 리뷰에 드는 시간을 줄이면 전체 개발 속도가 빨라질 것이라 판단했고, 여러 모델에게 청크 단위로 리뷰를 맡긴 뒤 오케스트레이터가 합의를 도출하는 구조로 에이전트 리뷰의 커버리지와 신뢰도를 높여, 사람은 핵심만 확인하면 되는 흐름을 만들어 가고 있습니다.

기술

Kotlin, Spring Boot, JPA, Spring Batch, Go, Gin, PostgreSQL, Redis, Kafka, Prometheus, Grafana, Claude Code, k6

경력

마인이스

2024.05 ~ 2025.11

Backend Engineer

중고 패션 위탁판매 이커머스 '차란' 운영

  • LLM을 이용한 상품 검수 자동화로 월 1,500만원 운영비 절감
  • 현장 주도 공정 조건 관리 시스템을 구축하여 조건 변경 리드타임 2주 → 즉시 단축
  • Redis 캐시 적용으로 피크 시간대 상품 조회 p95 500ms → 150ms, DB CPU 90% → 45%

애즈위메이크

2022.07 ~ 2023.06

Backend Engineer

로컬 마트 주문 중개 플랫폼 '큐마켓' 운영

  • 좋아요 집계 테이블 도입으로 상품 리스트 조회 p99 10초 → 500ms 단축, 가입자 상품 상세 조회 CTR 10% → 22% 개선
  • POS 연동 자동화로 피크타임 주문~배달 완료 평균 90분 → 67분 단축
  • lock-free 기반 선착순 쿠폰 시스템 설계로 첫 구매 전환 700명 달성
  • 결제 상태 동기화 스케줄러 도입으로 결제-주문 불일치 주 5건 → 0건

문제 해결

LLM 기반 상품 검수 자동화 시스템 설계

마인이스 | 2024.10 ~ 2024.12

검수 인력 11명 → 3명, 1인당 처리량 5배, 창고 확장 없이 접수량 2배 수용

Go, Gin, Kafka, PostgreSQL

개요

위탁자 유치 마케팅이 시작되며 접수량이 1.5배 증가, 미처리 재고 4주치 적체로 창고 한계 도달. 프롬프트 설계와 백엔드 파이프라인 구현을 단독 수행

문제

  • 처음엔 인력 충원으로 접근했지만 효과가 비례하지 않아 검수 라인을 작업 단위로 분해. 병목은 물량 처리가 아니라 자사 카테고리, 소재, 색상, 스타일을 판별하는 해석 업무였고, 이 업무가 요구하는 암묵지 학습이 신규 인력 온보딩 장기화와 조기 이탈을 만들고 있었음. 문제를 인력 부족이 아닌 ‘해석 업무의 사람 숙련 의존도’로 재정의
  • 현재 일 5,000건 처리량 기준으로 1~2년 재확장 없이 운영 가능하려면 최소 일 10,000건은 감당해야 함
  • 검수~전시 2시간 SLA: 검수 시작과 완료 알림 간격이 짧을수록 위탁자 반응이 빨라져 전시가 당일 시작된다는 내부 통계 기반의 운영 규칙

해결

  • Vision → Text 2단 파이프라인으로 시각 추출과 매핑 판단 분리, 정확도 88%. 키워드 전처리 기반 동적 few-shot으로 90%까지 끌어올림
  • fan-out 동시 추론으로 7개 속성 순차 처리 시 상품당 p50 80초가 걸리던 것을 30초로 단축. 속성별 Kafka 토픽 분리도 검토했으나 토픽 수 증가와 Orchestrator 구현 복잡도로 보류
  • 병렬 Consumer로 컨슈머 그룹 내부 처리량 확보. Kafka 파티션 증설은 한 번 늘리면 줄일 수 없는 비가역 변경이라, 현재 트래픽 대비 과투자로 판단해 보류
  • 추론 실패 토픽 + 3회 재시도 후 DLQ로 처리 흐름 차단 방지. 속성별 추론 상태를 DB에 기록해 부분 실패 시 7개 속성 전체가 아닌 미완료 속성만 재호출, 상품당 최대 6회 LLM 호출 절감
  • 주 LLM API 장애 시 Circuit Breaker가 감지하고 Fallback 모델로 호출 전환해 검수 흐름 중단 방지. 모델별 프롬프트로 정확도 편차 5%p 이내 유지

성과

  • 1인당 검수 처리량 300개 → 1,500개, 검수 인력 11명 → 3명, 월 1,500만원 운영비 절감. 창고 확장 없이 접수량 2배 수용
  • 검수~전시 SLA 달성률 55% → 95%
  • LLM API 장애 상황 DLQ 유입률 0.01%

선착순 쿠폰 lock-free 동시성 설계

애즈위메이크 | 2023.05

첫 구매 전환 700명, 동시 접속 200명 처리

Spring Boot, PostgreSQL, Redis

개요

첫 구매 전환 목적 선착순 쿠폰 프로모션을 한정 수량으로 진행

문제

  • 동시 요청 시 발급 수 정합성을 보장해야 하나, 카운터 기반 차감은 단일 행 경합으로 동시성 병목
  • 예상 동시 접속 200명 규모에서 초과 발급 0건이 요구사항

해결

  • SKIP LOCKED 기반 lock-free 병렬 발급으로 lock contention 자체를 제거. 쿠폰 N개를 사전 발행해 두고 동시 요청 시 잠긴 행을 건너뛰며 다음 행에서 발급. 비관적 락이나 분산 락은 어떤 방식이든 락을 점유하므로 경합이 불가피하고, 메시지 큐는 예상 동시 접속 규모 대비 도입과 운영 비용이 과도해 기각
  • Redis 매진 상태 캐싱으로 전량 발급 후 DB 도달 요청 자체를 제거. Redis 다운 시에도 DB 상태 컬럼이 정합성 보장

성과

  • 첫 구매 전환 700명
  • 동시 접속 200명 처리

회고

  • 트래픽 증가 시 메시지 큐 기반 비동기 발급으로 다양한 요구사항에 유연하게 대응 가능
  • 유저 중복 발급 가능 요구사항 추가 시 DB 제약조건 변경이 필요한 설계는 확장성 측면에서 아쉬움

상품 조회 캐시 적용

마인이스 | 2025.04

상품 리스트 조회 API p95 500ms → 150ms, 피크 시 DB CPU 90% → 45%

Go, Redis, PostgreSQL

개요

서비스 성장과 마케팅 캠페인으로 20시 피크 트래픽이 누적되며 상품 조회 API의 DB CPU가 90%까지 상승

문제

  • p95 500ms 이상으로 SLO 미달. 매 요청마다 DB를 직접 조회하는 구조가 원인이며, 인덱스는 이미 적용된 상태라 DB 조회량 자체를 줄이는 접근이 필요

해결

  • Redis Cache-Aside 분리 캐싱으로 DB 직접 조회 감소. 리스트 캐시는 TTL 5분 stale 허용, 상품 상세 캐시는 상태 변경 시 즉시 eviction. 리스트 miss 시 ID만 조회 후 개별 캐시 확인, miss인 상품만 batch fetch. Local Cache는 다중 서버 환경에서 상품 상태가 빈번히 변경될 때 일관성 보장이 어려워 미채택
  • singleflight + TTL jitter로 cache stampede 방어. 프로세스 내 단일 실행으로 stampede 해소에 충분하고 관리 포인트가 적음. 분산 락은 멀티 인스턴스 단일 실행을 보장하나 TTL 관리와 Redis 의존이 부담. TTL jitter로 서로 다른 키가 동시 만료되지 않도록 방지

성과

  • 상품 조회 API p95 500ms → 150ms, 피크 시 DB CPU 90% → 45%

좋아요 집계 최적화

애즈위메이크 | 2023.01

상품 리스트 조회 API p99 10초 → 500ms, 상품 상세 조회 CTR 10% → 22% 개선

Spring Boot, PostgreSQL

개요

신규 가입자 확보 목표 하에 PLP 응답 속도 개선이 가입자 상품 상세 조회 CTR 상승으로 이어질 것이라는 가설을 바탕으로 조회 성능 개선 추진

문제

  • PLP p99 10초로 상품 상세 진입 자체가 지연
  • EXPLAIN ANALYZE 결과 인덱스가 이미 적용된 상태에서 좋아요 수를 매 요청마다 JOIN + COUNT로 집계하는 구조가 원인

해결

  • 실시간 집계 테이블로 JOIN + COUNT 제거, 좋아요/취소 시 즉시 INCREMENT/DECREMENT. 조회 캐싱은 무거운 집계 반복 자체가 해소되지 않고, 배치 집계는 반영 지연과 규모 확대 시 복잡도 증가로 미채택

성과

  • 상품 리스트 조회 API p99 10초 → 500ms
  • 가입자 상품 상세 조회 CTR을 10%에서 22%로 향상

회고

  • 좋아요/취소마다 DB 쓰기 발생 — 규모 확대 시 메시지 큐로 이벤트 적재 후 배치 처리하여 쓰기 부하 감소 가능

스터디 활동

AI 에이전트 Tool 활용 공유 스터디

2025.12 ~

  • oh-my-opencode, ralph 등 AI 에이전트 Harness Engineering 구조 분석, 사용 및 구현
  • Context Engineering 방법론과 Agent Feedback Loop를 활용한 요구사항 정의-검증 파이프라인 체득 중
  • agent-browser 등 에이전트 도구의 워크플로우와 운용 전략을 공유하며 AI 협업 생산성 개선

유닛 테스트 스터디

2025.02 ~ 2025.05

  • 「Unit Testing」, 「단위 테스트의 기술」을 읽으며 좋은 테스트의 4가지 요소와 단위 테스트의 역할 학습
  • 테스트 부재 코드베이스에 유닛 테스트 도입을 위해 스터디장을 맡아 진행, 실무 적용으로 커버리지 0% → 20% 달성

객체지향 설계 스터디

2022.09 ~ 2023.01

  • 「객체지향의 사실과 오해」, 「오브젝트」를 읽으며 책임 주도 설계 방법론 학습
  • 팀 내 설계 기준을 맞추기 위해 스터디 진행, 일관된 객체 설계로 코드 리뷰 효율과 유지보수성 향상

학력

인하대학교

2013.03 ~ 2020.08

컴퓨터공학과 학사