파이썬 + 스팀 : 대략의 큰 그림

by joviansummer
original STEEMIT post: https://steemit.com/blog/@joviansummer/6vzeti


스팀 어플리케이션은 기본적으로 스팀 블럭체인과 상호작용(조회하거나 기록하는 작업)을 통해서 서비스/기능을 제공합니다. 우리가 글을 읽고 쓰는 스팀잇도 스팀 블럭체인과 상호작용하는 기능을 웹을 통해서 제공하는 서비스라고 볼 수 있습니다.

스팀 어플리케이션과 스팀 블럭체인을 연결해주는 역할은 퍼블릭 API 노드(public API node)에서 합니다. 대표적인 노드가 https://api.steemit.com입니다. 퍼블릭 API 노드와 통신을 하면서 특정한 서비스/기능을 제공할 수 있는 프로그램을 만들면 스팀 어플리케이션이 됩니다.

필요할 때만 잠깐 실행하는 형태가 아니라 - 예를 들어 @jsup 또는 @jswit 프로젝트처럼 - 여러 사용자에게 24시간 제공하는 서비스라면 별도의 서버를 구축해서 운영하게 됩니다. 이 경우에는 어플리케이션 개발과 함께 서버 운영관리가 이루어져야 합니다. 따라서, 어플리케이션 개발과 함께 리눅스 서버 관리도 필요하게 됩니다.

이렇게 써 놓고 보니 어째 내용이 "해 볼 만하다"가 아니라 "골치 아픈 일이다"처럼 된 것 같은데요. 결론적으로 "좀 골치 아픈 문제들이 있지만 그래도 나름 해 볼 만하다" 정도로 생각해 주시면 될 것 같습니다. 선뜻 덤벼들기에는 진입 장벽이 있는 것이 사실입니다만, 사용자가 적고 기능이 아주 복잡하지 않다면 라즈베리파이 같은 싱글보드 컴퓨터로도 충분히 소화할 수 있을 것입니다.

사실 제가 작업을 하면서 가장 크게 느꼈던 스팀 서비스 개발의 실질적인 장애물은 스팀 어플리케이션에 대한 자료와 개발 예제가, 특히 한글로 된 자료가 풍부하지 않아서 직접 이리 저리 시험을 하고 시행착오를 겪어가며 보내는 시간이 은근히 많다는 점이었습니다. (저라도 여건이 될 때마다 포스팅을 해야겠군요)

어플리케이션 개발은 자바스크립트, 파이썬, 루비 등 여러 가지 프로그래밍 언어로 가능하고, 제가 사용하고 있는 언어는 파이썬입니다. 스팀을 위한 파이썬 라이브러리에 대해서는 다음번 "파이썬 + 스팀" 포스팅에서 살펴보겠습니다.


@joviansummer의 스팀 프로젝트

스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)

jswit 증인 노드 프로젝트를 시작합니다.

jsup 업보팅(upvoting) 서비스 소개

jsup 수혜자 지정 기능 추가

Comments

Popular posts from this blog

GentBG will continue to burn STEEM, with reduced posting frequency

GentBG - why bother to burn STEEM?

jsup 2.1 - investor's relief (experiment on separation of investment and SNS)