서비스
home

프랜차이즈 지점별 CMS 출금 자동화 구축 (feat. 엔콤소프트)

케이스 요약

무인 빨래방 프랜차이즈 기업 (주)더빌더스앤컴퍼니를 위해, 통합결제프로그램인 엔콤소프트와의 API 연동으로 출금이체를 자동화했습니다. 엔콤CMS의 보안 정책인 IP 화이트리스트 환경에 대응하기 위해 고정 IP 중계 서버(PHP)를 구축하였으며, 구글 앱스 스크립트(GAS)와 연동하여 CMS 청구, 재청구, 가맹점 알림 문자 발송까지의 프로세스를 완전 자동화했습니다.

클라이언트 소개

(주)더빌더스앤컴퍼니는 2015년 설립되어 자기자본금 100%로 운영하고 있는 튼튼한 무인빨래방 프랜차이즈 회사입니다. ‘런드리익스프레스샵 By BDS’ 브랜드 운영을 통해 2025년 말 기준 약 140여 개의 직영점 및 가맹점을 운영하고 있으며, 업계 최초로 카드 결제 IoT 시스템을 도입하여 코인 빨래방 시장을 선도하고 있습니다. 특히 업계에서 유일무이한 위탁 운영 서비스를 제공하며 고객과 가맹점주 모두에게 최상의 서비스를 제공하고 있습니다.
런드리익스프레스 무인빨래방에 대해서 알아보고 싶으시다면, 아래 링크를 클릭해보세요

개발 니즈 및 목표

런드리익스프레스는 가맹점별로 상이한 월 정산 금액을 엔콤소프트 CMS를 통해 계좌 이체 방식으로 수취하고 있습니다.
기존의 한계: 엔콤소프트의 CMS는 가맹점을 등록하고, 출금일과 출금금액을 설정해두면 해당 날짜에 해당 금액이 가맹점의 계좌에서 클라이언트의 계좌로 이체되는 프로세스로 되어 있습니다.
일반적으로 CMS를 이용할 경우에는 월 정기 요금이 정해져 있는 경우가 있는데, 그런 경우에는 어려움 없이 매월 출금이 진행됩니다. 한 번 등록하면 변경없이 지속적으로 사용할 수 있는 것이죠.
하지만 가맹점마다 월 출금금액이 바뀌는 경우에는 매월 마다, 출금일 이전에 출금금액을 관리자 페이지에서 수기로 수정해야 하는 번거로움이 있습니다. 담당자가 정산 내역을 보고 하나하나 입력해야 하는데, 가맹점이 수백개가 된다면 공수도 많이 들고 휴먼 에러의 위험이 존재했습니다.
해결 방안: 엔콤소프트에서 제공하는 API를 활용하여 구글 앱스 스크립트로 월 출금 금액 변경 및 청구 프로세스를 자동화하고자 했습니다.
주요 개발 목표
목표 1: 엔콤소프트의 IP 화이트리스트 정책에 대응하기 위한 고정 IP 중계 서버 구축
목표 2: 청구 결과 자동 조회 및 출금 실패 건 자동 재시도 프로세스 개발
목표 3: 출금 전 사전 공지 및 실패 시 네이버 SENS API를 통한 가맹점 문자 자동 발송

적용 솔루션

구글 클라우드 및 워크스페이스 환경을 기반으로 다음과 같은 맞춤형 자동화 시스템을 구현했습니다.
1.
고정 IP 중계 서버 구축 (php)
엔콤 서버는 지정된 IP에서만 API 호출이 가능한 IP 화이트리스트를 운영하고 있습니다. 이에 클라이언트가 보유한 기존 PHP 서버를 활용해 중계 서버(cmsRelay.php)를 구축했습니다.
동작 흐름: 구글 앱스 스크립트에서 중계서버의 php 파일(cmsRelay.php)를 호출하면, 해당 파일은 고정 IP를 통해서 엔콤 서버를 호출합니다. 그리고 응답 결과를 받아서 앱스 스크립트의 callback 스크립트를 POST 방식으로 호출합니다.
이 callback 스크립트는 웹앱으로 되어 있어서 외부에서 POST, GET 호출을 받을 수 있게 되어 있습니다. callback 스크립트는 결과를 수신하고 값을 파싱해서 구글 시트에 적재합니다.
앱스 스크립트 ⇒ 중계 서버 ⇒ 엔콤 서버 ⇒ 중계 서버 ⇒ 앱스 스크립트 CALLBACK 웹앱 ⇒ 구글 시트 적재
이번 개발을 통해서 엔콤CMS의 API를 하나가 아니라 여러 개를 활용했습니다. API 여러 개를 호출하지만 중계 서버의 파일과 앱스 스크립트 callback 파일을 1개로 유지하기 위해서 API명, 리턴 값을 파싱하는 방법, 결과 값을 붙여넣기 하는 구글 시트 등의 다양한 파라미터를 한 번에 처리할 수 있도록 개발을 진행했습니다. 간단하게 표현하면 다음과 같습니다. 이렇게 개발함으로 추후에 쉽게 확장할 수 있게 되었습니다.
function apiCallToPhp(ecomUrl, method, callbackUrl, pasteTabName, clearTabYN, funcName, parameters = {}) { const phpUrl = '../cmsRelay.php'; const messageData = { ecomUrl: ecomUrl, callbackUrl: callbackUrl, pasteTabName : pasteTabName, clearTabYN : clearTabYN, funcName : funcName, method : method, parameters: parameters }; const payload = JSON.stringify(messageData); Logger.log(payload) const options = { method: 'POST', contentType: 'application/json', payload: payload }; const response = UrlFetchApp.fetch(phpUrl, options); Logger.log(response.getContentText()); }
SQL
복사
API 호출이 발생하고 응답을 수신하는 과정을 중계 서버에 로그를 남겨 오류 발생시 분석할 수 있도록 마련했습니다.
2.
출금 자동 재시도 기능 개발
지정된 날짜에 출금이 진행되고 나면 다음날에 출금 진행 결과를 API를 통해 조회할 수 있습니다. 이 API를 활용해서 출금이 실패한 가맹점만 추려서 다음날 다시 출금이 진행되도록 하려면, 가맹점 정보에서 출금일을 변경해주어야 합니다.
이 과정도 앱스 스크립트로 개발하였으며, 초기에 출금 금액을 변경할 때에 트리거로써 예약이 되어 정해진 날에 자동으로 출금이 실패한 가맹점만 출금을 재시도하게 됩니다. 이로써 담당자의 업무를 최소화하였습니다.
3.
문자 발송 기능 (SMS)
출금이 진행되기 전, 1) 오전에 관리자에게 첫 가맹점의 출금 예정 내역을 문자로 발송해서 출금이 진행될 것이라는 안내를 진행하고, 2) 오후에 출금 대상 가맹점에 출금 예정일과 금액을 문자로 발송해서 사전 고지를 진행합니다.
출금이 실패한 경우, 실패한 가맹점들을 대상으로 다시 문자를 발송해서 가맹점주들이 확인하고 계좌에 출금액을 준비할 수 있도록 안내를 진행했습니다.
문자 발송은 [GAS] 네이버 SENS API로 문자 발송하기 의 노하우를 활용해서 네이버 SENS로 진행했습니다.

결과 및 효과

이 프로젝트를 통해 수기로 엔콤CMS에 접속해 가맹점별 금액을 변경하던 수작업을 완전히 없애고, 원클릭 출금 및 재출금 체계를 완성했습니다.
관리 효율성 증대
월간 관리 시간 최소화: 매월 140여 개 가맹점의 청구 금액을 수기로 변경하던 시간을 제로(0)로 만들었습니다. 담당자는 최종 실패한 예외 업체들만 집중적으로 관리할 수 있게 되었습니다.
정산 오류율 제로화: 수작업으로 인한 정산 오류 가능성을 완전히 제거했습니다.

핵심성과

End-to-End 정산 자동화: CMS 청구 대상 금액 설정부터 API 연동, 결과 수집 및 문자 알림까지의 전 과정을 완전 자동화.
보안 인프라 연동: 유동 IP 환경인 구글 스크립트와 고정 IP 보안 요구사항을 충족하는 중계 서버 아키텍처 구현.
휴먼 에러 제로 & 비용 절감: 수기 입력 및 파일 관리 공수를 제거하여 운영 리소스를 혁신적으로 절감.

개발 노하우

통합 API 파라미터 표준화: 다수의 엔콤CMS API를 호출할 때 리턴 값 파싱과 시트 적재 로직을 단일화된 파라미터 구조로 설계하여 향후 기능 확장성 극대화.
웹앱(Web App) Callback 구조 설계: 외부 서버의 응답을 안전하게 수신하기 위해 구글 앱스 스크립트를 웹앱 형태로 배포하고 POST/GET 데이터를 유연하게 파싱하는 기술 적용.
네이버 SENS API 연동: 가맹점 출금 상태(성공/실패)에 맞추어 맞춤형 템플릿 문자가 자동으로 발송되는 안정적인 알림 파이프라인 구축.

업무 효율성 200% 올리기, with autooffice

업무 자동화 개발 문의는 구글폼을 이용해주세요!