[NodeJS] API 사용 법 1편 스팀 라이브러리 설치
안녕하세요 ayogom 입니다.
오늘부터 다시 Nodejs를 한번 배워봅시다. 진행 순서는 각 카테고리에 맞는 API에 대해서 소개를 해 드리고 그걸 복합적으로 사용하는 방법까지 알려드릴 수 있을 것 같습니다. 첫술에는 결코 배부를수 없습니다. 저도 아직 배고프거든요!! 아직까지 Nodejs를 설치 하지 않았거나 Nodejs가 무엇인지 잘 모르신다면 Nodejs 가 무엇인지 그리고 어떻게 설치 하는지? 을 참고하시면 도움이 될 것 입니다 😊
지난 시간에 Nodejs를 켜는 법까지 진행을 했었죠? 오늘은 일단 Steem 라이브러리를 을 설치 해야 합니다.
Node.js command prompt 를 실행 합니다.
전 기존에 사용하던 폴더와 구분을 하기 위해 nodejs2라는 폴더를 만들었습니다.
steem의 nodejs의 공식 주소는 여기입니다.
폴더를 만드셨다면, 위의 공식 주소에 나온데로 인스톨을 해주시면 됩니다.
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는 화면에 뿌려주는 녀석입니다. 즉 err
와 result
에 대해서 뿌려준것이죠 결과는 봤는데 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 사용해보기
누군가에게는 도움이 될 수 있는 글
스팀잇 기본 이야기
- 복잡한 키&패스워드는 그만 손쉬운 로그인 키체인의 사용법
- 계정 옆의 숫자 평판? "reputation" 이란
- [요청] 스팀엔진 사용방법
- 스팀잇 내부 거래 사이트, 마켓
- 오랜만에 스팀잇에 돌아왔더니 로그인이 안됩니다 (Logging in with non-posting key)
- 스팀잇에 기존 사용하던 트론 지갑을 연결하는 방법
- 스팀 체인의 패스워드 / 키의 역활
- [요청] 스팀엔진 Explorer 가 접속이 되지 않아요
- Steemit의 태그 사용법과 커뮤니티스 사용법
- Steemit 프로필 변경 방법
- 스팀파워 임대가 안된다 왜?
- 스팀잇 계정 만들기
- 스팀잇 저장 보상의 종류와 뭐가 좋을지
- 스팀잇 속닥속닥 비밀 메모 사용하기!
- 스팀/스달 입금, 출금 그리고 업비트 이용방법
- 갑자기 steemit 사이트가 접속이 안된다면?
- 스팀잇 내에 붉은 글씨 사용법
- Steem체인의 또하나의 커뮤니티 "zzan"
- Steem체인의 또하나의 커뮤니티 "sct"
- 스팀잇 지갑에 접속이 되지 않을 때
- 스팀잇 글 작성 문법 [마크다운편]
- 스팀잇 글 작성 문법 [HTML]
- 스팀잇 가독성 및 작성을 편하게 해주는 "Steemit.com Enhancer" 툴
스팀잇 심화 이야기
- 스팀의 인플레이션에 대해서
- 하루에 스팀 리워드 풀에 포함되는 스팀은 얼마나 될까?
- 하루에 도대체 어느정도의 스팀은 생성될까요?
- 내가 보팅 했더니 보상이 떨어졌다? 왜?
- 스팀달러가 1달러를 유지하는 방법
- 글이 써지지 않아요 왜? Resource Credits!? Your transaction failed to process
- 스팀잇 에서의 $ 는 USD(미국달러) 인가요?
- 스팀은 DPOS 기반의 블록체인입니다. 그럼 DPOS가 뭔가요?
- 증인에 역활은 무엇일까
- 스팀 증인 노드 세팅하기 1탄
- 스팀 증인 노드 세팅하기 2탄
- Steem Node 정리 (Full node 1편)
- Steem Node 정리 (Full node 2편) -설치
- 증인 노드 feed price 업데이트 방법
[US$80.50](▼16%)[SONGJING]SONGJING SJ-125E 제습기 / 송징 SJ-125E 제습기 / 36평적용 / 165W 고출력 / 대용량 물탱크 / 관부가
WWW.QOO10.COMstart 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
@pennsif님이 당신을 멘션하였습니다.
https://www.steemit.com/@pennsif/witness-weekly-21-may-2021
2.계정정보 불러오기 성공
좋은글 감사합니다:)
방금 전 가입한 저의 계정으로도 조회해 보니 잘 되는 것 같습니다.
감사합니다.