온라인 REPL 도구 ‘클래리티 플레이그라운드’ 출시

Logan Lee
스택스 한국 블로그
4 min readJul 3, 2024

클래리티는 비트코인의 특성과 보안을 염두에 두고 개발된 많은 장점이 있는 스마트 컨트랙트 프로그래밍 언어입니다. 하지만 대부분의 개발자들에게 새로운 언어를 처음부터 배우는 것은 부담스러울 수 있습니다. 히로 역시 그 부담을 잘 이해하고 있습니다.

이 글의 작성자인 저(Hugo Caaillard, 현 히로 소프트웨어 엔지니어)는 2022년에 스택스 생태계와 클래리티 코딩에 관심을 갖게 되었습니다. 그 이후 간단한 코딩 튜토리얼을 작성하기 시작했는데, 클래리티 코드 스니펫(Clarity code snippets)을 공유하고 시연하는 과정 자체가 접근성이 다소 떨어진다는 점을 느꼈습니다. 클래리티 코드를 작성할 때는 더 많은 리소스가 필요했습니다.

개발자들은 가끔 복잡한 과정이 아닌, 단순히 탭을 열고 약간의 코드를 작성한 후 실행해보고 싶을 때가 있습니다. 이에 히로팀은 브라우저에서 클래리티 코드를 작성하고 실행할 수 있는 온라인 REPL(Read-Eval-Print Loop) 도구인 ‘클래리티 플레이그라운드’를 출시합니다. 온라인 REPL 환경은 새로운 언어를 배우거나 신규 아이디어를 테스트할 때 가장 유용한 도구 중 하나입니다. 플레이그라운드는 말 그대로 쉽게 코드를 실행하고 피드백을 받을 수 있는 놀이 공간이 될 것입니다.

클래리티 플레이그라운드

클래리티 플레이그라운드는 브라우저 환경에서 직접 클래리티 코드를 작성하고 실행해 볼 수 있는 유용한 도구입니다. 개발자들은 클래리티 플레이그라운드를 활용해 코드의 기본 개념을 테스트하고, 새로운 아이디어를 시도하고, 신규 언어를 편하게 학습할 수 있습니다.

뿐만 아니라 브라우저 환경에서 클래리티 스니펫 및 스마트 컨트랙트를 손쉽게 실행하고, 이를 다른 사람들과 공유할 수 있습니다. 이번 제품은 클래리티를 배우고자 하는 개발자들이 구문, 함수 및 다양한 모범 사례들을 빠르게 학습할 수 있도록 돕는 훌륭한 도구가 되어줄 것입니다.

클레리티 플레이그라운드는 브라우저 환경에서도 심넷(simnet)에 쉽게 접근할 수 있도록 합니다. 이로써 브라우저에서도 아래와 같은 작업이 가능합니다:

  • 심넷 환경에 컨트랙트 배포
  • 컨트랙트 호출 수행
  • 클라리넷(Clarinet) 명령어 실행
  • ‘print output’, ‘print event’ 와 같은 임의의 클래리티 코드 실행
  • ‘::help’ 명령을 활용한 추가 정보 접근 등

클래리티 코드 작성이 즐거워집니다

클래리티 플레이그라운드는 클라리넷과 클라리넷 SDK의 힘을 활용합니다. 클래리티 플레이그라운드에는 웹 환경을 위해 특별히 컴파일된 클래리티 VM이 적용되어 있습니다. 이는 플레이그라운드에서 성공적으로 작동하는 코드가 데브넷, 테스트넷, 메인넷 환경에 배포될 경우에도 동일하게 실행될 수 있다는 것을 의미합니다. 클래리티 플레이그라운드는 높은 신뢰성을 제공합니다.

로그인 없이 간편하게

클래리티 플레이그라운드는 지갑 연결도, 로그인도 요구하지 않습니다. 그저 코드를 실행하기만 하면 됩니다.

위 예제는 카운터 계약을 배포한 후 ‘get-counter’ 함수를 호출합니다. 이후 ‘::set_tx_sender’를 사용해 다른 계정에 트랜잭션을 전송합니다. ‘increment’ 함수를 호출하면 STX가 호출한 지갑에서 컨트랙트 소유자로 전송됩니다. 이후 ‘::get_assets_map’을 호출하여 각 지갑의 잔액을 확인합니다. ‘::help’를 명령을 통해 사용 가능한 모든 함수를 확인할 수 있습니다.

시작하기

지금 바로 클래리티 플레이그라운드를 사용해 보실 수 있습니다. 코드를 실행해 보고, 다른 사람들에게 그 코드를 자유롭게 공유해 보시기 바랍니다. 향후 클래리티 학습 리소스, Stacks.js 지원과 같은 기능 추가도 논의하고 있습니다. 플레이그라운드 활용과 관련한 여러분들의 피드백을 남겨주세요. 디스코드 내 히로 개발자 도구 섹션의 #clarinet 채널을 통해 의견을 남겨주시면 적극적으로 검토하도록 하겠습니다.

클래리티 플레이그라운드: https://play.hiro.so

--

--