글로벌 앱을 내보낸 뒤, 기능 밖에서 먼저 마주한 문제들
공공데이터 연동, 여러 국가의 이미지·번역 캐싱, 포인트 어뷰징 대응을 통해 제품 운영을 다시 설계했던 기록.
2026년 8월 23일
모빌리티 라이프 플랫폼 앱은 차량 관리와 기록, 커뮤니티, 혜택을 한 흐름으로 연결하는 서비스였다. 한국을 시작으로 미국·베트남·태국·말레이시아·인도·일본까지 출시하면서, 기능을 구현하는 일과 서비스를 운영하는 일은 생각보다 다른 문제라는 것을 많이 배웠다.
공공데이터 연동은 API 하나를 붙이는 일이 아니었다
차량 번호와 본인 확인을 바탕으로 차량 정보를 제공하고 정비 안내까지 연결하는 흐름을 만들었다. 외부 데이터를 받는 코드 자체는 시작일 뿐이었다. 서비스 목적과 데이터 사용 범위를 맞추고, 어떤 사용자가 어떤 근거로 조회할 수 있는지, 확인이 실패했을 때 사용자에게 무엇을 보여 줄지를 함께 정해야 했다.
처음에는 응답 형태와 화면 연결에만 신경 쓰기 쉽다. 하지만 외부 데이터가 제품의 핵심 경험이 되면 승인된 범위, 조회 권한, 실패 상태가 모두 기능의 일부가 된다. 이 과정을 거치면서 API 연동은 기술 통합이라기보다 제품의 책임 범위를 설계하는 일에 가깝다는 것을 배웠다.
사용자의 위치가 바뀌면 응답 속도도 기능이 된다
여러 나라에서 서비스를 열면 번역과 이미지는 화면 장식이 아니다. 사용자가 멀리 있을수록 같은 이미지를 내려받는 시간도, 번역 결과를 기다리는 시간도 경험을 바꾼다.
그래서 이미지는 CDN을 통해 가까운 위치에서 제공하고, 구글 자동 번역이 필요한 결과는 매 화면마다 새로 요청하지 않도록 캐싱했다. 중요한 것은 무조건 오래 캐싱하는 것이 아니었다. 같은 내용을 반복해서 요청하지 않으면서도, 운영자가 수정한 정보는 적절한 시점에 다시 반영되는 기준을 잡아야 했다.
글로벌 출시를 하면서 깨달은 것은 국가 선택 화면을 추가하는 것만으로 글로벌 서비스가 되는 것은 아니라는 점이다. 사용자는 캐시 정책을 보지 않지만, 이미지가 늦게 뜨고 번역이 매번 달라지면 바로 경험한다.
SMS 인증이 있어도 보상 어뷰징은 막히지 않았다
신규 가입과 친구 초대에 포인트를 주는 기능을 운영하면서, 짧은 시간에 인증을 반복하고 보상을 노리는 비정상적인 가입 흐름을 발견했다. 인증을 통과했으니 정상 사용자라고 단정할 수 없었다. 인증 메시지 비용은 늘고, 포인트가 실제 상품으로 이어질 수 있다는 점도 위험했다.
다행히 보상 상품은 운영자가 확인한 뒤 발급하게 해 두어, 큰 피해로 이어지기 전에 흐름을 멈출 수 있었다. 이후 계정별 초대 횟수, 반복 요청 제한, 비정상적인 포인트 증가를 확인하는 기준을 추가했다.
여기서 배운 것은 보상 기능을 설계할 때 인증만 붙이면 끝나는 것이 아니라는 점이다. 인증, 보상 한도, 사용 패턴, 실제 지급, 운영자 확인은 하나의 방어 흐름이어야 한다. 제품에서 금전적 가치가 생기는 순간에는 악용 가능성과 운영자가 개입할 위치까지 같이 설계해야 한다.
출시 뒤에도 제품은 계속 설계된다
이 프로젝트는 기능을 만들고 끝낸 경험이 아니다. 외부 데이터의 책임, 여러 국가의 응답 속도, 보상 악용 같은 문제를 실제로 마주하며 제품의 기준을 계속 고친 경험이다. 운영에서 발견한 문제는 기능 바깥의 예외가 아니라, 다음 버전의 제품 설계가 되는 경우가 많았다.