← 홈으로 PROJECT DECK — 06 / 06
06 · Domain · Strategy Engine 2026.07 — 진행 중

재고 할당 전략 엔진,
하드코딩을 도메인으로.

코드에 고정된 할당 순서를 자격 · 묶음 · 정렬 · 부분 할당의 전략 도메인으로 재설계 — AI-DLC 방법론(05)을 첫 대형 에픽에 실전 적용한 프로젝트입니다.

← → 방향키 · 휠 · 스와이프로 넘겨보세요

세 가지가 동시에 문제였다

PROBLEM 01

설정으로 받을 수 없다

"임박 재고는 내보내지 마라", "한 출고에 소비기한을 섞지 마라" — 고객사별 요구를 받을 수 없었습니다. 할당 순서가 코드에 박혀 있었으니까요.

PROBLEM 02

전량 아니면 실패

전량 확보에 실패하면 통째로 실패 — 재고가 일부라도 있는데 아무것도 내보내지 못하는 상황이 생겼습니다.

PROBLEM 03

실패를 재현할 수 없다

할당이 실패해도 이유가 남지 않고, 재고는 계속 변합니다 — 며칠 뒤에는 "왜 안 됐는지" 재현조차 불가능했습니다.

As-Is → To-Be

As-Is : 후보 조회 (소비기한 임박 순) 앞에서부터 채움 전량 못 채우면 실패
To-Be : 전략 확정
납품처 → 센터 → 시스템 디폴트
자격 필터 묶음 제한 전략 정렬 전량 / 부분 할당 / 실패 + 부족 기록

신규 컴포넌트 6개 — StrategyResolver · QualificationEvaluator · CandidateFilter · BundleSelector · CandidateSorter · AttributeValueLoader

다섯 가지 설계 결정

D1하위 호환은 "디폴트 전략"으로
조건 없는 시스템 디폴트 시드 — 전략 없는 센터는 기존과 완전히 동일하게. 무중단 착지.
D2부분 할당은 뒷단만 고치면 반쪽
앞단 재고 관문과 엔진을 같은 판정 함수로 통일 — 한 MR에서 함께 변경.
D3실패는 스냅샷으로 남긴다
빠진 후보와 사유를 JSONB 부족 기록으로 — 재고가 변해도 재현 가능한 사실로.
D4정렬은 결정성 보장
전략 속성 → 로케이션 → 코드 고정 4단 마무리 — 어떤 조합에서도 결과가 유일.
D5속성 조회 이원화
시스템 속성은 추가 조회 0회, 커스텀 속성만 1,000개 청크 배치 — 유연성을 공짜로.

진행 방식 자체가 성과입니다

S1 — S6
에픽을 스토리로 분해 · 스택 MR 운영
52커밋
할당 엔진 스토리 단독
~30
설계 결정 버전 원장 + QNA 왕복

할당 엔진 MR은 리뷰어 4명이 As-Is/To-Be 흐름도와 원장 결정 인용 위에서 리뷰했습니다. 현재 후속 스토리(지정 할당 — LOT · 소비기한 지정 출고)를 같은 방법론으로 진행 중입니다.