[NodeJS] API 사용 법 5편 예약 포스팅 해보기 -2편 (포스팅 수정)

in SteemCoinPan •  4 months ago 

안녕하세요 ayogom 입니다.
오늘은 어제 [NodeJS] API 사용 법 4편 예약 포스팅 해보기에 이어서 작성 해볼 생각입니다. 일단 아쉽게도 퀴즈에 참여하신분들이 없어서 하루를 연장 해볼까 하다가 그냥 진행해 봅니다.

일단 어제 코드를 다시 한번 살펴볼까요?

var steem = require('steem');

const timeout = setTimeout(()=>{
    var wif = "**************";
    var parentAuthor = "";
    var parentPermlink = "test";
    var author = "jerry.van.lee"
    var permlink = "nodejs-test-00"
    var title = "Nodejs 예약 포스팅 테스트 중입니다."
    var body = "이렇게 넣으면 예약 포스팅에 대한 테스트가 됩니다. \n 엔터 대신에는 ``\n`` 을 넣어서 사용하시면 됩니다. 잘 되는지 볼까요?"
    var jsonMetadata =  {"tags":["test"],"app":"steemcoinpan\/0.1","format":"markdown"};

    steem.broadcast.comment(wif, parentAuthor, parentPermlink, author, permlink, title, body, jsonMetadata, function(err, result) {
            console.log(err,result);                                
    }); 
}, 60000);

코드를 살펴보면 permlink 의 주소가 nodejs-test-00으로 되어 있습니다. 이 주소는 처음 [NodeJS] API 사용 법 3편 포스팅을 해볼테다! 에서 사용했던 소스를 그대로 사용했기 때문에 동일한 코드가 이틀째 사용 된 것입니다.

즉, 고유한 주소 값을 바꿔주지 않았기 때문에 새로운 글이 작성된 것이 아닌 글 수정이 되어 버린 것입니다. 즉 포스팅은 글 작성 / 글 수정 / 댓글 작성이 모두 하나의 API에서 이뤄지게 되어 있다는 점입니다.

그럼 새로운 글을 쓰려면 어떻게 했어야 할까요? permlink 를 바꿔주셨어야 합니다.
예를들자면아래와 같이 permlinknodejs-test-01 으로 바꿔준다면 새글이 써졌을 것입니다.

var steem = require('steem');

const timeout = setTimeout(()=>{
    var wif = "**************";
    var parentAuthor = "";
    var parentPermlink = "test";
    var author = "jerry.van.lee"
    var permlink = "nodejs-test-01"
    var title = "Nodejs 예약 포스팅 테스트 중입니다."
    var body = "이렇게 넣으면 예약 포스팅에 대한 테스트가 됩니다. \n 엔터 대신에는 ``\n`` 을 넣어서 사용하시면 됩니다. 잘 되는지 볼까요?"
    var jsonMetadata =  {"tags":["test"],"app":"steemcoinpan\/0.1","format":"markdown"};

    steem.broadcast.comment(wif, parentAuthor, parentPermlink, author, permlink, title, body, jsonMetadata, function(err, result) {
            console.log(err,result);                                
    }); 
}, 60000);

바로 한번 해볼까요?

잘 나왔네요 실제로 잘 작성이 되었는지 스팀잇 페이지에서 다시 체크 합니다

https://steemit.com/test/@jerry.van.lee/nodejs-test-01

nodejs-test-01 주소로 여전히 잘 나왔지만, 한글이 어디갔는지... 와장창 깨져서 나와버렸습니다.
이제 이 문제를 해결 해볼 차례 입니다.

세상에는 많은 언어가 있습니다. 위대한 세종대왕님이 만드신 한글도 있고 영어도 있고 중국어도 있고, 일본어도 있고 등등 많은 언어가 있고, 그것을 컴퓨터는 인식을 해야 하는 문제가 있었습니다. 그리고 우리는 한글은 2byte로 되어 있고 영어는 1byte로 보통 표현한다고 이해를 하고 있을 것입니다. (아마도... ) 이 처럼 다양한 언어를 다양한 방식으로 표현을 하게 되는데, 컴퓨터는 그것을 다 인지 하지 못 하기 때문에 이건 어떤 언어인지 알려줄 필요가 있습니다. 그중에 한글을 많이 표현하는 방식이 바로 유니코드형태를 따르고 있는데요, 따라서 언어에 한글을 포함을 할 생각이라면 작성할 때 해당 환경을 유니코드로 잡아줘야 합니다. 어렵죠?

그럼 좀더 쉽게 생각해보면 인터넷에서 무엇인가 텍스트를 받아서 열어봤더니 말도 안되는 이상한 언어로 표현되는 경우가 있습니다. 위의 포스팅과 같은 형태죠 그 떄 아 파일이 깨졌네 하고 닫을 것이 아니라 표시 인코더를 바꿔볼 필요가 있습니다.

각 프로그램 마다 해당 부분을 설정하는 것은 다릅니다.

저는 기존에 깨진 파일 res_comment.js 파일의 인코딩을 UTF-8로 변환 하였습니다. 그리고 다시

node res_comment.js

를 실행했고,

깨졌던 한글이 정상적으로 돌아온 것을 알게 되었습니다!
쉽죠?

내일은 하루에 한번씩 포스팅 하는 방법에 대해서 소개해드리겠습니다 ㅎ

그럼 내일 또 만나요~ 뾰로롱~

작성 예정인 글 List

  • Nodejs 를 이용한 스팀 API 사용해보기 (계속)
  • SCT 포스팅피 납부 방법

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

스팀잇 기본 이야기

스팀잇 심화 이야기

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

해킹과 관련된 이야기

개발과 관련된 이야기
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

voting power - @@ - ,, start success go! go! go!

@ayogom transfered 4 KRWP to @krwp.burn. voting percent : 6.55%, voting power : 61.35%, steem power : 1775207.96, STU KRW : 1200.
@ayogom staking status : 650 KRWP
@ayogom limit for KRWP voting service : 1.3 KRWP (rate : 0.002)
What you sent : 4 KRWP
Refund balance : 2.7 KRWP [54041947 - c053b1ba4cf0e3aac918a9fbdce3621540358fee]

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

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

깨졌던 한글이 돌아왔네요. 재미있습니다. ㅎㅎ

으 뭔가 대리만족 느낌으로 보고있습니다 ㅎㅎ
저도 예약포스팅 기능이 있으면 좋겠다고 생각하고 있었는데
드디어 성공이군요 ㅎㅎㅎ