안녕, Caver (BApp 101)

Klaytn은 퍼블릭 블록 체인 플랫폼으로 투명하고 분산적이며 애플리케이션을 실행할 수 있습니다. Caver는 Klaytn기반의 응용 프로그램을 작성하는 데에 사용 되는 개발 툴입니다.

이 글에서는 Caver를 사용하여 블록 체인 기반 애플리케이션 또는 BApp을 간단히 작성하는 방법에 대해서 소개하겠습니다. 이미 Ethereum의 DApp에 대한 경험이 있다면 약간 중복된 내용이 있을 수 있습니다. 그렇다면 당신은 Klaytn Docs와 함께 당신만의 어플리케이션 구현을 바로 시작할 수 있습니다.

BApp이란 블록체인 네트워크와 통신하는 응용 프로그램입니다. Klaytn BApp이라고 하면, Klaytn 블록체인 네트워크와 통신하는 응용 프로그램입니다. 블록체인 네트워크와 통신하기 위해서는 블록체인 통신 프로토콜을 따라야 합니다. 프로토콜이 무엇인지 모르는 경우 다음 링크를 참조하세요: 통신 프로토콜 - 위키백과, 우리 모두의 백과사전

각 블록체인은 자체 프로토콜이 있으며, Klaytn도 마찬가지로 Klaytn 네트워크와 통신하기 위한 프로토콜이 있습니다. 따라서 Klaytn과 통신하는 응용 프로그램을 작성하는 것은 Klaytn 관련 프로토콜을 사용하여 Klaytn과 통신하는 소프트웨어를 개발하는 것이라고 할 수 있습니다. :slight_smile:

Get BlockChain Height BApp

Caver는 소프트웨어 개발 킷(SDK)로 Klaytn 프로토콜에 필요한 모든 것을 갖추고 있습니다. 우리는 Get Blockchain Height(GBH)라는 간단한 BApp을 구현해 보도록 하겠습니다. 너무 간단하다고 생각할 수도 있지만, 블록체인 개발에 익숙하지 않은 분들에게는 아주 유용한 정보입니다.

사전 준비

GBH(Get Blockchain Height) BApp을 작성하기 위하여 우리는 Javascript로 구현된 Caver인 caver-js를 사용할 것 입니다. 개발을 시작하기 이전에 아래와 같은 사전 준비가 필요합니다.

  • 터미널 환경
  • Javascript와 Node.js에 대한 실무 지식
  • npm을 사용하여 라이브러리를 설치할 수 있는 환경

설치

사전 준비는 모두 갖추어 졌습니까? 이 섹션부터는 Node.js를 이미 설치를 완료했다고 가정합니다. 터미널을 열고 다음과 같이 npm을 통하여 caver-js를 설치합니다.

$ npm install caver-js

위의 명령어는 자동적으로 최신 버전의 caver-js를 설치합니다. 만약 특정 버전을 설치하고 싶다면 아래의 명령어를 통하여 설치해 주세요.

$ npm install caver-js@X.Y.Z

Baobab 네트워크와 연결하기

caver-js 설치를 완료했다면, 터미널에서 node 명령어를 실행하여 node console을 실행합니다. 여기서는 Klaytn testnet인 Baobab의 EndPoint Node(EN)과 연결할 것입니다.

$ node
> const Caver = require('caver-js');
> const caver = new Caver('https://api.baobab.klaytn.net:8651/');

이제 Baobab(Klaytn Testnet)의 EN(EndPoint Node) 노드에 연결이 완료되었습니다. 이제 caver를 사용하여 노드와 통신할 수 있습니다.

API 사용하기

우리는 getBlockNumber라는 API를 사용해서 네트워크의 최신 블록 번호를 받아올 것입니다.

> caver.klay.getBlockNumber((err, result) => console.log(result));

위의 코드는 API를 호출할 때에 callback함수를 파라미터로 전송하여서 결과값을 출력합니다. caver.klay.getBlockNumber를 호출하면 caver는 노드와 통신하는 RPC콜을 호출하며, Promise를 리턴합니다. 여기서 callback함수를 통한 방법이 아닌 Promise를 사용하고 싶을 경우 아래와 같이 실행하면 위와 동일한 결과를 얻을 수 있습니다.

> caver.klay.getBlockNumber().then(console.log);

caver.klay.getBlockNumber는 Baobab 블록체인 네트워크의 최신 블록 번호를 리턴합니다.

코드 작성하기

위에서 실행해 본 내용을 바탕으로 이제 코드를 작성해 보도록 하겠습니다. 당신이 개발할 때에 사용하는 editor를 실행하고 GBH.js라는 파일을 생성한 뒤 아래의 코드를 작성해 주세요.

const Caver = require('caver-js');
const caver = new Caver('https://api.baobab.klaytn.net:8651/');
caver.klay.getBlockNumber((err, result) => {
    if (!err) {
        console.log(result);
    } else {
        console.error(err);
    }
});

파일에 위의 코드를 작성한 뒤에 저장해 주세요. 그렇다면 이제 위에서 작성한 파일을 아래의 명령어로 실행해 봅시다.

$ node GBH.js
21228570

파일의 실행 결과로 출력되는 숫자는 2020년 2월 27일에 제가 직접 실행해서 받은 결과값입니다. 만약 당신이 코드를 작성하고 실행한다면 위의 결과값과 다른 숫자가 출력될 것입니다.

결론

당신의 첫 번째 BApp인 GBH가 완성되었습니다 :100: 성공적으로 Baobab 네트워크와 연결 하였으며, 최신 블록 번호를 받아왔습니다. Baobab은 당신의 참신한 아이디어를 테스트 해보기에 적합한 테스트 네트워크 입니다. 좀 더 복잡한 BApp을 작성하는 방법에 대해서는 추후에 글을 작성하겠습니다. 항상 관심을 가지고 지켜봐 주세요! :blush: 당신도 쉽게 BApp을 만들 수 있습니다 !

1개의 좋아요