본문으로 건너뛰기

샌드박스 앱 이해하기

sandbox_thumbnail

🔔 최신화 일자: 2025-11-04

개요

nachocode 샌드박스 앱 빌드는 프로덕션(운영) 배포 목적의 빌드가 아닌, 개발과 테스트를 위한 별도 앱 빌드입니다. 실제 유저에게 배포되는 프로덕션 앱과 빌드 타입은 출시용(Release)으로 같지만, 개발자들이 안전하게 테스트하고 디버깅할 수 있도록 추가 기능이 제공됩니다.


안드로이드와 iOS 빌드 타입

안드로이드와 iOS는 목적에 따라 빌드 타입을 설정할 수 있으며 종류는 아래와 같습니다.

안드로이드 빌드 타입

1. Debug 빌드
  • 목적: 개발 및 테스트용
  • 특징:
    • 디버깅 정보 포함으로 앱 크기 증가
    • 코드 난독화 없어 보안 취약
    • 개발자 서명으로 자동 서명 (임시)
    • 최적화되지 않은 성능
    • 로그 출력으로 인한 성능 저하
2. Release 빌드 (nachocode 제공)
  • 목적: 스토어 배포용 최종 버전
  • 특징:
    • 코드 최적화 및 난독화로 보안 강화
    • 디버깅 정보 제거로 앱 크기 최소화
    • 배포용 키스토어로 정식 서명
    • 최고 성능 최적화
    • 프로덕션 환경에 적합

iOS 빌드 타입

1. Development
  • 목적: 개발 및 초기 테스트용
  • 특징:
    • 디버깅 심볼 포함으로 앱 크기 증가
    • 최적화 비활성화로 성능 저하
    • 개발자 인증서 (임시)
    • 등록된 디바이스에서만 실행 가능
2. Ad Hoc
  • 목적: 내부 테스트용
  • 특징:
    • 특정 디바이스 UDID에 종속
    • 최대 100개 디바이스 제한
    • 관리 복잡성 증가
    • 배포 범위 제한적
3. App Store (nachocode 제공)
  • 목적: App Store 배포용 최종 버전

  • 특징:

    • 완전한 코드 최적화
    • Apple 보안 검증 통과
    • 전체 사용자 대상 배포 가능
    • 최고 품질 보장
나쵸코드 앱 빌드 정책

나쵸코드는 출시 앱과 샌드박스 앱 모두 출시용으로 빌드하여 제공하고 있으며 이는 안드로이드의 Release, iOS의 App Store에 해당합니다.

샌드박스 앱 빌드를 활용하여 출시 앱과 동일한 설정으로 로컬 서버나 테스트 URL을 입력해 앱 동작을 검증할 수 있습니다.


샌드박스 앱의 필요성

웹뷰에서 동작하는 웹 클라이언트와 브라우저에서 동작하는 웹 클라이언트의 동작은 동일한 부분도 많지만 다음과 같이 상이한 부분도 존재합니다.

  • User Agent 차이: 앱 내 웹뷰는 고유한 User Agent를 가짐
  • 터치 이벤트 처리: 모바일 터치 이벤트의 동작 방식
  • 웹 표준 지원 범위 차이: 최신 웹 표준 지원이 OS 버전에 따라 편차가 큼
  • 렌더링·CSS 차이: 엔진에 의해 자동 스타일이 개입될 수 있어 조정이 필요할 수 있음
  • 네이티브 API 연동: 푸시 알림, 카메라, 위치 정보 등

즉, 똑같은 HTML, CSS, JavaScript 코드여도 앱 안에서의 웹 동작 차이가 발생하거나, 네이티브 동작에 대한 디버깅이 필요할 수 있습니다.
나쵸코드에서는 보안 정책으로 출시용 앱에서는 웹 인스펙터를 비활성화하기 때문에 샌드박스 앱에서만 이러한 디버깅이 가능합니다.


샌드박스 앱의 장점

샌드박스 앱은 앱 디버깅을 위해 필요한 설정이 포함된 앱으로 다음과 같은 편의성을 제공합니다.

1. 실제 앱 환경에서 디버깅 가능

나쵸코드의 보안 정책으로 인해 출시 앱에서는 웹 인스펙터가 비활성화됩니다. 하지만 샌드박스 앱에서는 웹 인스펙터가 활성화 되어있어 실제 앱과 동일한 환경에서 Chrome DevToolsSafari Web Inspector를 통한 웹 및 앱 디버깅이 가능해졌습니다.


2. HTTP 환경 테스트 지원

안드로이드 앱은 네트워크 보안 정책상 기본적으로 HTTPS 연결만 허용하지만, 샌드박스 앱에서는 SSL 설정이 되지 않은 로컬 개발 서버(http://192.168.0.2:3000)나 개발 서버(http://dev.example.com)에도 자유롭게 접근할 수 있어 개발 과정이 훨씬 편리해졌습니다.


3. 동적인 앱 메인 URL 설정 가능

샌드박스 앱의 메인 URL은 나쵸코드에서 제공하는 테스트 페이지로 설정됩니다. 따라서 제공된 테스트 페이지에서 동적으로 앱 URL을 변경하며 테스트할 수 있습니다.

sandbox-test-1

4. 실제 운영 앱과 동일한 설정 공유

샌드박스 앱은 운영 앱과 완전히 동일한 설정을 공유합니다.

  • 앱 아이콘 및 스플래시 이미지
  • 탭 바 디자인 및 색상 테마
  • 고급 앱 설정 및 개발자 설정
  • 네이티브 기능 연동 방식

이를 통해 실제 사용자가 경험할 환경에서 정확한 테스트가 가능합니다.

샌드박스 앱 관련 주의사항

인스펙터는 활성화 되어있으나 샌드박스 앱은 출시용으로 빌드돼 동일한 프로세스로 실기기에 설치하여 테스트를 진행합니다. 프로덕션 앱과 앱 세팅 정보를 공유하며, Google Play Console, Apple App Store Connect 대시보드를 똑같이 활용합니다. 이 점을 유의하여 반드시 출시 전 테스트 단계에서만 사용해야하며, 신규 버전 업데이트 배포 시 주의해야 합니다.


운영 앱과 구분되는 특징

운영 앱과의 혼동을 방지하기 위해 샌드박스 앱은 명확한 구분 표시를 제공합니다.


앱 아이콘 구분

  • 기본 앱 아이콘"SANDBOX" 라벨 오버레이 표시
  • 운영 앱과 시각적으로 명확하게 구분 가능
  • 홈 화면에서 한눈에 샌드박스 앱임을 확인할 수 있음
ios-sandbox-icon

설치 파일명 구분

다운로드 시 파일명으로 샌드박스 앱임을 명확히 구분할 수 있습니다.

  • Android
    • 형식: 앱이름(Sandbox)(버전).apk
    • ex. Nachocode Developer(Sandbox)(1.0.0).apk
  • iOS
    • 형식: 앱이름(Sandbox)(버전).ipa
    • ex. Nachocode Developer(Sandbox)(1.0.0).ipa

샌드박스 앱 빌드하기

샌드박스 앱 기능을 사용하고 싶다면 나쵸코드 대시보드에서 샌드박스 앱 빌드 기능을 활용하여 새로운 버전으로 빌드해야 합니다.

샌드박스 앱 빌드하기

나쵸코드 대시보드 > 앱 빌드 > 안드로이드/iOS 앱 빌드 > 샌드박스 앱 > 새 버전 만들기

➡️ 샌드박스 앱 빌드 유저 가이드 바로가기


자주 묻는 질문 (FAQ)

Q1. localhost로 접속이 안돼요.

  • 앱 환경에서의 localhost는 디바이스를 뜻합니다. 따라서 디바이스에서 웹 서버로 접속하기 위해서는 localhost127.0.0.1이 아닌 IP 주소 혹은 도메인을 사용하셔야 합니다.

Q2. 샌드박스 앱 설치에 실패해요.

  • 스토어에서 다운받은 출시앱이 설치된 상태이거나 설치된 앱보다 설치하려는 앱의 버전이 더 낮은 경우 설치에 실패할 수 있습니다. 기존에 설치된 앱을 삭제한 후 샌드박스 앱을 설치하셔야 합니다.