실록⑦: 멈춰 있던 iOS 앱을 AI로 되살리다

AI 도입 사례

같은 서비스의 iOS 앱은 회원의 다수를 차지하는 주 전장이었습니다. 그럼에도 알림은 Android 이상으로 조용히 침묵하고 있었습니다 — 구세대 알림 경로가 완전히 끊겨 있었던 것입니다. 실록⑥(Android 편)에 이어 이번에는 iOS 특유의 막히는 지점과, 두 OS에 공통되는 “낡은 서버를 건드리지 않고 알림을 현대화한” 이야기를 정리합니다.

이용자가 많은 플랫폼일수록 알림의 침묵은 조용히 손실을 넓힙니다.
“알아챌 수 없는 장애”야말로 가장 먼저 없앨 가치가 있습니다.

이용자의 대부분이 iOS. 그 iOS에서 알림은 죽어 있었습니다.

iOS 앱도 Android와 마찬가지로 네이티브 껍데기로 기존 웹 서비스를 표시하는 WebView 래퍼+알림이라는 구성이었습니다. 알림 발송은 구세대 구조에 의존하고 있었고, 그 경로를 쓸 수 없게 된 시점에 배포가 정지됐습니다. 이용자의 다수가 이쪽에 있기 때문에 영향 범위는 최대였습니다. 이곳을 현대의 배포 기반으로 옮기는 것이 이번의 가장 큰 리턴입니다.

약 10,800iOS 단말(전체의 다수)
약 14,000등록 단말(전체)
0원서버 교체 비용

iOS의 막힘은 “실기에서만 나오는” 것들뿐이었습니다.

iOS는 가상 단말이나 코드 리뷰로는 알 수 없는, 실기에서 비로소 표면화되는 문제가 중심이었습니다.

구세대 알림 경로가 완전히 끊겨 있었다통신 경로낡은 알림 방식은 제공이 끝나 보낼 수단이 없는 상태였습니다. 현행 배포 기반(FCM)을 축으로 Apple 쪽 인증 키를 새 방식으로 다시 등록해 복구했습니다.
WebView 안의 일본어가 “두부”가 된다애플리케이션기본 폰트 설정의 궁합 때문에 일본어가 □의 나열로 깨지는 실기 고유의 증상입니다. 라틴 문자는 기존 모습을 유지하면서 일본어만 확실히 표시되는 폰트 지정을 주입해 해소했습니다.
OS 세대 차이로 알림 배지나 웹 표시의 작법이 다르다애플리케이션새로운 iOS에서는 배지 갱신이나 WebView 허용 설정의 작성 방식이 바뀌어 있습니다. 세대별로 분기시켜 낡은 단말에서도 새 단말에서도 같은 경험이 되도록 조정했습니다.
검증용 접속만 보안 설정에 막힌다통신 경로iOS는 평문 접속을 기본적으로 금지합니다. 운영은 암호화 통신만 유지한 채 검증 환경에 한정한 예외만 두고, 릴리스판에서는 예외를 빼 안전한 쪽으로 되돌렸습니다.

껍데기는 Swift로 다시 만들고, 내용과 회원은 그대로.

iOS 앱은 AI 에이전트로 최신 네이티브 구성(Swift+WKWebView+현행 알림 기반)으로 다시 만들었습니다. 프로젝트 뼈대 생성부터 실기 확인까지 돌리며 Mac의 실기 빌드로 동작을 확인했습니다. 표시하고 있는 내용(기존 웹 서비스)과 약 14,000대의 등록 단말이라는 회원 자산은 그대로 이어받았습니다.

항목이전재구축 후
알림 경로구세대 알림 방식
(서비스 종료·발송 불가)
현행 배포 기반+새 방식의 인증 키
앱 껍데기세대가 오래된 네이티브 구현Swift+WKWebView로 재생성
화면(내용)기존 웹 서비스를 표시그대로 유지(회원 자산 보존)
실기의 결함일본어 깨짐 등폰트·배지·세대 차이를 개별 대응

낡은 서버는 교체하지 않고 현대화했습니다.

두 OS에 공통되는 핵심은 발송 쪽 서버였습니다. 이 서버는 매우 낡은 실행 환경에서 돌아가고 있어 현행 공식 도구를 그대로 쓸 수 없습니다. 그래서 인증에 필요한 서명 처리를 자체 구현해 현행 배포 기반에 연결했습니다. 서버를 통째로 교체하지 않고 알림만 현대의 방식으로 옮겨 실었습니다.

또한 발송 쪽은 공유 기반에서 분리한 독립된 배포 서비스로 다시 만들어, 관리 화면에서 대상을 골라 보낼 수 있도록 했습니다.

14,000대에 일제 발송하기 전에, 먼저 1대.알림은 되돌릴 수 없습니다. 그래서 “허가한 단말에만 보낼 수 있는” 안전장치를 먼저 넣고, 테스트 중에는 자기 단말 1대에만 도착하는 상태에서 시작했습니다. 전 단말 발송은 경로와 문면을 실기에서 다 확인한 뒤에 해제한다 — 오발송 위험을 설계로 없앤다는 것을 최우선으로 하고 있습니다.

“돌아가지 않는다”는 소리를 듣던 모바일 앱이라도 껍데기를 다시 만들고, 키와 회원 자산을 이어받고, 낡은 서버를 현대화하면 재구축은 단 한 번으로 현행 운용에 되돌릴 수 있습니다. 손댈 수 없다고 포기한 앱이 있다면 먼저 실물 분석부터 상담해 주세요.

※ 본 기사는 실제 프로젝트를 바탕으로 기업·서비스를 특정할 수 없는 범위에서 일반화해 기술했습니다. 수치는 2026년 8월 시점의 실측에 근거한 개략값입니다. 소요 기간·작업 내용은 앱의 구성에 따라 다릅니다.

카테고리:

태그:

🌐 한국어