[NodeJS] API 사용 법 1편 스팀 라이브러리 설치

in SCT.암호화폐.Crypto4 years ago (edited)

안녕하세요 ayogom 입니다.
오늘부터 다시 Nodejs를 한번 배워봅시다. 진행 순서는 각 카테고리에 맞는 API에 대해서 소개를 해 드리고 그걸 복합적으로 사용하는 방법까지 알려드릴 수 있을 것 같습니다. 첫술에는 결코 배부를수 없습니다. 저도 아직 배고프거든요!! 아직까지 Nodejs를 설치 하지 않았거나 Nodejs가 무엇인지 잘 모르신다면 Nodejs 가 무엇인지 그리고 어떻게 설치 하는지? 을 참고하시면 도움이 될 것 입니다 😊

지난 시간에 Nodejs를 켜는 법까지 진행을 했었죠? 오늘은 일단 Steem 라이브러리를 을 설치 해야 합니다.

Node.js command prompt 를 실행 합니다.

전 기존에 사용하던 폴더와 구분을 하기 위해 nodejs2라는 폴더를 만들었습니다.

steem의 nodejs의 공식 주소는 여기입니다.

https://github.com/steemit/steem-js

폴더를 만드셨다면, 위의 공식 주소에 나온데로 인스톨을 해주시면 됩니다.

npm install steem --save

설치가 완료되면 해당 폴더 하위에 node_module 가 추가 된 것을 알 수 있는에요 이 폴더를 보면 steem 관련 내용이 다운로드 된 것을 알 수 있습니다.

그럼 다시 Nodejs 폴더로 가셔서 메모장을 딱 열어봅니다.

그리고 위의 내용을 써봅니다.

var steem = require('steem');

steem.api.getAccounts(['ned', 'dan'], function(err, result) {
    console.log(err, result);
});

  • 본인 계정으로 바꿔서 해보셔도 됩니다.

그리고 아까 만들었던 Nodejs 폴더에 해당 메모장을 저장(확장자는 js)합니다.
저는 "getAccounts.js" 로 저장을 했습니다.

완료가 되었다면,

node getAccounts.js

결과물이 이렇게 짜잔 하고 출력이 됩니다.

소스 코드에 대해서 잠깐 설명을 드려보자면

var steem = require('steem');

스팀의 라이브러리를 steem 으로 사용하겠다는 의미 입니다.

steem.api.getAccounts(['ned', 'dan']

스팀 라이브러리 중 api.getAccounts를 사용하겠다 그리고 사용할 값을 ( ) 안에 넣어주게 됩니다. 여기서 어려운 것은 무슨값을 넣어줘야 하나 모를 수도 있습니다. 이땐 메뉴얼을 봐야겠죠? 스팀 개발의 공식 웹페이지는 (https://developers.steem.io/) 입니다. 방금 사용했던 getAccounts에 대한 설명은 https://developers.steem.io/apidefinitions/#condenser_api.get_accounts 이걸 참조 하시면 됩니다.

보시면 [ ] 만들고 계정을 쓰라고 되어 있습니다. 우리는 어떻게 했죠? ['ned', 'dan'] 을 넣었습니다. 결과물을 보면 ned의 계정과 dan의 계정에 대해서 조회된 것을 알 수 있습니다. 자기 계정을 넣고 해도 재미 있겠죠?

function(err, result) {

그리고 끝으로 이거는 해당 내용을 function으로 정의한 것입니다. 이해가 안되실 수 있는데 그냥 그렇구나 하면 됩니다. 언어는 그런것입니다. 그냥 그런겁니다 ㅎㅎ

console.log(err, result);

console.log는 화면에 뿌려주는 녀석입니다. 즉 errresult에 대해서 뿌려준것이죠 결과는 봤는데 err 에 대해선 못 보셨다고요? 맨 위에 null 이라고 출력된 부분이 있습니다. 그게 err에 대한 응답이었습니다. err가 없었기 때문에 null 이 출력된 것이죠 만약 err을 지우고 console.log(result); 만 썻다면 해당 부분은 나오지 않았을 것입니다.

여기서 한가지 응용을 해볼까요? 계정정보를 조회했는데 너무나 많은 데이터가 왔습니다. 그중에 내가 필요한 값만 읽고 싶다면 이렇게 해보면 됩니다.

console.log(result[0].name, result[0].balance, result[0].sbd_balance);

결과값을 볼까요?

불필요한 정보를 지우고 내가 알고 싶은 이름, 스팀잔고, 스달 잔고만 나왔습니다.
근데 한가지 궁금한 부분이 남죠 바로 왜 [0]을 넣었느냐 입니다.

처음 출력된 형태를 다시 살펴보면

null [
  {
    id: 497,
    name: 'ned'....
    ....
  },
  {
    id: 496,
    name: 'dan'...
    ....
   }

으로 표시 되게 되는데요 여기서 이 대괄호 [ ] 가 포함되어 있으면 이건 배열로 된 출력입니다. 배열이 뭔지 아시는 분은 그냥 고개를 끄덕 거리실 것이고 모르시는 분은 그냥 묶음이라고 생각하시면 됩니다. 이 API 는 여러 계정의 정보를 한번에 조회할 수 있기 때문에 그것을 각 ned 묶음 하나 dan 묶음 하나로 구분을 해둔 것입니다. 그리고 그 순서는 순차적으로 진행 됩니다.

따라서 위에

console.log(result[0].name, result[0].balance, result[0].sbd_balance);

의 의미는 0번째로 호출했던 ned 의 정보가 됩니다. 그럼 1번째 dan을 호출 하려면 어떻게 해야 할까요? 맞습니다 그냥 위의 0을 1로 바꿔 주시면 됩니다. (저는 추가해봤습니다.)

  • (프로그래밍은 0부터 시작합니다.)

console.log(result[0].name, result[0].balance, result[0].sbd_balance);
console.log(result[1].name, result[1].balance, result[1].sbd_balance);

그럼 ned와 dan의 알고 싶은 정보만 쏙 조회해서 읽을 수 있었습니다.
참 쉽죠?
이해 안되는 내용이 있으면 댓글 남겨 주세요

최종 소스코드

var steem = require('steem');

steem.api.getAccounts(['ned', 'dan'], function(err, result) {
    console.log(result[0].name, result[0].balance, result[0].sbd_balance);
    console.log(result[1].name, result[1].balance, result[1].sbd_balance);
});

작성 예정인 글 List

  • Nodejs 를 이용한 스팀 API 사용해보기

누군가에게는 도움이 될 수 있는 글

스팀잇 기본 이야기

스팀잇 심화 이야기

스팀잇 보상과 연결되는 이야기

해킹과 관련된 이야기

개발과 관련된 이야기
Sort:  

[US$80.50](▼16%)[SONGJING]SONGJING SJ-125E 제습기 / 송징 SJ-125E 제습기 / 36평적용 / 165W 고출력 / 대용량 물탱크 / 관부가

WWW.QOO10.COM

start success go! go! go!

@ayogom transfered 4.6 KRWP to @krwp.burn. voting percent : 6.51%, voting power : 70.13%, steem power : 1772396.45, STU KRW : 1200.
@ayogom staking status : 630 KRWP
@ayogom limit for KRWP voting service : 1.89 KRWP (rate : 0.003)
What you sent : 4.6 KRWP
Refund balance : 2.71 KRWP [53927472 - cf7d8c477ca48673f598b6030c2655fae3ea15ca]

2.계정정보 불러오기 성공

좋은글 감사합니다:)

방금 전 가입한 저의 계정으로도 조회해 보니 잘 되는 것 같습니다.
감사합니다.