허니팅, Laravel과 Flutter로 21개국 다국어 지원하기
글로벌 소셜 데이팅 서비스 허니팅의 아키텍처. Laravel Reverb를 활용한 실시간 채팅과 앱스토어 배포까지의 여정.
단일 앱으로 21개국을 커버하는 스케일
'허니팅(Honeyting)'은 소셜과 중고거래가 결합된 독특한 플랫폼으로 기획 초기부터 글로벌 시장을 타겟으로 삼았습니다. 우리의 미션은 한국어, 영어, 일본어, 중국어는 물론 스페인어, 인도네시아어 등 21개국의 언어를 하나의 앱 코드로 완벽하고 매끄럽게 지원하는 것이었습니다. 이를 위해 저희는 프론트엔드 크로스플랫폼인 Flutter와 강력한 백엔드 프레임워크인 Laravel 12를 채택했습니다.
다국어 로컬라이제이션(I18n) 자동화
21개국의 언어를 하드코딩하는 것은 유지보수 측면에서 재앙이 될 것이 뻔했습니다. 저희는 구글 스프레드시트와 ARB(Application Resource Bundle) 파일을 연동하는 자동화 파이프라인을 구축했습니다.
- 기획팀이 스프레드시트에 한국어 문구를 입력하면, 번역 API가 각국 언어로 1차 초벌 번역 수행
- CI/CD 파이프라인(GitHub Actions) 작동 시 스프레드시트 데이터를 끌어와 Flutter의 `.arb` 파일로 자동 컴파일
- 앱이 실행될 때 사용자의 디바이스 Locale을 감지하여 즉시 해당 언어 파일 로드
초저지연 채팅: Laravel Reverb
소셜 앱의 핵인 채팅 시스템은 속도가 생명입니다. 과거에는 Socket.io를 따로 구축하여 연동하는 경우가 많았으나, 최근 발표된 Laravel 12의 Reverb 패키지 덕분에 백엔드 프레임워크 안에서 고성능 WebSocket 서버를 직접 띄울 수 있었습니다. Flutter의 WebSockets을 연결하고, 수백 개의 동시 접속된 채팅방에서 메시지가 밀리세컨드 단위로 브로드캐스팅되는 것을 보며 팀원들 모두 쾌재를 불렀습니다.
각국의 깐깐한 심사 통과
글로벌 서비스인 만큼 각 국가별 앱스토어의 개인정보 보호법(GDPR 등) 준수 심사가 매우 까다로왔습니다. 하지만 철저한 설계 분리와 API 규격화를 통해 한 번의 소스 코드 수정으로 iOS, Android 양대 마켓의 글로벌 심사에 대응할 수 있었습니다.