빌드와 배포

아티팩트와 배포

배포할 파일을 찾고 복사한 제품을 실행하며, 출력 폴더가 변경됐을 때 복구합니다.

애플리케이션에 필요한 파일을 배포 환경으로 복사하고 토파즈 소스 패키지 없이 실행하세요. 복사할 폴더와 재빌드가 거부됐을 때의 복구 방법을 설명합니다.

네이티브 패키지 예제나 JavaScript 호출 예제를 먼저 준비하세요. 각 안내에 소스 파일과 필요한 빌드 도구가 있습니다.

출력 폴더 선택하기

파일 하나로 만든 main.tpz라면 배포 환경에 맞는 명령을 고르세요.

BASH
topaz build main.tpz --release --out-dir native-product
topaz build main.tpz --target web --out-dir web-product
topaz build main.tpz --target web-worker --out-dir worker-product
topaz build --root my-app --locked --release --out-dir package-product

앞의 세 명령은 각각 native-product, web-product, worker-product를 만듭니다. 마지막 명령은 기존 my-app 패키지를 package-product에 빌드합니다. topaz.toml의 [build].target을 읽고 --locked로 topaz.lock을 검사합니다.

--out-dir로 지정한 폴더 전체를 배포하세요. build가 이 배포 폴더를 만듭니다. 생성 소스를 검토하거나 다른 도구와 연동하려면 emit을 사용하세요. 컴파일러의 임시 파일은 배포용 제품이 아닙니다.

공통 파일 함께 보관하기

빌드에 성공하면 다음 파일을 함께 만듭니다.

출력
LICENSE
NOTICE
GENERATED-OUTPUT-NOTICE.txt
topaz-artifact.json

법적 고지 파일은 제품과 함께 보관하세요. topaz-artifact.json은 토파즈가 만들고 관리하는 파일을 나열한 매니페스트입니다. 각 파일의 경로·크기·해시·실행 권한 요건을 기록합니다. 출력 대상, 툴체인·언어 식별자, 실행 환경 요건, 빌드 명령도 들어 있습니다. 토파즈는 이 매니페스트를 마지막에 씁니다. topaz.lock은 이후 개발과 빌드에 쓰도록 소스 패키지에 보관하세요.

대상별 파일 찾기

네이티브 빌드는 다음 경로 중 하나에 실행 파일을 추가합니다.

출력
target/debug/program[.exe]
target/release/program[.exe]

기본 빌드는 debug, --release 빌드는 release 경로를 사용합니다. 각 빌드는 선택한 경로를 만듭니다. Windows의 파일 이름은 program.exe입니다.

Web 빌드는 JavaScript 모듈, 타입 선언, WASM 프로그램을 추가합니다.

출력
topaz-web.js
topaz-web.d.ts
topaz-web.wasm

Worker 빌드는 Web 파일에 요청과 응답을 전달하는 두 모듈을 더합니다.

출력
topaz-web-worker.js
topaz-web-worker-client.js

복사한 폴더에서 실행하기

네이티브 제품 전체를 새 위치로 복사하고 그 폴더에서 터미널을 여세요. 릴리스 빌드라면 다음 명령을 실행합니다.

BASH
./target/release/program

PowerShell에서는 .\target\release\program.exe를 실행하세요. 같은 입력을 주면 같은 출력이 나오는지 확인합니다. 학습 계획 예제는 tasks=2, remaining=25 minutes를 출력하고 코드 0으로 종료합니다. 실행 파일을 빌드한 대상 OS와 아키텍처에서 실행하세요.

네이티브 패키지 애플리케이션은 파일 접근을 허용한 루트 경로를 프로세스의 작업 폴더 기준으로 찾습니다. topaz.toml에 지정한 위치로 필요한 data/ 파일을 복사하고 쓰기 가능한 출력 폴더를 만드세요. 빌드는 패키지 데이터를 자동으로 복사하지 않습니다.

Web과 Worker 제품은 복사한 폴더를 HTTP로 제공하고 생성된 JavaScript 모듈을 가져오세요. 입력과 결과는 JavaScript 호출 예제에서 확인합니다. 브라우저는 이 로딩 방식을 file://에서 지원하지 않습니다.

출력 폴더가 거부됐을 때 복구하기

같은 폴더에 다시 빌드하기 전에 토파즈는 topaz-artifact.json에 나열된 파일을 검사합니다. 출력 대상 변경, 잘못된 매니페스트, 관리 파일 수정, 심볼릭 링크, 사용자 파일 경로와의 충돌을 거부합니다. 매니페스트에 없는 파일은 그대로 둡니다.

거부된 폴더는 조사할 수 있게 보관하고 비어 있는 새 --out-dir을 선택하세요. 빌드를 강제로 진행하려고 정체를 모르는 폴더를 지우지 마세요. 이전 제품으로 되돌릴 때는 정상으로 확인된 복사본 전체를 복원하세요. 해시를 고치거나 관리 파일을 하나씩 삭제하지 마세요.

관련 문서