안녕하세요. 올리브영 정산 스쿼드에서 백엔드 개발을 맡고 있는 감자를 닮은 감자맨이라고 합니다. 정산 스쿼드에서 23년 부터 24년 초까지 온라인몰 정산개편 프로젝트를 진행했었습니다. 이번 포스트에서는 이 프로젝트를 진행하게 된 배경과 성과에 대해 공유드리고자 합니다.
정산개편 이전의 온라인몰 정산시스템의 문제점
온라인몰에서는 주문, 배송, 클레임 등 여러 프로세스가 동시에 이루어집니다. 기존의 정산 시스템은 각 프로세스에서 발생한 데이터를 별도로 정제하여 정산 테이블에 저장하는 방식으로 운영되었습니다.
예를 들어, 주문이 발생하면 해당 주문 데이터를 주문 테이블에 먼저 저장한 후, 이를 가공하여 정산 테이블에 반영하는 방식이었습니다. 마찬가지로, 반품이 발생했을 경우 클레임 테이블에 관련 데이터를 저장하고, 이를 정산에 맞게 가공한 후 정산 테이블에 저장하는 구조였습니다.
주문 배송 CX 프로세스의 복잡도 증가
온라인몰의 주문 트랜잭션 내에서는 정산 기초 데이터를 적재한 후, 이를 토대로 정산 업무에 필요한 데이터를 생성합니다. 그러나 이와 같은 로직의 문제점은, 주문, 클레임, 배송 등의 프로세스에서 데이터를 적재할 때 정산에 맞는 형태로 데이터를 재가공해야 한다는 점입니다. 이 과정에서 데이터 정합성을 항상 신경 써야 하므로 각 프로세스의 복잡도가 증가하게 됩니다.
정산 데이터의 부정확성
주문, 클레임, 배송 등의 프로세스에서 정산데이터를 적재할 때, 정산 관점에서 정합성이 맞지 않는 데이터가 다수 발생합니다. 원천 데이터는 정상적이지만, 정산 데이터를 생성하는 과정에서 부정확한 데이터가 생성되어 정산적 정합성이 틀어지는 상황이 발생하게 됩니다. 이러한 데이터는 QA 및 운영 검증이 어려워, 결국 정산 개발자의 데이터 분석을 통한 보정에 의존하게 됩니다.
리소스 낭비 심화
위와 같은 보정이 필요한 데이터가 발생하면 정산 개발자가 데이터를 분석하여 문제를 찾아 수정합니다. 하지만 이러한 데이터 보정은 고스란히 정산 운영 시스템의 리소스 부하로 이어집니다. 주문, 클레임, 배송 등 모든 프로세스마다 정산 데이터가 적재되다 보니, 온라인몰 거래량의 증가는 곧 정산 기초 데이터의 증가로 연결됩니다. 거래량이 증가함에 따라 정산 기초 데이터도 늘어나고, 위에서 언급한 것처럼 정합성이 틀어진 데이터도 같은 비율로 쌓이게 됩니다.
세일과 같은 특별한 행사가 있는 경우에는 정산 개발자가 출근부터 퇴근까지 정산 데이터만 보정하는 상황도 발생할 정도로 운영 리소스의 부하가 심각했습니다. 또한, 정산 데이터를 토대로 진행되는 월 마감에서는 정산 담당자뿐만 아니라 정산 개발자가 마감 종료까지 함께 대기하며 진행해야 했습니다. (매월 마감 때마다 정산 스쿼드는 항상 야근을 했습니다.)
정산뿐만 아니라 정산 데이터의 수정은 이를 사용하는 모든 유관 부서에도 추가적인 작업을 요구하기 때문에, 해당 부서의 리소스 낭비를 야기했습니다.
정산개편
이러한 문제를 해결하기 위해 도입된 정산 개편 구조는 데이터를 보다 효율적으로 관리할 수 있도록 설계되었습니다.
주문, 클레임, 배송 데이터는 각 원천 테이블에만 적재하고, 정산 단계에서는 필요한 시점에 원천 데이터를 수집하여 전표 생성 및 매출 전송 등 정산에 필요한 데이터를 생성합니다. 특히, 원천 테이블에 적재된 데이터가 무결성을 보장한다는 전제 하에 정산 데이터를 수집하는 방식으로 정산 정합성 불일치 문제를 근본적으로 해소했습니다. 이러한 구조는 데이터 흐름을 단순화하고, 원천 데이터를 정확히 활용함으로써 정산 프로세스의 신뢰도와 안정성을 크게 높였습니다.
정산개편의 성과
정산 개편은 여러개의 Sub Project로 순차적 오픈을 하였습니다.
1. 운영업무 감소
정산 개편의 가장 눈에 띄는 성과는 정산 운영 업무의 획기적인 감소입니다. 위에서 서술한 것처럼, 과거에는 정산 정합성 보정 작업이 빈번하게 발생하여 한 달에 150건 이상의 보정 작업이 이루어지기도 했습니다. 그러나 정산 개편 이후 각 Sub Project를 단계적으로 오픈하면서 보정 건수는 점차 감소하였고, 2024년 4월 마지막 Sub Project가 오픈된 이후에는 정합성 보정 작업이 완전히 사라졌습니다.
특히, 온라인몰 거래 건수가 꾸준히 증가하는 상황에서 정산 개편이 이루어지지 않았다면, 2024년 9월 세일 첫날에 하루 동안 약 320건의 보정 작업이 필요했을 것으로 예상됩니다.
이러한 결과는 정산 개편이 단순히 프로세스를 개선하는 데 그치지 않고, 운영 업무의 부담을 획기적으로 줄이며 효율성을 극대화하는 데 크게 기여했다는 점을 보여줍니다.
2. 데이터
개편 전 환경에서는 여러 프로세스 간의 복잡한 상호작용으로 인해 정산 데이터의 정합성 불일치가 빈번하게 발생했습니다. 이로 인해 불일치 데이터를 제거하고 수정하는 데 많은 시간과 노력이 소요되었습니다.
하지만 개편 후 환경에서는 통일된 계산식을 모든 상품 단위에 적용하고, BigDecimal 라이브러리를 활용하여 정확한 소수점 계산을 가능하게 함으로써, 주문번호별 데이터의 안정성을 완전히 확보할 수 있었습니다.
또한, 정산 데이터 검증 과정에서 원천 데이터에 숨어 있던 이슈를 발견하고 이를 조치함으로써, 데이터의 신뢰도를 한층 높일 수 있었습니다. 결과적으로, 이러한 개선은 단순히 시스템의 안정성을 높이는 데 그치지 않고, 정산 업무의 효율성까지 크게 향상시키는 데 기여하였습니다.
3. 정산운영 담당자 편의개선
정합성 향상으로 인해 재처리 업무가 사라졌을 뿐만 아니라, 정산 운영 담당자의 업무 편의성도 크게 향상되었습니다. 정산 개편 이전에는 마감 시 개발자와 운영 담당자 모두 긴장하며 데이터를 검증했으며, 언제 문제가 발생할지 몰라 마감 업무 종료까지 개발자가 대기하며 대응해야 했습니다.
하지만 정산 개편 이후에는 운영 담당자가 업무 시간 내에 정산 마감을 자체적으로 처리할 수 있게 되었고, 마감 시간도 크게 단축되었습니다. 이제 개발자는 마감일에도 별도의 업무를 진행하며 정산 마감에 얽매이지 않는 환경을 누리고 있습니다.
또한, 정산 담당자가 사용하는 정산 화면도 개선되었습니다. 혼용되던 화면을 통합하고, 불필요한 프로세스와 데이터를 제거하여 메뉴 조회 시간을 단축시켰습니다.(5분~10분이상 걸리던 화면을 30초 내외로 단축) 이를 통해 운영 효율성과 사용자 경험이 크게 개선되었습니다.
4. 개발인력 효율화
정산 개편의 성과는 정산 인력의 효율적인 재배치에서도 나타났습니다. 정산 담당 개발자들의 인력은 더이상 운영에 치중되지 않게 되었고, 새로운 기능을 개발하고 개선점을 더 찾아 갈 수 있는 시간이 확보되어 올리브영의 정산 시스템이 견고해질 수 있게 되었습니다. 인력 운용의 최적화를 통해 정산뿐만 아니라 조직 운영 전반의 효율성도 크게 향상시켰습니다.
마무리
이번 정산개편 프로젝트는 단순히 시스템 개선을 넘어서, 우리의 업무 효율성을 높이고, 더 나아가 투명한 데이터 처리를 가능하게 만들었습니다. 과거의 방식에서 벗어나 새로운 방식으로 발전하는 과정은 쉽지 않았지만, 그만큼 값진 성과를 가져왔습니다. 향후 지속적인 모니터링과 개선을 통해 더욱 완성도 높은 시스템을 구축하고, 이를 바탕으로 고객에게 더 나은 서비스를 제공할 수 있기를 기대합니다. 이제, 우리가 만든 시스템은 더 이상 단순한 정산을 넘어서, 다양한 비즈니스 전략을 지원하는 중요한 요소가 될 것입니다. 앞으로도 더 나은 결과를 만들어 나가겠습니다.