글로벌 쇼핑 서비스 확장
대형 전자기업이 스마트폰 · TV · 가전을 직접 파는 글로벌 공식 쇼핑 앱을, 한쪽 플랫폼에서 이미 돌던 구현과 화면 흐름을 기준으로 다른 플랫폼에 빠르게 옮겼습니다. 이 앱은 웹 화면을 앱 틀 안에 띄우는 하이브리드 구조라, 같은 웹 페이지도 실행 환경마다 다르게 움직이고 문제가 웹 쪽인지 앱 쪽인지부터 가려야 했습니다. 앱 틀, 웹 화면 진입, 외부 링크, 앱 권한을 새 플랫폼에 맞게 구현하고, 직접 고치기 어려운 웹 화면은 앱에서 스크립트를 넣어 보완했습니다. 웹 팀과 이슈를 나눠 풀고, 앱 심사에서 받은 수정 요구를 반영해 배포했습니다.
웹으로 도는 쇼핑 서비스를 앱 틀에 담아 옮긴 하이브리드 앱
글로벌 쇼핑 앱은 웹으로 운영되는 쇼핑 서비스를 앱 틀 안에 띄우는 하이브리드 구조입니다. 고객은 이 앱에서 제품을 주문하고 회원 혜택을 받으며, 배송 상태를 실시간으로 조회하고 알림으로 받습니다. 다른 플랫폼 버전은 기존 앱의 구현과 화면 흐름을 기준으로 빠르게 옮겨 만들었습니다. 웹 화면을 담는 앱 틀, 웹 화면으로 들어가는 흐름, 외부 링크 처리, 앱 권한처럼 플랫폼마다 달라지는 부분을 정리해 배포할 수 있는 형태로 구현했습니다. 웹 콘텐츠를 불러올 때나 앱 기능과 웹의 경계에서 생기는 문제도 앱 틀 쪽에서 조정했습니다.

고치기 어려운 웹 화면을 앱에서 메운 스크립트 주입
글로벌 쇼핑 서비스의 웹 화면은 앱 개발 쪽에서 직접 고치기 어려운 영역이었습니다. 기획된 화면이나 예외 상황이 웹에서 처리되지 않을 때는 앱이 웹 화면에 스크립트를 넣어 코드 수준에서 보완했습니다. 페이지의 구성 상태와 불러오는 시점, 조건에 따라 보여야 하는 화면을 확인하면서 필요한 처리만 적용했습니다.

같은 페이지를 세 환경에서 비교해 나눈 수정 범위
하이브리드 쇼핑 앱의 웹 페이지는 모바일 브라우저, 이 앱 안의 웹 화면, 다른 플랫폼 앱의 웹 화면에서 동작이 갈릴 수 있습니다. 웹 팀과 함께 세 환경을 나란히 놓고 비교해, 문제가 웹 쪽인지 앱 틀 쪽인지부터 구분했습니다. 그다음 각 담당자가 고칠 범위를 나눠 맡는 방식으로 이슈를 풀었습니다.

예상하지 못한 심사 요구를 바로 반영한 배포
글로벌 쇼핑 앱의 배포 과정에서 앱 심사의 수정 요구를 받았고, 그중에는 앱 안의 기기 관련 이미지를 모두 빼라는 요구도 있었습니다. 피드백을 빠르게 반영하고, 재심사에 필요한 수정 범위를 정리했습니다. 기획, 웹, 앱, 검수, 심사가 단계별로 나뉜 환경이라, 요구가 바뀌거나 예외가 생길 때마다 빠르게 소통하고 고쳐야 배포가 흔들리지 않았습니다.

이 작업의 포인트
기존 구현과 화면 흐름을 기준으로 한 하이브리드 쇼핑 앱 이식
직접 고치기 어려운 웹 화면을 앱에서 넣은 스크립트로 보완
실행 환경별로 웹 · 앱 책임을 가른 이슈 해결과 심사 대응
인사이트
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



