SDK 3.x 마이그레이션
SDK 3.x는 WebView 프로젝트의 구조를 개선한 업데이트예요.
설정 파일 이름과 일부 프로퍼티가 변경되며, 기능 인터페이스는 2.x.x와 100% 동일해요.
변경 사항 요약
| 항목 | 변경 전 | 변경 후 |
|---|---|---|
| 설정 파일 이름 | granite.config.ts | apps-in-toss.config.ts |
brand 설정 | displayName, primaryColor, icon 포함 | primaryColor만 유지 |
webViewProps | type 프로퍼티 포함 | webView로 이름 변경, type 삭제 |
outdir | outdir | webBundleDir |
web 설정 | 설정 파일 내 web.commands 포함 | 삭제 후 package.json으로 이동 |
패키지 업데이트
먼저 @apps-in-toss/web-framework를 3.x 버전으로 업데이트해요.@beta 태그는 현재 3.0을 가리켜요.
npm install @apps-in-toss/web-framework@betayarn add @apps-in-toss/web-framework@betapnpm add @apps-in-toss/web-framework@betaTDS(Toss Design System)를 사용하는 경우, 아래 2가지를 2.4.1 버전으로 업데이트해 주세요.
@toss/tds-mobile@toss/tds-mobile-ait
npm install @toss/tds-mobile@2.4.1 @toss/tds-mobile-ait@2.4.1yarn add @toss/tds-mobile@2.4.1 @toss/tds-mobile-ait@2.4.1pnpm add @toss/tds-mobile@2.4.1 @toss/tds-mobile-ait@2.4.1자동 마이그레이션
아래 명령어를 실행하면 설정 파일 변환과 package.json 스크립트 업데이트가 자동으로 처리돼요.
npx ait migrate v3yarn ait migrate v3pnpm ait migrate v3실행 후 apps-in-toss.config.ts 파일이 생성되고, package.json의 dev, build 스크립트가 업데이트돼요.
마이그레이션이 완료되면 빌드 후 앱인토스 콘솔에 번들을 업로드해서 토스앱에서 테스트해 주세요.
자동 마이그레이션이 실패한 경우
apps-in-toss.config.ts가 생성되지 않거나 값이 올바르지 않으면 아래 수동 마이그레이션을 따르세요.
수동 마이그레이션
1. 설정 파일 이름 변경
granite.config.ts 파일 이름을 apps-in-toss.config.ts로 변경하세요.
2. brand 설정 정리
brand 설정에서 primaryColor를 제외한 나머지 프로퍼티를 삭제하세요.
// 변경 전
brand: {
displayName: '앱 이름',
primaryColor: '#3182F6',
icon: 'https://...',
},
// 변경 후
brand: {
primaryColor: '#3182F6',
},3. webViewProps → webView로 변경
webViewProps의 이름을 webView로 바꾸고, type 프로퍼티를 삭제하세요.
// 변경 전
webViewProps: {
type: 'partner',
},
// 변경 후
webView: {},4. outdir → webBundleDir로 변경
// 변경 전
outdir: 'dist',
// 변경 후
webBundleDir: 'dist',5. web 설정 삭제 후 package.json으로 이동
web 설정 블록을 삭제하고, web.commands에 있던 커맨드를 package.json으로 옮기세요.
web.commands.dev→package.json의dev스크립트에 그대로 옮겨요.web.commands.build→package.json의build스크립트에 옮기되,ait build를 함께 실행하도록 추가해요.
// package.json 변경 예시
{
"scripts": {
"dev": "vite --port 3000",
"build": "vite build && ait build"
}
}변경 전후 예시
변경 전(granite.config.ts)
import { defineConfig } from '@apps-in-toss/web-framework/config';
export default defineConfig({
appName: 'my-app',
brand: {
displayName: '내 앱',
primaryColor: '#3182F6',
icon: 'https://...',
},
web: {
host: 'localhost',
port: 3000,
commands: {
dev: 'vite --port 3000',
build: 'vite build',
},
},
webViewProps: {
type: 'partner',
},
permissions: [],
outdir: 'dist',
});변경 후(apps-in-toss.config.ts)
import { defineConfig } from '@apps-in-toss/web-framework/config';
export default defineConfig({
appName: 'my-app',
brand: {
primaryColor: '#3182F6',
},
webView: {},
permissions: [],
webBundleDir: 'dist',
});유의사항
1. SDK 3.x 출시 후 롤백이 안돼요
SDK 3.x 이상이 적용된 앱 번들을 출시하면 SDK 2.x 버전으로 롤백할 수 없어요.
QR코드로 충분히 테스트한 후 출시해 주세요.
2. CORS가 변경돼요
SDK 3.x 버전부터는 CORS(Cross-Origin Resource Sharing)가 아래와 같이 변경돼요.
Origin 허용 목록에 다음 도메인을 등록하지 않으면 API 요청이 차단될 수 있어요. Origin 허용 목록에 다음 도메인을 등록하세요.
https://<appName>.web.tossmini.com: 실제 서비스 환경https://<appName>.private-web.tossmini.com: 콘솔 QR 테스트 환경
마이그레이션 체크리스트
-
granite.config.ts를apps-in-toss.config.ts로 이름 변경했어요 -
brand에서primaryColor만 남기고 나머지를 삭제했어요 -
webViewProps를webView로 변경하고type을 삭제했어요 -
outdir을webBundleDir로 변경했어요 -
web설정을 삭제하고 커맨드를package.json으로 옮겼어요 -
build스크립트에ait build가 포함되어 있어요 - 빌드가 정상 동작해요
- 앱인토스 콘솔에 번들을 업로드했어요
- 토스앱에서 테스트를 완료했어요
문의
마이그레이션 관련 문의는 채널톡 또는 커뮤니티를 통해 문의해 주세요.

