본문 바로가기
개발 일지/오늘의 작업 기록

1인 개발자의 일일 개발 노트 - 2026.07.23(목)

by 가리봉맨 2026. 7. 24.
목차
어제 퇴근 직전에 발행한다는 걸 깜빡하고 그냥 퇴근했다. 그래서 어제 업무일지의 발행일이 오늘(7/24금)이다.

 

들어가는 말

오전에 집 근처 백화점에 가서 4인용 식탁을 샀다. 점심까지 먹고 느지막이 사무실로 출근했다. 점점 개발 노트가 아닌 개인 일기장이 되는 것 같지만 당분간 이대로 간다. 넓게 보면 모두 업무의 연장이다.

 

토스 미니앱 개발

Android 실기기 테스트 환경 구축

지금까지 AOS는 시뮬레이터로 버텼는데 더는 안 되겠다 싶어서 중고 Android 기기를 구매했다.

AOS 테스트 기기 - 갤럭시S21

샌드박스 앱은 아래 '앱인토스 개발자센터' 페이지에서 다운로드 받을 수 있다. 참고로 iOS는 시뮬레이터와 실기기 설치 파일이 따로 있는데, Android는 동일한 파일(APK) 하나만 제공된다. 

https://developers-apps-in-toss.toss.im/development/test/sandbox.html#android%E1%84%8B%E1%85%A6-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5%E1%84%92%E1%85%A1%E1%84%80%E1%85%B5

 

앱인토스 개발자센터

Are you an LLM? You can read better optimized documentation at /development/test/sandbox.md for this page in Markdown format 앱인토스는 개발용 토스앱을 별도로 제공하지 않아요. 대신 전용 샌드박스 앱을 통해 개발·테스트

developers-apps-in-toss.toss.im

샌드박스 앱을 Android 실기기에서 설치하고 나서, 로컬 개발 서버를 테스트하기 위해 먼저 adb reverse를 설정했다.

adb reverse tcp:8081 tcp:8081
adb reverse tcp:5173 tcp:5173

이 명령은 Android 기기의 localhost:8081, localhost:5173으로 들어오는 요청을 Mac에서 실행 중인 개발 서버의 같은 포트로 전달한다. 8081은 Metro, 5173은 Vite 개발 서버 포트다. 이후 npm run dev:sandbox로 샌드박스용 개발 서버를 실행했고, Android 실기기의 샌드박스 앱에서 개발 중인 앱이 정상 동작하는 것을 확인했다.

드디어 AOS도 실기기에서 테스트할 수 있는 환경이 갖춰졌다. 이제 나만 열심히 하면 된다.

 

토스 미니앱 - 템플릿 프로젝트

앞의 Android 실기기 테스트에서 이어지는 작업이다. '독서 잔디밭'과 템플릿 프로젝트의 package.json 파일에 아래 스크립트를 추가해서 'npm run dev:sandbox:aos' 명령어 한 줄만 실행하면 Android 기기 테스트가 가능하도록 했다.

"dev:sandbox:aos": "adb devices && adb reverse tcp:8081 tcp:8081 && adb reverse tcp:5173 tcp:5173 && adb reverse --list && npm run dev:sandbox"

 

이 정도로 마무리할까 하다가 살짝 욕심이 나서 추가로 iOS/AOS 범용 스크립트까지 만들었다. 이 스크립트의 동작은 대략 다음과 같다. 기존 dev:sandbox:ios 스크립트의 핵심인 "AIT_DEV_HOST=$(ipconfig getifaddr en0)"를 세팅함으로써 iOS 실기기를 대응하고, adb가 있고 Android 기기가 device 상태면 adb reverse 설정함으로써 동시에 AOS 실기기까지 대응하는 것이다. 그리고 마지막에 공통으로 npm run dev:sandbox 실행한다. 스크립트 이름은 "npm run dev:sandbox:device"로 정했다. 전체 코드는 아래와 같다.

#!/usr/bin/env bash
set -euo pipefail

export AIT_DEV_HOST="${AIT_DEV_HOST:-$(ipconfig getifaddr en0)}"

if command -v adb >/dev/null 2>&1; then
  if adb devices | awk 'NR > 1 && $2 == "device" { found = 1 } END { exit found ? 0 : 1 }'; then
    adb reverse tcp:8081 tcp:8081
    adb reverse tcp:5173 tcp:5173
    adb reverse --list
  else
    echo "No authorized Android device found; skipping adb reverse."
  fi
else
  echo "adb not found; skipping Android reverse setup."
fi

npm run dev:sandbox

package.json 파일에는 아래 한 줄을 추가했다.

"dev:sandbox:device": "bash scripts/dev-sandbox-device.sh"

PR 링크(private 저장소): https://github.com/Hamjoon/toss-templates/pull/11

npm rundev:sandbox:aos 스크립트 정상 동작 확인

'독서 잔디밭' 외에 나머지 서비스 중인 일곱 개 앱에도 일괄 적용했다.

앞으로 템플릿 프로젝트 기반으로 생성될 앱은 기본적으로 이 설정(iOS, AOS 실기기 테스트 스크립트)이 들어가게 된다. 간단한 작업이긴 하지만 좀 번거로운 반복 작업을 했는데, 광고 같은 덩치가 좀 있는 것들은 별도 shared package / common package로 빼서 npm에 배포하는 방식이 나을 듯하다.

 

마무리

오늘은 이 정도로 마무리.

반응형
사업자 정보 표시
가리봉랩스(Garibong Labs) | 함동기 | 경기도 성남시 분당구 돌마로 68, 7층 705호 A106 | 사업자 등록번호 : 604-05-36402 | TEL : 010-4894-4522 | Mail : contact@garibong.dev | 통신판매신고번호 : 2026-용인수지-0037호 | 사이버몰의 이용약관 바로가기