이번에 제 앱인토스 앱들을 토스 SDK 3.x 전환을 하며 실제로 해보고 느낀 것들을 공유해봅니다 🙋♂️
🚨 2026년 10월 5일까지 SDK 3.x 전환 안 하면, 콘솔에서 신규 등록 자체가 막힙니다. 서두르세요.
직접 마이그레이션해보며 놓치기 쉬웠던 포인트만 추립니다.
⚙️ 설정 파일은 손으로 고치지 마세요. npx ait migrate v3 한 번으로 config 변환, 빌드 스크립트 정리까지 끝납니다.
🎨 브랜드 아이콘/표시명이 코드에서 사라져요. 콘솔에서 별도 등록해야 합니다.
🌐 CORS Origin 허용 목록을 콘솔에 새로 등록해야 API 호출이 안 막힙니다.
💾 (가장 놓치기 쉬운 부분) SDK 3.0.0~3.1.0 구간은 Origin이 바뀌면서 기존 localStorage/IndexedDB 데이터가 끊길 수 있어요. 가능하면 3.1.1 이상으로 바로 올리세요. 꼭 거쳐야 한다면 Migration.getOriginStorage()로 이전 데이터를 옮겨야 합니다.
🔑 토스 로그인 / 💳 인앱결제도 구버전 함수(appLogin, checkoutPayment)는 deprecated → TossAuth.login, IAP.createOneTimePurchaseOrder로. 결제는 앱 시작 시 getPendingOrders()로 미지급 주문 체크 안 하면 "결제했는데 상품 못 받았다" CS 생깁니다.
📢 인앱 광고는 테스트 ID → 라이브 ID 전환을 환경 분기(env.PROD)로 처리하지 마세요. 빌드 과정에서 플래그가 안 잡혀 테스트 ID 그대로 심의 들어가는 사고, 실제로 겪었습니다.
🔔 푸시 동의도 구버전 함수 대신 Notification.requestAgreement로, 이미 동의/거절한 유저에겐 다시 안 띄우게 분기하세요.
⚠️ 배포 후엔 2.x로 롤백 불가. QR 테스트로 검증부터 하고 배포하세요.
🤖 AI에게는 이렇게 입력해 보세요.
"apps-in-toss SDK 2.x에서 3.x로 마이그레이션해줘. npx ait migrate v3로 자동 변환하고, Origin 변경으로 localStorage 데이터 유실 위험이 있는지 확인해줘. 토스 로그인/인앱결제/광고/푸시 동의를 쓰고 있다면 구버전 함수 사용 여부와 cleanup 함수 호출 여부까지 점검해줘. 배포 전엔 롤백 불가하다는 것도 알려줘."
🔗 joycestudios.kr/brand