에이블리 엔지니어의 자체 풀필먼트 시스템(AFS) 개발기
2025-01-15
에이블리는 스타일 커머스 기업으로서 이커머스 핵심 경쟁력 중 하나인 '물류'를 책임지는 자체 풀필먼트 센터를 운영하고 있습니다. 고객의 주문처리, 상품의 입고, 보관, 출고, 배송 등 일련의 '물류 과정 전반'을 담당하는 중요한 역할을 하는 곳이죠.
이러한 풀필먼트 센터의 핵심을 이루는 물류 시스템, 그중에서도 특히 '자체' 물류 시스템의 중요도는 매우 높은 편입니다. 그렇기에 많은 커머스 기업이 자체 물류 시스템 개발을 시도하지만, 복잡하고 거대한 물류 시스템의 특성으로 인해 개발에 성공하지 못하고 중도에 포기하는 사례가 많습니다.
그럼에도 불구하고 에이블리에서는 자체 개발에 성공하여 에이블리만의 풀필먼트 시스템,
AFS(Ably Fulfillment System)를 활용하여 에이블리의 물류 백오피스를 책임지고 있는데요.
장기간의 고난도 작업임에도 에이블리는 왜, 어떻게 자체 개발을 진행하였을까요?
그 이유가 궁금하실 여러분께! 지금부터 'AFS의 모든 것!(탄생 비화, 기술 스택 등)'에 대해 실제 AFS를 개발하신 엔지니어분들의 답변을 문답 형식으로 소개해 드리고자 합니다.
1️⃣ AFS는 왜 만들게 되었나요?
기존에 활용했던 외부 물류 시스템의 경우 에이블리 비즈니스 임팩트를 달성하는 데에 문제 되는 부분이 있었기 때문입니다.
이를테면 에이블리의 상품 중 동대문 물류의 특성을 반영하지 못하여, 정물 불일치*와 운영 비효율이 발생한다는 문제점이 있었습니다. 이는 업무별로 다양한 서드파티 툴을 활용함으로써 데이터가 산재하여 발생하였는데요.
그 결과, 재고관리, 정산, 입고관리 등의 정합성 유지가 불가능했으며, 수동 조정이 필요한 추가 작업이 빈번하게 발생했습니다.
※ 정물 불일치 : 온라인에 기록되는 재고와, 오프라인 재고가 일치하지 않는 현상
2️⃣ 이러한 문제점을 해결하기 위해 실제로 어떤 작업을 하셨나요?
물류 작업자가 자체 풀필먼트 시스템(AFS)을 통해 보다 효율적으로 업무할 수 있도록 서포트하는
모든 방법을 시도한 것 같습니다.
정물 불일치, 운영 비효율 등 물류 작업자들에게 생기는 이슈를 파악하기 위해 현장의 업무가 어떻게,
왜 진행되는지를 체크하고, 이에 따라 효율적인 개발 진행 방식을 검토하였습니다.
물류 업무를 깊이 있게 이해할 수 있도록 현장의 입/출고, 재고 이동, 발주, 사입, 장부처리까지
물류의 전 과정에 직접 참여해보았으며, 이를 통해 기존의 업무 플로우를 크게 바꾸지 않으면서 효율성을 개선하는 작업을 할 수 있었습니다. 또한, AFS의 프로토타입을 활용하여 UT(User Testing)를 진행하는 등 현장의 니즈를 담을 수 있었습니다.
이 모든 과정이 비즈니스 임팩트를 만들기 위한 선행 조건이었다고 생각합니다.
3️⃣ AFS는 어떤 구조를 기반으로 개발되었나요?
DDD(Domain-Driven Design) 기반으로 기획 및 설계되었으며, 코드 구조는 Hexagonal Architecture를 따르고 있습니다.
주문, 재고, 로케이션, 상품 등 도메인별로 Bounded Context를 정의하고, 각 context를 헥사고날 아키텍처 기반으로 구현하여 비즈니스 로직을 Core에 집중시키고 안전하게 관리하고자 하였습니다.
또한, DDD의 전술적 설계 요소를 적용해 도메인 모델의 일관성과 표현력을 강화하기 위해 노력했습니다.
4️⃣ AFS에 활용된 기술 스택이 궁금합니다!
React + Kotlin + Spring Boot Webflux + MySQL 를 활용하였는데요.
프론트엔드의 경우 ReactJs + Ant Design 기반이며, 벡엔드의 경우 스캔 조회, 서비스로부터 요청 등 TPS가 높은 요청을 보다 빠르고 + 가볍게 처리하거나, 기존 시스템을 활용했을 때 수 시간이 걸렸던 송장생성 작업을 훨씬 효율적으로 단축할 수 있도록 Kotlin + Spring Webflux을 채택하였습니다.
또한 원활한 동시성 관리 + 에이블리 서비스와의 상호작용을 위해 Redis, gRPC, Kafka 등을 적극 활용하였습니다.
이 외에도 인프라의 경우 EKS, Aurora MySQL, ElastiCache 등 AWS 리소스를 효과적으로 활용하여 24시간 안정적으로 돌아가는 시스템을 만들기 위해 노력하였으며, 모니터링의 경우 Grafana, DataDog을 활용하는 등 다양한 기술 스택을 활용하며 비즈니스 임팩트를 위해 열정을 쏟았습니다.
5️⃣ AFS만의 장점은 무엇인가요?
보통의 풀필먼트 시스템과는 차별화되는 특별함을 보유했다는 점입니다.
백오피스임에도 물류 작업자들을 이해하려는 노력을 통해 그들의 실무를 UX에 담아내었고,
기존 시스템과는 비교되지 않을 정도로 빠르고 손쉬운 물류 작업이 가능한 고성능의 제품이기 때문입니다.
물류 관련 모든 데이터를 자체적으로 명확하게 컨트롤할 수 있게 되면서, 에이블리의 비전에 맞춰
자유롭게 커스텀이 가능한 부분도 큰 의미가 있습니다.
또한 그 무엇보다도 에이블리 팀의 비즈니스와 기술적 구조를 이해하고 만든
'에이블리 팀만의 풀필먼트 시스템'이라는 점이 AFS가 보유한 최고의 장점이라고 생각합니다.
에이블리는 지금 채용 중
아무도 상상하지 못한 넥스트 커머스. 지금, 에이블리와 함께 해주세요.