전체 글53 [Backend] UI는 JSON, 그런데 DB에 든 콘텐츠는? — 동적 다국어의 두 갈래 앞선 두 편에서 화면의 UI 문구는 번역 키로, 지명 같은 고유명사는 로마자로 처리했습니다. 그런데 국제화를 마무리하려니 마지막 벽이 남아 있었습니다. 데이터베이스에 저장된 콘텐츠입니다. 서핑 가이드 본문, 뱃지 이름과 설명 같은 것들은 화면에 하드코딩된 문구가 아니라 DB에 든 데이터라, 번역 키 사전만으로는 처리할 수 없었습니다. 이 글에서는 DB 콘텐츠를 다국어로 만들면서 길이 두 갈래로 갈린 이야기를 정리합니다.이 글은 React Native 국제화기 시리즈의 3편이자 마지막 편입니다. 1편에서 번역 누락의 함정을, 2편에서 고유명사 로마자 처리를 다뤘습니다.UI 문자열로 끝나지 않았다앞선 편들에서 다룬 건 화면에 고정된 문구였습니다. "홈", "탐색", "저장" 같은 버튼과 메뉴 라벨이죠. 이런.. 2026. 7. 25. [Backend] 지명은 번역이 아니라 로마자로 — 고유명사 로마자 처리하기 앱을 영어로 내보내면서 UI 문구는 번역으로 해결했습니다. 그런데 곧 번역으로는 안 되는 게 나타났습니다. 바로 지명입니다. "다대포해변"을 뜻으로 번역하면 어떻게 될까요? 억지로 옮기면 이상한 영어가 됩니다. 고유명사는 번역 대상이 아니라 로마자 표기 대상이기 때문입니다. 이 글에서는 한국 서핑 스팟 38곳과 기상청 파고 부이 13곳을 국립국어원 표기법으로 로마자화한 과정을 정리합니다.이 글은 React Native 국제화기 시리즈의 2편입니다. 1편에서 번역 누락의 함정을 다뤘고, 이번 편은 고유명사 처리를, 다음 편은 데이터베이스에 저장된 콘텐츠의 다국어를 다룹니다.원칙 — 번역과 로마자는 다르다국제화를 하다 보면 모든 한글을 "번역"하려는 관성이 생깁니다. 그런데 이름에는 두 종류가 있습니다. 뜻.. 2026. 7. 24. [Frontend] 번역률 100%인데 왜 한글이 남을까 — 자동 검증이 못 잡는 i18n 누락 3종 서핑 예보 앱을 영어로도 내보내려고 국제화(i18n)를 붙였습니다. 번역 키 사전을 검증해보니 미번역 0개, 한국어와 영어 키가 완전히 일치했습니다. 그런데 앱을 영어로 바꾸자, 여전히 곳곳에 한글이 남아 있었습니다. 키는 다 번역했는데 왜 한글이 나올까요? 이 글에서는 번역률 100%라는 착각 뒤에 숨어 있던 세 가지 누락과, 그걸 조용히 덮어버린 폴백 설정의 함정을 정리합니다.이 글은 React Native 국제화기 시리즈의 1편입니다. 다음 편들에서는 지명 같은 고유명사 처리와, 데이터베이스에 저장된 콘텐츠의 다국어를 다룰 예정입니다.왜 영어가 필요했나서핑 앱을 만들면서 처음엔 한국 스팟만 다뤘습니다. 그런데 발리 같은 해외 스팟까지 넣게 되면서, 자연스럽게 "한국어만으로는 부족하다"는 문제에 부딪.. 2026. 7. 22. [DevOps] "업데이트하세요" 팝업을 앱에 직접 붙이기 — 스토어 심사 없이 버전 제어하기 앱을 운영하다 보면 "옛날 버전을 쓰는 사용자"가 골칫거리가 됩니다. 서버 API를 바꿨는데 구버전 앱이 그걸 못 따라오거나, 심각한 버그가 있는 버전을 계속 쓰는 사용자가 있으면 문제가 커집니다. 그래서 앱에 버전 게이트를 붙였습니다. 앱이 켜질 때 버전을 확인해서, 필요하면 "업데이트하세요" 안내나 강제 업데이트 화면을 띄우는 장치입니다. 이 글에서는 스토어 심사 없이 서버로 버전을 제어하는 이 게이트를 어떻게 만들었는지 정리합니다. 코드 기교보다는, 출시한 앱을 안정적으로 운영하기 위한 전략에 가까운 이야기입니다.왜 버전 게이트가 필요했나모바일 앱은 웹과 다릅니다. 웹은 새로고침하면 최신 코드가 로드되지만, 앱은 사용자가 직접 스토어에서 업데이트하지 않으면 옛날 버전이 그대로 남습니다. 문제는 여기.. 2026. 7. 22. [Troubleshooting] 재배포했더니 이미 보낸 푸시가 또 갔다 — FCM 알림 중복 발송 잡기 위험 알림 푸시를 만들면서 예상 못 한 문제를 만났습니다. 서버를 재배포할 때마다, 이미 보냈던 알림이 사용자에게 또 가는 것이었습니다. 알림이 중복으로 오면 사용자는 앱을 스팸으로 느끼고, 심하면 알림을 꺼버립니다. 이 글에서는 "위험이 시작되는 순간에만" 알림을 보내려다 만난 세 가지 함정과, 그걸 어떻게 해결했는지를 정리합니다. 푸시 알림의 중복 발송이나 상태 기반 알림 설계로 고민하는 분께 도움이 될 만합니다.배경 — "전환되는 순간에만" 알리고 싶었다서비스에는 특정 지역의 바다가 위험 상태가 되면 사용자에게 배너 푸시를 보내는 기능이 있습니다. 위험이 감지되면 알림을 주는 건데, 여기엔 중요한 설계 원칙이 있었습니다. 위험이 "시작되는 순간"에만 알린다는 것입니다.이게 왜 중요하냐면, 위험이 지.. 2026. 7. 17. 발리 C1 비자 온라인 직접 발급 후기 — 장기체류 (서류·비용·소요기간) 인도네시아 이민국 시스템이 개편되면서 전용 e-Visa 사이트를 통해 개인이 직접 C1 비자를 신청하고 발급받을 수 있게 되었습니다. 대행사를 통하면 수십만 원의 불필요한 수수료가 발생하기 때문에, 비용을 아끼고 프로세스를 명확히 이해하고자 대행 없이 100% 셀프로 직접 발급받는 분들이 늘고 있습니다.온갖 시스템 오류와 지연을 겪으며 직접 발급에 성공한 경험을 바탕으로, 발리 C1 비자 온라인 직접 발급 절차와 서류 규격, 비용, 소요기간 단축 치트키까지 단 하나도 빠짐없이 총정리해 드립니다.⚠️ [중요 안내 — 신청 전 필독]본 글은 2026년 상반기 직접 대행 없이 신청하여 승인받은 경험을 바탕으로 작성되었으나, 실제 신청 단계에서는 반드시 이민국 공식 웹사이트의 최신 안내 문서를 교차 확인하시기 .. 2026. 7. 6. 이전 1 2 3 4 ··· 9 다음