시작하기

첫 프로그램

토파즈 설치부터 스크립트 검사 및 실행, 정적 진단 확인 후 타입 불일치를 수정하는 과정을 다룹니다.

학습 결과: .tpz 파일을 생성하고 실행 전 검사를 진행합니다. 검사기가 안내한 소스 코드 위치를 확인하여 오류를 수정합니다.

선행 학습: 학습 경로에서 시작 단계를 선택하세요. 아래 명령어를 실행하려면 로컬 터미널 환경이 필요합니다.

명령 설치하기

macOS 또는 Linux:

BASH
curl -fsSL https://topaz.ooo/install.sh | sh

Windows PowerShell:

POWERSHELL
irm https://topaz.ooo/install.ps1 | iex

Node가 이미 설치되어 있다면:

BASH
npm install -g topaz-lang

설치된 제품을 확인하세요.

BASH
topaz version
출력
Topaz 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 파일을 생성하고 아래 내용을 정확히 작성하세요.

TOPAZ
let 주제 = "Topaz basics"
let: int = 25
print("{주제}: {} minutes")

먼저 소스 코드를 검사한 뒤 실행합니다.

BASH
topaz check first-program.tpz
topaz run first-program.tpz

check는 파일을 실행하지 않고 검사 결과만 보여 줍니다.

출력
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")

다음 명령을 실행하세요.

BASH
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은 동일한 정적 검사를 완료한 뒤 실제 동작까지 실행합니다. 별도로 제공되는 checkrun에 없는 추가 검사를 수행하는 명령이 아니라, 실행을 생략하고 빠르게 검증하는 단계입니다.

직접 해보기

주제"Functions"로, 30으로 변경하세요. 어떤 결과가 나올까요?

정답 보기

Functions: 30 minutes가 출력됩니다. 변경된 값 역시 추론된 string 타입과 선언된 int 타입을 각각 지킵니다. 따라서 실행 전에 topaz check first-program.tpz를 수행해도 검사를 통과합니다.

다음 단계로 넘어갈 준비

.tpz 파일을 생성하고 topaz checktopaz run을 실행할 수 있어야 합니다. expected/found 타입 및 표시된 소스 코드 위치를 확인하여 잘못된 값을 수정할 수 있다면 다음 단계로 진행할 준비가 되었습니다.

값과 함수 문서로 계속하세요. 요약된 문법 표기가 필요할 때는 문법 한눈에 보기를 참고하세요.