___|  _ \   |  |    |   |_ _|\ \     / ____|
 |     |   |  |  |    |   |  |  \ \   /  __|
 |   | |   | ___ __|  ___ |  |   \ \ /   |
\____|\___/     _|   _|  _|___|   \_/   _____| 

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

비개발자도 steemit을 주물러 보자 #1

BY: @asbear | CREATED: Sept. 23, 2017, 11:07 a.m. | VOTES: 84 | PAYOUT: $54.45 | [ VOTE ]

[IMAGE: https://steemitimages.com/DQmQV1rpchd8DPrH7SkXp4h5aYjfDmS9S5Jp4FmhFmfRTz1/front_normal.jpeg]

현재 steem-python이 윈도우에 원활하게 설치가 되지 않는 것을 확인 하였습니다. Mac가 Linux에서는 문제 없습니다. 그런데 비개발자분들 대부분은 윈도우라는점에서.. 취지가 약해지는것 같습니다 ㅎㅎ NodeJS쪽으로 바꿔볼까 고민해 보겠습니다.

안녕하세요? @asbear입니다.

비개발자 분들중에 스팀잇에 무한 애정을 가지고 뭔가 해보고싶어하시는 분들이 많다는것을 알게 되었습니다. 하지만 프로그래밍 없이는 마땅히 할수있는것이 없어 답답해 하시는 분들도 계실것 같습니다. 그래서 비개발자를 대상으로 steem-python을 사용하는 방법을 소개해 드리려고 합니다. 개발자는 아니어도 커맨드라인에서 명령어 입력하는것정도는 익숙하신 분들을 대상으로 합니다. 실제 코딩이기 때문에, 처음에는 이해가 안되실 수 있습니다. 하지만 파이썬 코딩은 일반인이 경험적으로 배우는게 어느 선까지는 가능하기때문에 용기를 갖고 따라와 보시기 바랍니다.

python-steem을 이용하시면 steem에 관해서 거의 모든것을 하실 수 있습니다. 글을 쓰고, 보팅하고, 송금을 하고, 댓글을 달고 계정을 만드는 등 할수 있는 것들이 수없이 많습니다. 마켓에서 SBD/STEEM 거래도 자동으로 하실 수 있으며, 또한 웹사이트를 통해 얻을 수 없는 데이터도 읽어낼 수 있지요. 가이드독 봇이 하듯이 실시간으로 올라오는 글이나 댓글들을 모니터링하면서 액션을 취할수도 있죠. 하지만 비개발자 대상이다보니, 그 설명 방법에 명확한 한계가 있어 제가 생각하는 최선으로 한번 접근해 보려고 합니다. 그래서 첫회에는 steem-python을 이용하여 글을 읽어오는 것부터 시작해 보겠습니다. 진행하면서 조금씩 프로그래밍적인 설명도 곁들여, 열정이 있으신분들은 파이썬에 입문하실 수 있도록 도와드려 볼까 합니다.

steem-python에 대한 자세한 내용은 아래의 GitHub를 참조하세요.
https://github.com/steemit/steem-python

첫번째 관문 - 설치

파이썬3 설치

첫번째 관문은 Python3 설치하기 입니다. python3을 설치하시고 나서, 명령프롬프트에서 python 이라고 입력했을때 Python이 실행되도록 설정하시면 이 강좌를 따라오실 수준이 된다고 생각합니다.
https://zetawiki.com/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_Python_3_%EC%84%A4%EC%B9%98

접근하기 쉬운 곳에 작업 폴더를 하나 만들어 두세요. 그곳에서 작업합시다.

코딩을 하기 좋은 에디터를 하나 설치해 두세요. 개인적으로 강력히 추천하는 툴입니다. MS 에서 만든 무료 캐주얼 코딩 툴입니다.
https://code.visualstudio.com/

steem-python 설치

다음 명령어를 입력하셔서 steem-python을 설치하세요.

pip install -U steem 

시스템에 Python2.7이 이미 깔려있으면 pip이 아니라 pip3으로 하셔야될수도 있습니다. Python2.7이 깔려있다는건 개발에 손좀 담그신 분일테니 부연설명 생략합니다.

드디어 시작 - 가벼운 발걸음

첫회이고 비개발자 대상이니, 커맨드라인을 통해서 한줄한줄 가지고 놀아보는 방식으로 설명드리겠습니다. 자 파이썬을 실행하세요. 버전 꼭 확인하시구요.

$ python
Python 3.6.2 (default, Jul 17 2017, 16:44:45)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

오늘 사용할 Post 모듈을 로딩해봅시다.

>>> from steem.post import Post

자 로딩 되었습니다.

글의 ID를 이용하여 글을 불러와 봅시다. 글의 URL을 보면 @아이디로 시작하는 부분이 있는데, 거기부터 끝까지가 글의 ID로 사용됩니다. 아래 링크를 한번 보시지요.

https://steemit.com/kr/@lindaflyhigh/3zhmuz

이 글의 ID는 "@lindaflyhigh/3zhmuz" 입니다. 이 값으로 글을 읽어올 수 있습니다.

>>> p = Post("@lindaflyhigh/3zhmuz")

Post라는 모듈에게 "@lindaflyhigh/3zhmuz" 에 해당하는 글을 읽어오게 한 후 p 라는 변수 에 저장해라 라는 의미입니다.

위의 설명대로, 이렇게 하면 파이썬이 해당 글을 읽어서 p라는 변수에 저장하게 됩니다. P는 Post라는 객체인데, 세부 기능들은 나중에 사용해보기로하고 이번에는 내용을 읽는 용도로만 사용 해 볼게요. 우선 아래를 입력 해 보세요. 그러면 뭔가 복잡해보이는 메시지가 출력됩니다.

>>> dict(p)

[IMAGE: https://steemitimages.com/DQmVCmrVi9bckdL6DFSFqvr9cQGMupgXYDZWwVE5G9ZSJLw/Screen%20Shot%202017-09-23%20at%2011.09.16.png]

언뜻 보아도 글에 대한 내용을 담고있다는것은 알겠지요? Python의 Dictionary라는 구조인데, 복잡한 데이터를 체계적으로 담을 수 있습니다. 이제 이 Post 객체에서 원하는 내용을 가져와 볼게요.

글 저자 아이디를 한번 가져와 볼까요?

>>> p['author']
'lindaflyhigh'

글의 저자 ID인 lindaflyhigh가 출력되네요.

이번에는 제목과 본문을 읽어봅니다.

>>> p['title']
'이번 주말은 모카와 함께~ 모카 목베개를 사주었어요'
>>> p['body']
'![1506131305004.jpg](https://steemitimages.com/DQmUdbUrBC6ZKeQdZiFABpTbWSXUYDb1zRWFeBGfTyjsPCF/1506131305004.jpg)\n\n
안녕하세요 린다입니다\n\n주말이라 오랜만에 회사 기숙사에서 나와 본가로가서 우리 모카랑 주말을 즐겁게 보내고 있습니다.\n![1506131302203.jpg](https://steemitimages.com/DQmSQMivuHk1rgHJGmL55bkTuB6mMN5becwgD6sdLWfTFPi/1506131302203.jpg)\n\n
모카가 엉덩이에 알러지에 걸려서.. 간지러운지 자꾸 핥아요..ㅠ.ㅠ 그래서 못하게 막기위해 목베개를 사주었습니다. \n![1506131292874.jpg](https://steemitimages.com/DQmf4o2qNfJripG6p8XrgidQ5K4Rzyhyy5UybPxuyPznRu8/1506131292874.jpg)\n\n병원에서 해줬던게 있었는데 그건 불편했나본지.. 너무 힘들어하는거 같아서 목베개로 바꿔줬는데 지금은 편한가보네요 ㅎㅎ 정말다행이에요 \n\n
![1506131295126.jpg](https://steemitimages.com/DQmYPKjFELhb93EQCihn3PHVf3nVqmHcjW5EaDQrQtGkF6U/1506131295126.jpg)'

이처럼 마크다운 스타일 자체가 출력 됩니다. 따라서 복사해서 그대로 붙이시면 토씨하나 틀리지 않고 그대로 동일한 글을 적을수 있지요.

태그를 한번 읽어와 보겠습니다.

>>> p['tags']
('kr', 'kr', 'kr-life', 'kr-pet', 'animals', 'kr-newbie')

대표태그 (kr)과 전체태그가 함께 리턴 됩니다.

글보상이 얼마나 되는지 한번 볼까요?

>>> p['pending_payout_value']
0.021 SBD

해당글에 보팅한 내역도 보실 수 있습니다.

>>> p['active_votes']
[{'voter': 'enomujjass', 'weight': 83955, 'rshares': '7924010656', 'percent': 200, 'reputation': '4924889423377', 'time': '2017-09-23T05:03:27'},
{'voter': 'kromtar', 'weight': 10007, 'rshares': 96846235, 'percent': 300, 'reputation': '113631815090', 'time': '2017-09-23T02:27:45'}]

이 외에도 수많은 정보를 가져올 수 있는데, 차차 필요할때마다 알아보기로 하겠습니다.

지금까지 아주 기초적인 내용으로 steem-python으로 뭘 할수있는지 예시를 보여드렸습니다. 이 내용을 하나의 묶음으로 만들어서 반복해서 실행하고 싶으시다면? 소스파일을 만드시면 됩니다. 원하는 폴더에 test.py 라는 파일을 생성하신 후, 다음 내용을 입력하시고 저장하세요.

from steem.post import Post

p = Post("@lindaflyhigh/3zhmuz")
print ('Author: %s' % p['author'])
print ('Title: %s' % p['title'])
print ('Body: %s' % p['body'])
print ('Tags: %s' % p['tags'][0])
print ('Value: %s' % p['pending_payout_value'])
print ('Votes: %s' % ([x['voter'] for x in p['active_votes']]))

그런후에, 해당 파일이 있는 곳으로 커맨드 창을 열어서 커맨드 프롬프트에 다음과같이 실행합니다. 그럼 아래의 결과를 보실 수 있을겁니다.

python test.py

[IMAGE: https://steemitimages.com/DQmak3gw96Xk678WvjRXapn3j5L4SwF7AJuSxMvTyUEL37n/Screen%20Shot%202017-09-23%20at%2011.43.42.png]

앞으로는 이렇게 파일로 실행하는 방식으로 알려드릴게요. 다음에는 steem-python을 이용해 글 포스팅하는 방법을 소개해 드리겠습니다.

TAGS: [ #kr ] [ #kr-dev ]

Replies

@ipkiss | Sept. 23, 2017, 11:26 a.m. | Votes: 0 | [ VOTE ]

Upvoted & RESTEEMED!

@asbear | Sept. 23, 2017, 1:33 p.m. | Votes: 0 | [ VOTE ]

cheers

@jiuun | Sept. 23, 2017, 11:27 a.m. | Votes: 0 | [ VOTE ]

보기만해도 어마무시한데요...?

@asbear | Sept. 23, 2017, 1:35 p.m. | Votes: 0 | [ VOTE ]

꼭 관심있는 비개발자 분들이 나타나 주실거라고 믿으며.. 계속 써볼랍니다 -_ㅜ

@gichan | Sept. 23, 2017, 11:31 a.m. | Votes: 0 | [ VOTE ]

역시 능력자십니다 ㅎㅎ

@asbear | Sept. 23, 2017, 1:34 p.m. | Votes: 0 | [ VOTE ]

기찬님도 슬슬 참여 준비 하고 계신가요?

@gichan | Sept. 23, 2017, 1:51 p.m. | Votes: 0 | [ VOTE ]

요새 편입 공부때문에 많은시간 수학에만 시간을 쏟아 버렸습니다...일단 facemaker님이랑 연락이 되면 이야기 한번 해봐야 할거 같습니다

@segyepark | Sept. 23, 2017, 12:04 p.m. | Votes: 0 | [ VOTE ]

이것은 필요한 포스트. 나에게 개발자.
필요한 풀보팅 그리고 리스팀. 너의 포스팅 아름다운 감사한다.

@asbear | Sept. 23, 2017, 1:33 p.m. | Votes: 0 | [ VOTE ]

ㅋㅋㅋㅋ 세계님 아직 로봇이 되시기에는 멀었군요. 휴머니즘이 느껴집니다.

@segyepark | Sept. 23, 2017, 2:05 p.m. | Votes: 0 | [ VOTE ]

휴머니즘을 좀더 버려야겠군요 ㅎㅎ 혹시 가이드독 부르시면 어떻게 하나 걱정했는데 기우였네요 ㅋㅋㅋ

@asbear | Sept. 23, 2017, 9:14 p.m. | Votes: 0 | [ VOTE ]

댓글신고기능만 있었어도 부르는건데..!! 에잇 ㅎㅎㅎ

@nhj12311 | Sept. 23, 2017, 12:05 p.m. | Votes: 0 | [ VOTE ]

https://i.imgur.com/9jVZSYf.gif

@asbear | Sept. 23, 2017, 1:34 p.m. | Votes: 0 | [ VOTE ]

ㅋㅋㅋㅋㅋㅋ 이거 뭽니까 ㅋㅋㅋ 요즘 짤방놀이에 재미들리신듯.. ㅎㅎ

@beatblue | Sept. 23, 2017, 1:33 p.m. | Votes: 0 | [ VOTE ]

많은 비개발자분들이 관심을 가지시겠네요~ ^*

@asbear | Sept. 23, 2017, 9:15 p.m. | Votes: 0 | [ VOTE ]

빗블루님 좋은주말입니다. 맞습니다. 관심가진분이 계시면 저도 재밌을것 같습니다 ^^

@nps0132 | Sept. 23, 2017, 1:49 p.m. | Votes: 0 | [ VOTE ]

@_@ ;; 아직은 봐도 모르겠지만 한 번 더 , 두 번 더 보면서 최대한 이해하려고 노력해보겠습니다 .

@asbear | Sept. 23, 2017, 9:21 p.m. | Votes: 0 | [ VOTE ]

우선 python3 프로그램을 설치하시는데까지라도 진행 해보세요! ^^

@siapa0516 | Sept. 23, 2017, 2:19 p.m. | Votes: 0 | [ VOTE ]

오! 감사합니다.
새로운 걸 익혀볼 수 있는 좋은 기회가 또 만들어지네요! ㅎㅎ

@asbear | Sept. 23, 2017, 9:16 p.m. | Votes: 1 | [ VOTE ]

질문 기다리겠숩니다!! ㅎㅎ 문서화가 잘되어있어 조금만 만지작거리면 감이 오실겁니다. ^^ 과감하게 도전해 보세요!

@umkin | Sept. 23, 2017, 2:24 p.m. | Votes: 0 | [ VOTE ]

안그래도 짱구굴리는중이었는데 대박 ! 이거 몇편까지나옵니까 ?! 봇 만들고 싶어요

@asbear | Sept. 23, 2017, 9:18 p.m. | Votes: 0 | [ VOTE ]

이게 문서화가 잘 되어있는데 개발자가아니면 조금 난해하니까 제가 중간에서 손붇들고 끌고가드릴라고 합니다. 아주 간단한 봇 만드는것은 쉽습니다. 잘 따라와 보세요~ ^^

@skt1 | Sept. 23, 2017, 3:21 p.m. | Votes: 0 | [ VOTE ]

제목에서 혹하고, 모든 내용을~ 두번 정독 했습니다~ ^^...
다음편을 기대 할께요~!!
steemdb나 steemsql을 사용하지 않고 가능하다는 것에 ~ 큰 기대를~^^ㅣ 하게 됩니다.

전. 개발에 'ㄱ'도 모른답니다~!!
감사합니다~!!

@asbear | Sept. 23, 2017, 9:19 p.m. | Votes: 0 | [ VOTE ]

skt3님 파이썬을 우선 설치 해 보세요.. ^^ 시작이 반입니다~!!

@skt1 | Sept. 24, 2017, 2:37 a.m. | Votes: 0 | [ VOTE ]

그럼요 그럼요.. 링크 주신데 따라서~ 아나콘다 파이썬 3.6 설치 완료 했습니다~! ^^

@bacadi151 | Sept. 23, 2017, 6:57 p.m. | Votes: 0 | [ VOTE ]

포스팅 잘 보았습니다.

파이썬3는 아직 너무 어려워요 ㅜㅜ

@asbear | Sept. 23, 2017, 9:20 p.m. | Votes: 1 | [ VOTE ]

일단은 설치부터 시작해 보세욧!! ㅎㅎ

@cheerup | Sept. 23, 2017, 7:04 p.m. | Votes: 1 | [ VOTE ]

Cheer Up! 많은 사람들이 이 포스팅에 관심을 갖고 있나봐요!
- from Clean STEEM activity supporter

@sjchoi | Sept. 23, 2017, 10:41 p.m. | Votes: 0 | [ VOTE ]

음..엄두가 안납니다..

@asbear | Sept. 24, 2017, 9:13 a.m. | Votes: 0 | [ VOTE ]

음... 더쉬운방법을 모색해봐야 할듯하옵니다 ㅎㅎ

@umkin | Sept. 23, 2017, 11:22 p.m. | Votes: 0 | [ VOTE ]

steem-python 설치 를 파이선 프로그램을 켜고 하는게 맞나요? pip install -U steem 를 입력했더니 이런 메시지가 뜨는 ㅜ 뭔가 놓치고 있는것 같은데

[IMAGE: https://steemitimages.com/DQmWrMomeSQWFxPocEAEyZemcLaTXMTwjb3VHnQfvm8jqRc/image.png]

@asbear | Sept. 24, 2017, 7:20 a.m. | Votes: 0 | [ VOTE ]

파이썬에서 하시는것이아니라 커맨드라인에서 하셔야 합니다.. 제가 윈도우에서 한번 설치 해 보고올게여 ㅎㅎ

@myhappycircle | Sept. 23, 2017, 11:25 p.m. | Votes: 0 | [ VOTE ]

꺅!!! @asbear님~~~ 너무 감사 감사 합니다. 저 2편 올리신거 보고 일편 먼저 볼라고 여기 들어왔어요. 일단 다운 다 받았고요. 댓글 먼저 쓰느라 아직 인스톨 못했습니다. 가서 인스톨 하고 2편으로 넘어가겠습니다. 감사합니다~

@asbear | Sept. 24, 2017, 9:12 a.m. | Votes: 0 | [ VOTE ]

일단 놔두셔요 ^^ steem-python이 윈도우에서 설치가 잘 안되는것 같습니다. 여차하면 NodeJS로 강좌를 변경해야할것 같습니다. ^^

@dachshund | Sept. 24, 2017, 7:41 a.m. | Votes: 0 | [ VOTE ]

비전공자로서 너무 신기한 세상이네요.... 제가 아직 스티밋에 대해 잘 모르는데 스티밋에는 개발자/비개발자가 따로 있나요? 제가 비개발자이니.. 개발자라 하면 스티밋 개발자들을 칭하는 건가요 아니면 asbear 님같이 파이썬 등을 이용해 자체적으로 개발/발전하시는 분들을 지칭하는 건가요??

@sochul | Sept. 24, 2017, 12:46 p.m. | Votes: 0 | [ VOTE ]

진짜 좋은 내용인것 같은데
완전 컴맹인 제게는 장풍쏘는 방법을 알려주시는 듯한 느낌이라 ㅠㅠ
> '하얀건 종이요 까만건 글자이니라'

이런 앎만 얻고 갑다 ㅠㅠ

@asbear | Sept. 24, 2017, 10:11 p.m. | Votes: 0 | [ VOTE ]

소철님!! 제가 꼭 소철님을 ... 코딩의 세계로 모시겠습니다. 매우 간단하게라도.. 단 한줄이라도 돌려보실수 있도록.. 꼭!!!!!!!!!! 사명감을 갖고!!!!!!

사실 전에 수작업으로 소철님의 지난 1년 분석을 하신것을 읽고.. 그렇게 다짐 했었는데.. 목표를 꼭 이뤄보렵니다. ㅎㅎ

@sonsie | Sept. 25, 2017, 4:22 p.m. | Votes: 0 | [ VOTE ]

외계어 같아요ㅡㅜ 제 컴 교체한지가 얼마안돼 사실 뭐하나 겁나서 깔지도 못해요ㅎㅎㅎ 뭘 잘못 깔았다 컴터에 문제라도 생길까 애지중지하고 있답니다. 제껀 일단 윈도10인데 설명하신 대로 깔아도 문제없겠죠?
한번 도전해 볼까요?ㅎㅎ; 제 분야 아닌 건 도전하기에 겁부터 나네요ㅋ
나중에 시도는 해보고싶은 생각이 들어요. 그리고 일단 리스팀~^^

@asbear | Sept. 25, 2017, 4:41 p.m. | Votes: 0 | [ VOTE ]

안깔고 할수있는쪽으로 다시 시작할게요 깔지마시고 조금만 기다려 주세요 ^^!!!

@sonsie | Sept. 25, 2017, 4:55 p.m. | Votes: 0 | [ VOTE ]

뭔가 또 다른 방법이 있군요. 알겠습니다. 기다릴께요^^

@twinbraid | Sept. 25, 2017, 6:12 p.m. | Votes: 0 | [ VOTE ]

+_+ 오옹.. 좋은 내용감사합니다.
저도 해보고 싶었는데 윈도우 설치가 빡세서 막혀있네요ㅠㅠ;

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>