문제 발견
우리 팀이 관리하는 구글 폼에서 매일 수십 개의 주문이 들어온다. 그 중 배송 주소는 다양한 형식으로 들어온다.
「서울 강남구 테헤란로 123 (5층)」
「Seoul, Gangnam-gu, Teheran-ro 123」
「강남 테헤란로 123 5층」
「서울특별시강남구테헤란로123-5」
Claude Code로 만든 주소 검증 봇은 이런 혼합 형식을 만나면 "주소를 인식할 수 없음"이라고 판단하고 배송 준비 단계에서 자꾸 실수했다. 팀원이 수동으로 다시 정리하는 바람에 배송이 2~3일 지연되곤 했다.
원인 분석
문제는 간단했다. Claude Code 봇이 특정 주소 패턴만 인식하도록 설정되어 있었는데, 사용자들은 공백, 한글/영문 섞임, 괄호, 번호 위치 등을 제멋대로 입력했기 때문이다.
정규표현식으로 해결하기
구글 시트에 다음 구조를 추가했다.
function normalizeAddress(rawAddress) {
let clean = rawAddress.trim().replace(/[\s()()]/g, ' ');
clean = clean.replace(/\s+/g, ' ');
return clean;
}
이 함수가 하는 일은 세 가지다.
1. 양쪽 공백 제거 (trim)
2. 특수문자(괄호, 여러 공백) 정규화
3. 연속된 공백을 하나로 통일
이제 서로 다른 형식의 주소들이 모두 같은 방식으로 정렬된다.
Claude Code에 넣기
구글 시트의 「새 열」에 다음 공식을 작성했다.
=REGEXREPLACE(REGEXREPLACE(A2, "[\\s()()]", " "), "\\s+", " ")
이 한 줄로 전체 데이터셋의 주소가 표준화되었다. Claude Code 봇은 이제 "정제된" 주소만 검증하면 되었다.
결과
적용 후 첫 주:
• 주소 검증 실패율: 22% → 6%
• 배송 오류 접수: 주당 3~4건 → 1건 이하
• 팀원의 수동 정리 시간: 주 30분 → 0분
작은 정규표현식 하나가 배송팀의 부담을 확 줄였다.
배운 점
비개발자도 정규표현식의 기초를 알면 데이터 정리 자동화가 한결 쉬워진다. 특히 구글 시트의 REGEXREPLACE 함수는 Claude Code보다도 먼저 시도해볼 가치가 있다. 복잡할 필요는 없다. 작은 패턴 하나로도 큰 변화가 생긴다.