클라리넷 v2.0.0 출시

Logan Lee
스택스 한국 블로그
4 min readNov 7, 2023

클래리티(Clarity) 스마트 컨트랙트 개발을 위한 CLI 패키지, 클라리넷 v2.0.0이 출시되었습니다. 클라리넷 SDK 출시에 이은 이번 v2.0.0 업데이트는 클라리넷을 통한 개발의 새로운 시대를 열게 될 것입니다. 이번 릴리즈에는 다음과 같은 여러 변경 사항이 포함되어 있습니다.

디노(Deno) 제거

클라리넷에서 자바스크립트 런타임 디노(Deno)가 공식적으로 제거됩니다. 클라리넷 스마트 컨트랙트에 대한 유닛 테스트를 자바스크립트 또는 타임스크립트로 진행하는 것은 매우 유용하지만, 이를 위해서는 JS 런타임에서 클라리넷 및 클래리티VM(ClarityVM)과 상호작용할 수 있어야 합니다.

클라리넷 툴과 디노 모두 러스트(Rust) 기반으로 작성되었기 때문에 자연스럽게 디노가 사용되고 있었지만, 디노는 클라리넷에 임베드하기 어렵고 업그레이드 및 유지 관리가 어려운 문제점이 있었습니다. 그 결과 디노 최신 기능 업데이트와 클라리넷의 싱크를 맞추기 어려운 경우가 자주 발생했고, 이는 결국 클라리넷 자체가 뒤쳐지는 문제[예: 러스트 컴파일 및 홈브류(Homevrew)에서 릴리즈 불가]를 야기했습니다.

따라서 히로는 웹어셈블리(WASM)를 지원하는 모든 자바스크립트 런타임에서 클라리넷을 실행할 수 있도록 개선하기로 했습니다. 이제 더 이상 클라리넷 자체에 런타임을 포함할 필요가 없습니다. 이를 통해 클라리넷을 더욱 쉽게 유지 관리할 수 있게 되었습니다.

이번 변경으로 인해 이전 clarinet testclarinet run을 실행할 수 없게 됩니다. 앞으로는 SDK에서 npm test를 대신 사용하게 됩니다. SDK에서 코드를 테스팅하는 방법은 이 문서를 통해 확인할 수 있습니다. 디노를 제거함으로써 바이너리 실행 파일의 크기가 작아져, 용량이 32MB에서 12MB로 감소하는 부가적인 효과도 거둘 수 있었습니다.

글로벌 구성 파일(Global Configuration File) 추가

이번 클라리넷 릴리즈에는 글로벌 구성 파일 ‘~/.clarinet/clarinetrc.toml’이 추가되었습니다. 향후 더 많은 구성 옵션들이 추가될 예정이지만, 먼저 2가지 구성 옵션을 소개해 드립니다:

enable_hints = true
enable_telemetry = true

hints 기능을 활성화하면 클라리넷이 몇 가지 팁을 표시합니다. telemetry 기능을 활성화하면 진단 및 사용 데이터를 히로에 자동으로 전송하여 클라리넷을 개선하는 데 도움을 주는 정보들을 전송할 수 있습니다. 사용자나 프로젝트를 식별하는 정보는 수집되지 않으니 안심하셔도 좋습니다.

코드 품질 개선

몇 가지 버그 수정을 포함한 클라리넷 코드 품질 개선이 진행되었습니다. 500개 이상의 린트(lint) 경고와 오류가 수정되었으며, 여러 종속성 업데이트도 진행되었습니다.

코딩 시작

이번 릴리즈를 통해 클라리넷은 자바스크립트 개발자에게 더욱 친숙하고 유지 관리가 쉬운 제품으로 변모하게 되었습니다. 올 가을에 예정된 더 많은 클라리넷 업데이트를 기대해주세요. 궁금한 점이 있으시다면 디스코드#clarinet channel을 통해 문의해 주시기 바랍니다.

--

--