[맨땅에서 스팀봇까지] #1. 스팀봇 연재 개요 및 개발환경

in #kr9 years ago (edited)
연재 개요

이 글의 목적은 스팀잇에서 자신을 대신하여 (미리 쓴) 글을 올리거나 게시물에 보팅을 하는 프로그램을 개발하는 것입니다.

특히, IT관계자가 아닌 일반 사용자들도 자신만의 프로그램을 개발할 수 있도록 쉽게 서술하는데 목표를 두고 있습니다.

참고로, 여기서 말하는 프로그램을 통상 봇(bot, robot의 축약)이라고 부르며, 게시물을 올리거나 보팅을 하는 봇을 통칭하여 스팀봇이라고 하겠습니다.

프로그래밍이란

프로그래밍 경험이 없는 분들을 위해 컴퓨터와 프로그램의 관계를 잠시 설명드리면, 컴퓨터라는 하드웨어를 동작하여 원하는 목적이나 기능을 얻으려면 명령어를 입력해야 합니다.

사람과 컴퓨터 하드웨어 사이에서 통역 역할을 하는 운영체제(OS)에는 '하드에 데이터를 저장해라'라던가, '모니터에 그림을 출력해라'와 같은 명령어들이 셀 수 없이 많이 존재합니다.

하지만 이 운영체제의 명령어들을 일반인들이 공부해서 사용하기는 너무 어렵고 비효율적입니다.

그래서, MS와 같은 회사가 워드프로세스나 엑셀과 같이 좀 더 고차원적인 목적을 위해 운영체제에 있는 명령어들을 잘 조합하여 독립적인 프로그램을 만들어 팔기도 합니다.

이렇게 명령어들을 조합하여 일련의 기능을 수행하도록 하는 것을 프로그래밍(개발)이라 하며, 독립적인 프로그램을 소프트웨어(S/W)라고 부릅니다. 우리가 개발한 봇도 소프트웨어입니다.

프로그래밍 언어와 라이브러리

스팀봇을 개발하기 위해서 운영체제의 명령어를 직접 쓰는 것은 매우 비효율적입니다. 사실 일반적인 프로그래머들도 운영체제의 명령어를 그대로 사용하여 프로그래밍을 하는 것은 매우 어려운 일입니다.

그래서, 프로그램을 보다 쉽게 짜기 위한 프로그래밍 언어들이 등장하는데, C나 Java와 같은 어려운 언어에서부터 Python, Javascript와 같은 좀 더 쉬운 언어, 그리고 Html이나 Css와 같은 특수 목적 언어까지 다양한 언어가 등장합니다.

프로그래밍 언어가 쉬울수록(하드웨어 명령어와 거리가 멀 수록) 비효율적이지만, 워낙 요즘 컴퓨터 성능이 좋아져서 개인 목적으로 사용하기에는 전혀 지장이 없습니다.

한편, 프로그래밍 언어 자체에는 아주 기본적인 기능만 존재합니다. 데이터를 저장하는 변수(또는 자료구조)를 선언하거나, 운영체제의 명령어를 호출하는 기능만 있습니다.

그래서 프로그래머가 프로그램을 짜는 과정에서 빈번히 사용되는 동작들을 별도의 파일로 저장해 놓고, 그 기능이 필요할 때마다 호출하여 사용하였는데, 이를 라이브러리라고 부릅니다.

어떻게 생각하면, 라이브러리가 충분히 많은 언어가 프로그래머 입장에서는 일일히 직접 개발할 필요 없이 쉽게 가져다 쓸 수 잇는 쉬운 언어가 된다고 볼 수 있습니다.

그리고, 최근 인기있는 언어들은 모두 문법이 쉽고 라이브러리가 많은데, javascript과 python가 현재 각각 1위와 2위를 차지하고 있습니다.

스팀봇 개발 환경

스팀잇은 블로그 서비스에 대한 API(프로그래밍 인터페이스로, 제3자가 스팀잇 서비스를 사람이 아닌 프로그램을 통해서도 이용할 수 있는 명령어들)를 개방하고 있습니다. 그래서 우리가 스팀봇을 만들수 있는 이유도 여기에 있습니다.

하지만 그 명령어들을 일반인들이 그대로 사용하기에는 역시 어렵고 비효율적인 바, 스팀의 운영주체 또는 제3의 개발자가 해당 명령어들을 잘 모아서 일반인들도 쉽게 사용할 수 있도록 라이브러리를 만들었습니다.

우리는 이 라이브러리를 호출하여 간단간단한 명령줄 몇개만 이용해서도 게시물을 올리고 보팅을 할 수 있는데, 안타깝게도 모든 언어에서 다 이 라이브러리를 사용할 수 는 없습니다.

우리가 비교적 큰 노력을 들이지 않고 이 라이브러리를 사용할 수 있는 언어에는 python과 node.js 정도가 있는데, python의 경우에는 선진국의 초등 교육과정에 포함되는 수준으로 문법이 쉽고, node.js는 javacript라는 과거 홈페이지 개발용 언어의 발전버전이라고 볼 수 있습니다.

다만 프로그래밍적 스킬이 비교적 더 적게 필요한 python의 경우에는 리눅스 운영체제에서만 스팀 라이브러리가 제대로 동작하기 때문에 선택의 여지 없이 스팀봇 개발에는 node.js를 선택하게 되었습니다. 리눅스를 배우는 것은 배보다 배꼽이 클 수 있기 때문입니다.

결과적으로 우리는 스팀봇을 개발하기 위해 윈도우, node.js 를 사용할 예정이며, 서론이 좀 길었는데 아래의 node.js 홈페이지에서 설치파일을 다운로드 받으면 개발환경 준비는 끝납니다.

홈페이지: https://nodejs.org/ko/
설치파일: https://nodejs.org/dist/v6.11.0/node-v6.11.0-x64.msi


ps.
참고로 말씀드리면 저는 개발자가 아니고 심지어 node.js는 처음 접하는 언어입니다. 하지만 IT가 점점 일상에 파고들어오는 시기에 저와 같이 새로운 언어 하나를 배워보시면 정말 좋은 기회가 되지 않을까 싶습니다. ^^

Sort:  

저도 배워보고싶은데 두려움이 앞서네요..ㅎㅎ 길잡이가 되어주셔요^^

지나친 칭찬이십니다 ^^

Node로 넘어오시나요?
자바스크립트의 맨붕이 기다리고 있습니다.
하지만 좌절 금지

인터넷으로 찾아보다가 일목요연하게 설명된 걸 찾아 서점에 가봤는데, 일단 책 두께들이 장난이 아니더군요. 'Do it! Node.js 프로그래밍' 책이 좋아보이던데, 가격도 가격이지만 프로그래머가 되려고 공부하는 것도 아니라서 아이스크림만 사먹고 왔네요. 몸의 양식만 늘어가는... ^^

유용한정보감사합니다 :)

봐주셔서 감사합니다 ^^

응원합니다. 코딩 어렵든데...

먹방에 최적화된 아이디를 가지고 계시군요? ^^ 스팀봇을 만들때 필요한 부분만 최소한으로 공부해야죠. 컴퓨터공학 분야가 넓고 깊어서, 전부 알려고 하다간 아무것도 못할만큼 방대한 것 같더라구요.

배워서 직접 만드는 거군요? 영어 공부를 하는 사람으로서 언어를 새로 배운다는 건 참 힘든 일인데요.. ㅠ.ㅠ

네, 직접 공부해서.. ㅠ.ㅠ 2000년대 초반에 다들 홈페이지 하나씩 있는게 부러웠는데, 이제 우리가 봇을 하나씩 키워보는 겁니다. 캬캬캬!!

나는 한국어 배운다.
여기 많은 일이

구글만 있으면 문제 없습니다~

node.js 쓰신다면 IDE는 vs code 추천합니다.
가볍고 ui 도 이뻐요. ㅎ

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.081
BTC 61264.97
ETH 1593.01
USDT 1.00
SBD 0.47