학습 결과: .tpz 파일을 생성하고 실행 전 검사를 진행합니다. 검사기가 안내한 소스 코드 위치를 확인하여 오류를 수정합니다.
선행 학습: 학습 경로에서 시작 단계를 선택하세요. 아래 명령어를 실행하려면 로컬 터미널 환경이 필요합니다.
명령 설치하기
macOS 또는 Linux:
curl -fsSL https://topaz.ooo/install.sh | shWindows PowerShell:
irm https://topaz.ooo/install.ps1 | iexNode가 이미 설치되어 있다면:
npm install -g topaz-lang설치된 제품을 확인하세요.
topaz versionTopaz 5.19.0첫 프로그램을 작성할 때는 저장소 복제·패키지 매니페스트·Rust·Python이 필요하지 않습니다.
VS Code나 Open VSX 호환 편집기를 사용하는 경우 Visual Studio Marketplace 또는 Open VSX Registry에서 공식 토파즈 확장을 설치할 수 있습니다. 해당 확장은 .tpz 파일을 인식하여 토파즈 파일 아이콘과 구문 강조를 제공하고, 설치된 topaz lsp를 실행해 편집기 내에 진단 내역을 표시합니다. 확장 자체에는 컴파일러가 포함되어 있지 않으므로 설치된 토파즈를 PATH에서 찾을 수 있게 두거나 topaz.executablePath를 설정하세요. 터미널에서 topaz check를 직접 실행하는 방식도 동일하게 이용할 수 있습니다.
가장 작은 학습 계획 작성하기
first-program.tpz 파일을 생성하고 아래 내용을 정확히 작성하세요.
let 주제 = "Topaz basics"
let 분: int = 25
print("{주제}: {분} minutes")먼저 소스 코드를 검사한 뒤 실행합니다.
topaz check first-program.tpz
topaz run first-program.tpzcheck는 파일을 실행하지 않고 검사 결과만 보여 줍니다.
first-program.tpz: types-ok (1 module)
first-program.tpz: resolve-ok (1 module)run은 동일한 정적 검사를 통과한 뒤 다음과 같이 결과를 출력합니다.
Topaz basics: 25 minutes코드를 작성된 순서대로 읽어 봅시다. 첫 번째 let은 문자열에 이름을 바인딩하며 타입은 검증기가 추론합니다. 두 번째 줄에서는 int 타입을 명시하여 검증기가 25가 정수인지 확인하도록 합니다. print는 {...} 내부의 식을 평가해 한 줄로 출력합니다.
진단을 읽고 고치기
새 파일 first-program-error.tpz를 만드세요. 아래 소스 코드는 의도적으로 작성된 오류 예시입니다. 따라서 실행 가능한 토파즈 예제가 아닌 일반 텍스트로 표시합니다.
let 주제 = "Topaz basics"
let 분: int = "25"
print("{주제}: {분} minutes")다음 명령을 실행하세요.
topaz check first-program-error.tpz검사기는 프로그램을 실행하지 않고, 선언된 타입과 실제로 확인된 타입을 보여 줍니다. 문제가 발생한 소스 코드 위치도 정확히 지정해 줍니다.
error[TPZ5001]: expected `int`, found `string`
--> first-program-error.tpz:2:14
|
2 | let 분: int = "25"
| ^^^^
first-program-error.tpz: 1 type diagnostic진단에 표시된 "25"를 25로 변경하세요. 이제 topaz check first-program-error.tpz 실행 시 검사를 통과합니다. topaz run first-program-error.tpz는 앞서 작성한 정상 프로그램과 동일한 한 줄을 출력합니다.
선택: check인가, run인가?
코드를 수정하는 동안에는 topaz check를 사용하세요. 프로그램을 실행하지 않고 “이 소스 코드가 올바른가?”만 빠르게 확인합니다. topaz run은 동일한 정적 검사를 완료한 뒤 실제 동작까지 실행합니다. 별도로 제공되는 check는 run에 없는 추가 검사를 수행하는 명령이 아니라, 실행을 생략하고 빠르게 검증하는 단계입니다.
직접 해보기
주제를 "Functions"로, 분을 30으로 변경하세요. 어떤 결과가 나올까요?
정답 보기
Functions: 30 minutes가 출력됩니다. 변경된 값 역시 추론된 string 타입과 선언된 int 타입을 각각 지킵니다. 따라서 실행 전에 topaz check first-program.tpz를 수행해도 검사를 통과합니다.
다음 단계로 넘어갈 준비
.tpz 파일을 생성하고 topaz check와 topaz run을 실행할 수 있어야 합니다. expected/found 타입 및 표시된 소스 코드 위치를 확인하여 잘못된 값을 수정할 수 있다면 다음 단계로 진행할 준비가 되었습니다.