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

in SteemCoinPan •  4 months 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 사용해보기

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

스팀잇 기본 이야기

스팀잇 심화 이야기

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

해킹과 관련된 이야기

개발과 관련된 이야기
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

[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]

@banguri님이 당신을 멘션하였습니다.

https://www.steemit.com/@banguri/5-21

@yonggyu01님이 당신을 멘션하였습니다.

https://www.steemit.com/@yonggyu01/7-tipu-sbd

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

좋은글 감사합니다:)