오늘의 운세 앱을 영어, 일본어, 중국어로 넓히는 작업을 아침 8시 17분에 시작해서 오후 3시 9분에 마쳤습니다. 운세 문구 번역은 그중 8분이었고, 나머지 시간은 대부분 번역된 앱이 실제 화면과 위젯, 알림에서 제대로 나오는지 확인하는 데 들어갔습니다. 코드는 이번에도 제가 손대지 않고 전부 클로드 코드가 작업했습니다.

구글 플레이 조직 계정에 필요한 DUNS 번호 회신을 아직 기다리는 중이라 출시를 못 하고 있어서, 그동안 첫 앱을 마무리하기로 했습니다. 아침에 클로드 코드한테 이렇게 말했습니다. "일단 앱1 완벽하게 마무리 하는걸로 목표로하자 영어 중국어 일본어 까지 적용 가능하게 해서 언어별 테스트까지 진행해보자 그래야 다른나라 사람들도 쓰니까." 저는 중국어라고만 했는데 클로드는 간체와 번체를 따로 만들었습니다. 구글 플레이가 중국 본토에서 정식 서비스되지 않으니 이 앱을 받을 중국어 사용자는 대만이나 홍콩 쪽일 거라는 판단이었고, 그렇게 해서 앱의 언어는 한국어, 영어, 일본어, 간체, 번체 다섯 개가 됐습니다.
번역할 운세 문구는 총운 100개, 금전·애정·건강·일 분야별 60개씩, 행운의 색 16개, 행운의 물건 12개로 모두 368개입니다. 클로드가 언어마다 에이전트를 하나씩 띄워 네 언어를 동시에 맡겼고, 8시 21분에 시작한 번역이 8시 29분에 모두 끝났습니다. 문구 순서를 언어끼리 똑같이 맞춰 두어서 같은 사람이 같은 날 폰 언어를 바꾸면 같은 운세가 그 언어로 나옵니다. 개수와 순서가 어긋난 곳이 없는지 검사한 결과는 0건이었지만, 원어민이 읽어 본 번역은 아직 아닙니다.

번역 다음은 글꼴이었습니다. 한자는 같은 문자 코드라도 일본과 중국 본토, 대만에서 모양이 조금씩 달라서 글꼴 하나로는 어느 나라에서든 어색한 글자가 생깁니다. 그래서 언어마다 고딕과 명조를 따로 넣되 앱에서 쓰는 글자만 남겼는데, 한국어 본문 글꼴 파일 하나가 6.19MB에서 약 0.49MB로 줄면서 언어를 네 개 더했는데도 스토어에 올릴 파일은 38.7MB에서 34.3MB로 작아졌습니다.
생년월일을 넣으면 띠를 보여 주는 앱이라 띠 기준도 손봐야 했습니다. 한국과 중국은 음력 설을 기준으로 띠가 바뀌고 일본은 양력 1월 1일을 기준으로 삼기 때문에, 클로드가 1930년부터 2050년까지의 음력 설 날짜표를 만들어 넣었습니다. 2001년 1월 1일을 예로 넣어 보면 한국어에서는 용띠, 일본어에서는 뱀띠에 해당하는 巳年이 나옵니다. 원래 양력으로 계산하던 한국어 판정도 이때 함께 고쳤습니다.

테스트는 자동 테스트와 에뮬레이터 캡처 두 가지로 진행했습니다. 자동 테스트는 다섯 언어마다 좁은 화면과 보통 화면, 기본 글자 크기와 큰 글자 크기를 조합해서 글자가 넘치는 곳을 찾는 방식인데, 화면 폭을 110dp까지 일부러 좁혀서 넘침을 정말 잡아내는지도 확인했습니다. 에뮬레이터에서는 언어마다 기기 설정을 바꾸고 홈, 분야별 운세, 설정, 달력, 시간 선택, 위젯, 알림을 캡처해서 한 장씩 봤습니다.
시간이 가장 많이 든 곳은 에뮬레이터였습니다. 에뮬레이터가 자꾸 꺼져서 클로드는 처음에 언어를 바꾸는 방식을 의심하고 재시작 방법을 바꿔 봤지만 해결되지 않았고, 9시 35분에 또 꺼졌을 때는 캡처 스크립트가 기기가 돌아오기만 기다리며 멈춰 버렸습니다. 12시 13분에 제가 "진행사항 보고"라고 물어본 뒤에야 클로드가 이 상태를 확인했는데, 한국어 캡처 12장이 전부 0바이트였고, 약 2시간 40분 동안 작업이 진행되지 않은 상태였습니다. 그 뒤 윈도우 이벤트 로그를 열어 보니 에뮬레이터가 NVIDIA 드라이버 파일 nvoglv64.dll에서 오류 코드 0xc0000409로 종료되고 있었습니다.

에뮬레이터의 그래픽 설정을 소프트웨어 방식으로 바꾸자 드라이버 오류는 사라졌지만, 낮 12시 이후에도 다른 오류 코드 0xc0000005로 8번 더 꺼졌습니다. 이 원인은 찾지 못해서, 언어별로 시간 제한을 걸고 꺼지면 다시 시도하며 빈 캡처는 실패로 처리하도록 스크립트를 고쳐 끝까지 돌렸습니다.
캡처를 보다가 번체 달력에서 버그도 하나 나왔습니다. 머리글에 대만과 홍콩에서 쓰는 週一 대신 간체 글자 周一가 나오고 있었는데, 이때 자동 테스트 79개와 코드 분석은 모두 통과한 상태였습니다. 앱이 쓰는 zh_Hant라는 이름으로는 플러터 달력의 날짜 데이터를 찾지 못해 중국어 기본값인 간체로 넘어간 것이 원인이었고, 달력에만 대만 지역을 지정해서 고친 뒤 테스트 2개를 추가했습니다.

시계를 다음 날 아침으로 옮겨 찍은 알림 화면에는 운세 알림이 보이지 않았습니다. 클로드는 출시 빌드에서만 생기는 문제일 수 있다고 보고 조사했는데, 앱 문제는 아니었습니다. 테스트 스크립트의 스와이프가 첫 실행에 뜨는 알림 권한 창을 닫아 버려서 권한이 꺼진 채 진행됐고, 권한을 켠 뒤에도 시계를 옮기고 몇 초 만에 캡처해서 알림이 오기 전에 찍었습니다. 이 앱의 알림은 배터리를 아끼는 방식이라 시스템이 다음에 깨어날 때 함께 울리는데, 기다려 보니 일본어는 약 10초, 간체는 90초, 번체는 약 470초, 한국어는 510초, 영어는 530초 뒤에 왔습니다. 실제 사용에서도 설정한 시간보다 최대 1시간까지 늦을 수 있어서 설정 화면과 스토어 설명에 조금 늦게 올 수 있다고 적어 두었습니다.

이 과정에서 앱의 결함도 하나 찾았습니다. 사용자가 알림 권한을 거절해도 설정의 알림 스위치가 켜진 채로 남아 있어서, 알림이 오지 않는 이유를 앱에서 알 수 없었습니다. 지금은 권한이 없으면 스위치가 꺼짐으로 표시되고, 휴대폰 설정 어디에서 허용하면 되는지 다섯 언어로 안내가 나옵니다.

프랑스어 기기에서는 영어로, 홍콩 기기에서는 번체로 나오는 것도 확인했고, 홈 화면으로 나간 상태에서 백그라운드 작업을 돌려 위젯이 다음 날 운세로 바뀌는 것도 확인했습니다. 위젯 미리보기와 스토어 스크린샷 25장, 기능 그래픽 5장도 언어별로 새로 만들었고, 최종 자동 테스트 81개는 모두 통과했습니다. 다만 모든 확인을 에뮬레이터에서 해서 실제 폰에서는 아직 돌려 보지 못했고, 앱을 열지 않은 채 폰 언어만 바꾸면 위젯과 알림은 앱을 열 때까지 이전 언어로 남습니다.
스토어 등록은 DUNS 번호가 나와야 시작할 수 있습니다. 그동안 2주차 앱을 고르고 있어서, 다음 글에서는 어떤 앱을 왜 골랐는지 쓰겠습니다.
'주간 앱 빌드로그' 카테고리의 다른 글
| AI로 앱 디자인, "너무 단순해" 한 마디로 운세 앱을 다섯 번 뒤집은 하루 (0) | 2026.10.29 |
|---|