검수요청.png검수요청.png

비습

위키원
이동: 둘러보기, 검색
비습(VVISP)
비습(VVISP)
해치랩스(Haechi Labs)

비습(VVISP)은 해치랩스가 만든 스마트 컨트랙트 개발 툴이다. 2019년 3월 4일 출시했다. 비습은 단 한 줄의 명령어스마트 컨트랙트를 배포하고 실행할 수 있는 명령줄 인터페이스(CLI)이다. 단순한 설정 파일 형태로 대상들을 간단히 정의해 명령어 한 줄로 코드 작성 없이 배포 순서를 자동으로 정해 스마트 컨트랙트를 블록체인에 배포할 수 있다. 비습은 오픈 소스 커뮤니티인 깃허브에서 무료로 이용할 수 있다.[1]

개요[편집]

비습은 내부의 프로젝트로 시작되었지만 더 많은 개발자가 블록체인 기술을 활용하길 기대하는 마음에서 해치랩스는 오픈소스 프로젝트로 전환했다. 비습은 블록체인 기술에 익숙하지 않은 개발자를 위한 도구로써 스마트 계약과 탈중앙화 애플리케이션을 개발하는 사람들이 효휼적으로 활용할 수 있게 설계됐다.[2] 현재 계약을 배포하기 위해선 작성하는 것뿐만 아니라 배포 코드를 직접 작성해야 한다. 비습은 단순한 설정 파일 형태로 대상을 정의해 명령어 한 줄로 코드 작성 없이 스마트 계약 배포 순서를 알아서 고려해 배포한다. 오픈소스 CLI(Command Line Interface) 도구인 비습은 명령어 인터페이스의 약자로, 직접 키보드로 명령어를 타이핑하는 방식이다.[3] 비습은 이더리움 기반의 EVM을 탑재한 모든 블록체인에서 디앱을 설계하는데 이용할 수 있으며 기존의 디앱을 만드는데 소요되었던 시간을 반으로 줄일 수 있다.

등장 배경[편집]

블록체인스마트 계약은 새롭게 등장한 생소한 개발 분야이다. 그렇기 때문에 기존 개발자에게 디앱(Dapp)개발은 다른 개발 분야에 비해 익숙하지 않다. 개발 자체도 낯설뿐만 아니라 개발자가 여러 레퍼런스를 참고해 콘트랙트를 작성한다 하여도 콘트랙트 배포에는 추가적인 코드가 필요하여 사용에 어려움이 있다. 이러한 불편함을 줄여주기 위해 CLI 도구인 비습을 개발했다.[3]

특징[편집]

계약 배포와 기능 실행[편집]

비습은 명령어 한줄로 계약 배포와 기능 실행이 가능하다. 스마트 계약을 블록체인에 배포하는 것은 개발자들에게 낯선 과정이다. 계약 배포는 단순히 스마트 계약를 작성한다고 수행되는 것이 아니라 추가적인 배포 코드를 직접 작성해야 한다. 그뿐만 아니라 디앱을 구성하는 여러 개의 스마트 계약을 배포하기 때문에 개발자는 배포 순서 역시 고려해야 한다. 이러한 복잡한 과정을 비습은 명령어 한줄로 완료한다. 단순한 설정 파일 형태로 배포 대상들을 간단히 정의하는 비습은 코드 작성 없이 배포 순서를 알아서 고려하여 계약을 배포한다.[4] 비습은 계약 기능 실행 역시 명령어 한줄로 처리가 가능하다. 기존에는 어떤 계약의 기능을 실행하기 위해서 라이브러리를 공부하고, 함수를 호출하고, 함수 호출 코드를 수동으로 작성해야 했다. 이것은 개발자들에게 커다란 진입장벽이 된다. 비습은 명령어 한줄을 통해 계약의 특정 기능을 실행하고, 결과를 받아올 수 있도록 설계됐다.[4] 개발자의 핵심 업무 수행에 방해되는 요소를 제거하고 매우 간다하고 이해하기 쉬운 명령어를 사용하는 비습은 배포와 운영에 필요한 작업을 간소화한다. 그리고 이것을 통해 개발자는 프로젝트의 핵심 로직(logic)에만 집중할 수 있다.[2]

인터페이스[편집]

비습은 CLI(Command Line Interface)를 선택하고 있다. 일반적으로 많이 사용되는 것이 GUI(Graphic User Interface)방식이라는 것을 생각해 본다면 눈에 띄는 특징이라고 보여진다. GUI는 마우스를 활용해 파일과 폴더를 이동하고, 삭제하고, 폴더 내부를 들여다보거나 파일을 열어볼 수 있다. 그와 대조적으로 CLI는 컴퓨터에게 직접 명령어를 통해 명령을 내린다.[5]CLI의 대표적인 예는 윈도우에 커맨드 창이다. CLI에서는 철자나 띄어쓰기가 매우 중요하다. 조금이라도 오류가 발생하면 제대로 입력이 되지 않는다. 이러한 CLI의 장점은 응용하고 조합하게 되면 높은 수준의 결과를 얻을 수 있다는 것이며 가장 낮은 레벨의 입력방식으로 하드웨어적인 부분에 접근하기 쉽다는 점이 강점이다.[6]

명령어[편집]

  • 이니트 : 이니트(init)는 프로젝트를 생성한다.
  • 컴파일 : 계약 파일들을 컴파일한다.
  • 디플로이 컨트랙트 : 디플로이 컨트랙트(deploy-contract)는 계약을 배포한다.
  • 디플로이 서비스 : 디플로이 서비스(deploy-service)는 계약으로 이루어진 서비스를 배포한다.
  • gen-스크립트 : 스마트 계약과 통신할 수 있는 자바스크립트 API들을 생성한다.
  • 컨솔 : 컨솔(Console)은 계약과 상호작용할 수 있는 콘솔 환경을 제공한다.
  • 플래튼 : 플래튼(flatten)은 여러 계약 파일을 하나로 합친다.[7]

아키텍처[편집]

비습은 원격 절차 호출(RPC)를 통해 메인넷, 테스트넷과 통신하며, 유저의 현 버전 디앱 서비스를 배포, 업그레이드, 테스트, 컴파일 등을 돕는다. 비습은 트러플 테스트 프레임워크를 지원한다. 비습은 크게 비습-유틸리티, 비습, 비습-컨트랙트로 이루어져 있다. 비습-유틸리티는 비습과 비습-샘플에서 사용하는 유용한 기능들을 제공한다. 비습은 핵심 로직을 의미하며 비습-컨트랙트는 업그레이드 가능한 스마트 계약 개발을 위한 계약 라이브러리이다.[7]

비습-샘플(vvisp-sample)은 비습 이니트 명령어로 생성된 보일러 플레이트(boilerplate) 패키지이다. 보일러 플레이트는 자주 쓰이는 코드들을 먼저 제공하고, 수정하지 않거나 최소한의 수정만을 거쳐 여러 부분에서 필수적으로 사용되는 코드를 의미한다.[8] 구성요소로는 컨트랙트아피스(contractApis), 구성(configuration), 테스트, 계약(contracts)이 있다. 컨트랙트아피스는 비습 젠-스크립트 명령어를 통해 자동 생서된 자바스크립트 라이브러리로 배포된 프로젝트를 쉽게 사용할 수 있게 돕는다. 구성(configuration)은 vvisp-config.js, service.vvisp.json, state.vvisp.json와 같은 설정파일들이 비습의 프로젝트에 존재한다. 테스트는 유저가 작성한 계약 테스트 코드들이 존재할 디렉토리이다. 컨트랙트폴더 내에는 비습 이니트를 통해 생성된 레지스트리 파일이 포함되어 있으며 이곳에서 계약들이 작성된다.[7]

장점[편집]

비습은 업그레이드 가능한 스마트 계약 프레임워크 기능을 옵션으로 제공한다.[9] 스마트 계약은 누구나 개발할 수 있지만 운영할 댄 다르기 때문에, 운영적인 측면에서 특히 도움이 되는 부분이다.[10] 비습은 설정파일 형태로 컨트랙트 배포와 초기화 작업을 정의하는 컨셉을 가지고 있다. 기존에 스크립트를 짜는 방식은 사용되는 여러 모듈에 대한 지식이 있어야 했다. 그런데 설정파일의 형태는 가독성을 높이고 쉽게 작성할 수 있어 배포하기에 훨씬 유용하다. 이와 더불어 초기화 함수를 호출할 수 있는 기능 역시 설정파일에 담겨 있어 배포 이후의 초기 작업의 수고를 덜어준다. 비습은 배포된 컨트랙트를 호출하기 용이한 콘솔(console) 기능을 구현했다. 기존의 경우, 컨트랙트들의 주소를 일일이 찍어보고 함수를 호출하는 스크립트의 작성이 필요했다. 비습은 배포된 주소를 알아서 저장하고, 사용할 컨트랙트들의 목록을 자동으로 보여준다.[10]

각주[편집]

  1. 박병진 기자, 〈해치랩스, 스마트 컨트랙트 개발도구 '비습' 출시〉, 《뉴스1》, 2019-03-04
  2. 2.0 2.1 심두보 기자, 〈해치랩스의 오픈소스 프로젝트 ‘비습’ "블록체인 디앱을 더 쉽게 개발하세요"〉, 《서울경제》, 2019-04-16
  3. 3.0 3.1 심두보 기자, 〈해치랩스, 스마트 콘트랙트 개발도구 ‘vvisp’ 출시〉, 《서울경제》, 2019-03-04
  4. 4.0 4.1 해치랩스, 〈스마트 컨트랙트 개발을 돕는 오픈소스 개발 도구 비습〉, 《브런치》, 2019-03-04
  5. 엘리스, 〈CLI (Command Line Interface)란?〉, 《네이버 블로그》, 2017-01-10
  6. Ryu's Story, 〈CLI(Command-Line Interface) 와 GUI(Graphic User Interface) ... 그리고 NUI(Natural User Interface)〉, 《티스토리》, 2012-11-05
  7. 7.0 7.1 7.2 HAECHI-LABS, 〈비습〉, 《깃허브》, 2019-03-12
  8. 밤공기후하후하, 〈https://blog.naver.com/on21life/221374745312 IT용어-boilerplate, 상용구 코드란 무엇인가]〉, 《네이버 블로그》, 2018-10-10
  9. 한수연 기자, 〈해치랩스 “블록체인 솔루션 기업으로 리브랜딩”…첫 개발 솔루션 ‘비습’ 공개〉, 《코인데스크》, 2019-03-04
  10. 10.0 10.1 HAECHI LABS, 〈블록체인 개발자의 비습(vvisp) 사용기 1편 — SK 텔레콤 김지성 매니저〉, 《미디엄》, 2019-04-16

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 비습 문서는 블록체인 솔루션에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.