데이터샤우츠
[2026-05-06 | D-Log] 수작업에서 자동화로: 글로벌 해운사 하파크로이트의 고객 피드백 파이프라인 구축기 본문
하파크로이트(Hapag-Lloyd)의 제품 매니저들은 2주에 한 번씩 고객 피드백을 CSV 파일로 내려받았다. 수백 건에 이르는 별점과 댓글을 한 줄씩 읽고 감정과 주제를 손으로 갈라야 했다. 길면 며칠이 걸렸다.
하파크로이트는 컨테이너선 313척을 띄워 한 번에 250만 TEU(Twenty-foot Equivalent Unit, 20피트 컨테이너 1개 분량)를 실어 나르는 선사다. 140개국에 400곳이 넘는 사무소를 두고 600여 개 항구를 잇는다. 웹과 모바일 앱은 매달 수십만 명이 쓴다.
피드백도 그 규모만큼 쏟아졌다. 제품 매니저들은 별점 옆에 달린 자유 서술 댓글을 직접 읽고, 긍정인지 부정인지, 어떤 기능을 두고 나온 불만인지 손으로 갈랐다. 작업은 의사결정과 곧장 이어졌지만 반복이 많고 양을 늘리기 어려웠다. 더 빨리, 더 깊게 보고 싶어도 사람의 손이 따라가지 못했다.
함부르크와 그단스크에 흩어진 디지털 고객 경험·엔지니어링 팀은 자동화 파이프라인을 새로 짰다. AWS 람다(Lambda) 함수가 하루에 한 번 새 피드백을 끌어와 아마존 베드락(Amazon Bedrock)에 넘긴다. 베드락은 댓글 한 건마다 긍정·부정·혼재·중립 네 가지 감정으로 가른다. 사람이 며칠씩 매달리던 1차 분류가 이 단계에서 끝난다.
분류된 댓글은 아마존 오픈서치(Amazon OpenSearch Service)에 색인된다. 오픈서치는 단어 검색용 색인과 벡터 데이터베이스(vector database, 문장의 의미를 좌표로 바꿔 비슷한 의미끼리 가깝게 묶는 저장소) 역할을 같은 인프라에서 동시에 한다. 그 결과 "결제 화면"이라는 단어가 들어간 댓글뿐 아니라 "돈 낼 때 자꾸 멈춘다" 같은 우회 표현까지 한 묶음으로 잡힌다. 단어가 일치하지 않아도 의미가 비슷하면 댓글이 함께 모인다.
제품 매니저는 오픈서치 대시보드에서 감정 분포와 별점, 피드백 양을 시계열로 본다. 앱 업데이트 직후 부정 비율이 어떻게 바뀌었는지, 특정 기능을 짚은 부정 댓글이 얼마나 늘었는지를 필터로 좁혀 들여다본다. 사내 챗봇은 같은 색인을 지식 기반으로 삼아 자연어 질문을 받는다. "고객들이 가장 자주 말하는 불편이 뭐냐"라고 물으면 답이 돌아온다. 뒤에서는 랭그래프(LangGraph)로 짠 다중 에이전트 구조가 돌아간다. 정해진 순서대로 작업을 돌리는 대신, 대규모 언어모델(large language model, LLM)이 질문을 받고 어떤 도구를 어떤 순서로 쓸지 그때그때 고른다. 답변에는 베드락 가드레일(Bedrock Guardrails)을 걸어 회사 정책에 어긋나는 응답을 막는다. 모델은 클로드 소네트 4.6(Claude Sonnet 4.6)을 부른다.
데이터 수집부터 감정 분류, 색인까지의 흐름은 랭체인(LangChain)으로 묶었다. 모델 호출과 데이터 변환, 외부 시스템 연동을 모듈로 떼었다 붙였다 하기 위한 선택이다. 2주마다 또 다른 람다 함수가 최근 피드백을 모아 핵심 지표와 부각된 주제, 감정 분포를 담은 보고서를 만든다. 보고서는 제품 매니저와 제품 책임자에게 이메일로 자동 발송돼 곧장 스프린트 계획과 로드맵 회의 자료로 쓰인다. 인프라 전체는 AWS 클라우드포메이션(CloudFormation)으로 코드처럼 배포해 환경 구성을 반복해 찍어낼 수 있게 했다.
자동화 뒤 제품 매니저들은 댓글을 손으로 갈라내는 일에서 풀려났다. 며칠씩 걸리던 격주 정리가 람다 호출 한 번으로 끝난다. 매달 수십만 명이 남기는 피드백을 매일 처리하면서도 사람의 일은 전략과 혁신, 사용자 경험 설계 쪽으로 옮겨갔다고 팀은 밝혔다.
참고 출처
