0. 어서와요 프린이들. 매일 야매코딩 해봐요.
코딩 1도 몰라도 일단 따라하면 되는, '누구나' 하는 야매코딩 시리즈입니다.
누구나 만들어보는 스팀봇! 강좌 둘째 편에 오신 것을 환영합니다.
반가워요 프린이(프로그래밍 어린이) 여러분!
혹시 처음 오셨다면, 소개편이 있습니다.
저번 편에서 함께 본격부엌임대회사 구글로부터 똑같이 부엌(VM인스턴스)을 빌려봤죠?
혹시 아직 못 빌려왔다면 먼저 준비해오셔야 이번 개발 환경설정 따라하기 파트를 수월히 따라올 수 있을겁니다. 직접 한 번 해보는게 백 번 읽는 것보다 훨씬 효과적이죠!
스팀봇이라는 레시피(코드 예제)를 익히기에 앞서 많은 준비 단계가 필요합니다.
이번 편에서는 봇을 만들기 앞서, 마지막 준비로 부엌에 조리기구들을 갖춰볼겁니다. 아직은 기본 세팅만 되어 있어요.
그럼 함께 Conda 설치를 해봅시다 :)
A. 개발 환경설정 따라하기 I - Google Cloud 세팅
B. 개발 환경설정 따라하기 II - Conda 세팅 ☜
C. 스팀 API 설치 및 살펴보기 101
D. 스팀 API 심화, 블록체인 & 포스트
E. 예제로 따라하는 스팀봇 뚝딱
F. nohup으로 자동화, 알아서 언제나 24/7
그럼 본격적으로 시작해볼까요?
- 난이도: 下
- 소요시간: 약 20분 이내
이미지 출처 - https://dribbble.com/shots/3974885-Bumblebee by Pat Grivet
1. 우선 부엌에 입장~!
Conda? 으아닛 이건 또 뭘까요?
우선 미리 만들어본 구글 클라우드 콘솔 사이트로 이동해볼까요?
이미 구글에 로그인 하셨다면, 여기 클릭을 하면 되요 :)
콘솔(Console) 화면은 기본 설정으로 대시보드를 띄우고 있습니다. 대시보드는 프린이 여러분이 구글 클라우드에서 활동 및 임대한 내역을 한 눈에 요약해서 보여주죠. 지금은 부엌(VM인스턴스) 하나지만 나중에는 열 개가 될 수도 있잖아요?
지금 알 필요는 없지만 추가로 대시보드를 살펴보자면, 리소스 항목 아래 Compute Engine 인스턴스 1개 써있죠? 이게 함께 빌려본 부엌(VM인스턴스)라는거 느낌 오죠? 계속 켜있었다면 Compute Engine 항목 아래 CPU(%) 그래프는 자리를 비운 동안 얼마나 열심히 가동중이었는지 보여준답니다.
그럼 VM인스턴스를 이전 편 마무리 때처럼 띄우기 위해 리소스 항목에 Compute Engine을 눌러주세요.
그리고 기억하시죠? 연결 아래 SSH 버튼을 눌러주면 임대한 VM인스턴스에 접속하게 됩니다.
무사히 접속해서 아래와 같은 검은 화면이 보이나요?
그럼 하단에 입력을 기다리고 있는 빨간 영역이 보이겠네요.
구글로부터 임대한 부엌(VM인스턴스)를 이용하려면 '리눅스 명령어'라는걸 사용해야 해요.
새로운 개념이 두 개 있죠? 리눅스 그리고 명령어.
별거 없어요. 예를 들어 윈도우10 운영체제(OS)가 설치된 노트북이 있으면, 어떻게 사용하죠? 프린이랑 노트북이 어떻게 소통하나요?
마우스에 손을 얹어 인터넷 브라우저를 클릭, 키보드를 통해 URL 클릭해서 steemit.com을 입력하고, 야매코딩 강좌를 찾아 마우스 스크롤을 움직이고, 업보트랑 리스팀을 클릭하죠?
부엌(VM인스턴스)도 똑같아요. 구글이 빌려준 가상의 컴퓨터잖아요.
다만 윈도우 OS 중에서 윈도우10 버전이 깔린 대신 Linux(리눅스) OS 중에서 Ubuntu 17.10 버전이 깔렸을 뿐이죠.
그리고 클릭을 할 수 있는 화면 대신 텍스트만 입력할 수 있는거죠. 여기서 입력할 텍스트가 명령어입니다.
그게 답니다. 이미 익숙한 컴퓨터인데, 그냥 다르게 생겨먹은거죠.
추가: 제 부족한 드립으로 인해 기억하시련지 모르겠지만, Ubuntu 17.10은 부엌(VM인스턴스) 임대하기 앞서 스펙을 선택할 때 '유럽풍 인테리어에 50평'로 언급된 바가 있어요 :)
2. 부엌을 깔끔하게, 업데이트 해봐요
자 이제 명렁어를 좀 써볼까요?
이렇게 표시된 영역
은 그대로 복사해서 VM인스턴스 화면을 클릭한 뒤 붙여놓기 하면 됩니다. 물론 직접 타이핑 해도 상관 없어요!
따끈따끈한 노트북을 처음 딱 구매하고 키면 막 이것저것 윈도우 업데이트 하라고 뜨는거 본 적 있나요?
공장에서 노트북이 나올 때 이미 기본적으로 설치되었는데, 배달될 때까지 창고에 좀 있다 오다보니 그 사이 윈도우에서 업데이트를 내놓는 경우가 있어요.
왜 업데이트 나올까요? 다양한 이유가 있겠지만 주로 그사이에 보안이 허점이 발견 될 때입니다. 그럼 당연히 어서 보안 패치 업데이트 적용시켜야 노트북이 안전하겠죠?
마찬가지로 부엌(VM인스턴스)도 구글로부터 임대를 받고 나니, 먼지가 좀 쌓여있고 그러네요?
요리를 할텐데 그럼 안 되죠. 깨끗하게 청소해줍시다.
화면에 아래와 같이 써주고(혹은 복붙) 엔터를 눌러주고 기다려주세요. 항상 엔터를 눌러줘야 입력한 명령어가 전달되는겁니다!
sudo apt-get update && sudo apt-get upgrade
그럼 막 뭐라고 줄줄이 알아서 나오죠? 간지도 좀 나고
그러다 덜컥 멈출겁니다. Do you want to continue? [Y/n]라고 묻네요.
업데이트 할 목록이 확인됐는데, 적용하겠냐는 질문인데 당연히 해야겠죠?
y
를 입력하고 다시 엔터를 쳐줍시다. 그럼 또 알아서 뭐라뭐라 나올겁니다.
잠시 기다리는 동안 방금 사용한 명령어를 살펴볼까요? 명령어를 보면 사이에 &&가 있죠? 사실 명령어가 2개였다는 사실! sudo apt-get update (업데이트) 먼저 하고 다음은 이어서 sudo apt-get upgrade (업그레이드)하라! 라는 뜻을 갖고 있죠.
부엌(VM인스턴스)에 내린 명령어가 수행이 다 되면 아래와 같이 다시 새로운 명령어를 기다리는 대기 상태가 되요.
이제 부엌이 좀 삐까뻔쩍해졌군요!
자 이제 드디어 조리기구를 갖출 차례입니다.
3. 마지막으로, 조리기구 세팅의 달인, Conda를 소개해요.
다시 부엌과 요리를 생각해볼까요?
새로운 집에 막 이사하면 부엌에 기본적으로 싱크대, 가스렌지, 오븐 정도 갖춰져 있죠?
그런데 지름신 가라사대 냄비나 프라이팬은 기본이고, 감자를 깎고 싶으면 감자칼을 사게 되고, 쉐이크를 먹으려면 믹서기가 필요하고, 제빵에 취미가 생기면 미제 반죽기계를...... 아, 아무튼!
어떤 요리를 하느냐에 따라 필요와 용도에 맞춰 조리기구들 장만하고 꺼내야겠죠?
제빵할 때 필요한 조리기구, 서양식 아침을 할 때 필요한 조리기구, 된장찌개를... 요리에 따라 필요한 조리기구들이 딱 꺼내지고 사용하기 딱 좋은 자리에 놓여지면 편하잖아요?
복잡해서 조리기구들끼리 부딪힐 일이 없고요. 프로그래밍 할 때도 마찬가지입니다.
코딩하고 싶은 프로그램에 따라 버전 충돌 등의 문제들을 염두 둬야 해요.
이제 설치해볼 Conda가 마침 딱 세팅의 달인입니다.
wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
이번 입력할건 좀 길죠? 복사붙여놓기를 추천드립니다.
"뒤에 URL주소로부터 Conda 설치파일을 다운 받아와!!"라는 명령입니다. 입력 후 당연히 엔터 누르시면 다운로드가 진행되는 것을 확인할 수 있습니다.
한 번 잘 다운 받았는지 확인해볼까요?
ls
이번 명령어는 현재 위치에 있는 폴더 및 파일들을 다 보여줘! 라는 뜻입니다.
텅텅 빈 바탕화면에 방금 받은 Conda 설치파일 하나 있는 셈이죠.
자 그럼 설치파일을 실행해봅시다 :)
bash Anaconda3-5.1.0-Linux-x86_64.sh
그대로 입력하고 엔터를 누르니, 또 다시 엔터를 눌러달라고 하죠?
해줍니다. 그리고 정지된 텍스트 화면이 나오는데, 하단에 보면 --More--이 보일겁니다. 아래와 같은 화면이 보일때까지 엔터를 연타로 몇 번 쳐주세요.
프린이를 위한 토막 상식: 설치파일 확장명이 ~~.sh네요? sh는 shell 즉 껍데기입니다. bash는 '쎄게 때리다'라는 뜻을 가지죠. 즉 껍데기를 뿌셔버림으로 안에 있는 내용물(설치파일들)이 VM인스턴스로 흘러나오는겁니다
yes
라고 타이핑 & 엔터 직후 또 입력을 물어봅니다.
만능 세팅 달인 Conda를 설치할 위치를 묻네요. 그냥 엔터를 한 번 쳐주면 됩니다.
잠시 화면이 정지된 것처럼 보일 수 있는데 설치중이니 기다려주세요 :) 좀 설치할게 많을겁니다.
설치가 끝나면 다음과 같은 문구가 뜹니다. Do you with the installer to prepend the Anaconda3 install location to PATH in your ~~~ ? [yes|no]
무조건 yes 입력해주세요! 꼭입니다!
드디어 Conda 설치가 끝났습니다! 준비는 거의 끝이네요!
여기까지 따라오느라 수고 많으셨습니다 프린이 여러분!
라고 말하는 와중에...
Microsoft VSCode 설치하겠냐고 묻네요? 상큼하게 no
응아니야를 시전해줍시다.
알집, 알약, 알송 형제들처럼 제휴 프로그램 설치하라는거니까 필요 없어요 :)
자 이제 부엌(VM인스턴스) 화면을 닫아줍시다. 더 공부하고 싶다고요? 열정은 좋지만 우선 닫아주세요. 뭔가 큰거를 설치하고 나면 컴퓨터를 껐다켜주듯이 이것도 마찬가지입니다.
4. 마무리,
이번 (2) 개발 환경설정 따라하기 II: Conda 세팅 편에서 부엌(VM인스턴스)를 깨끗히 청소(업데이트&업그레이드)를 해주고, 요리하기 앞서 조리기구 세팅(필요 프로그램 설치)을 편하게 하기 위해 조리기구 세팅의 달인 Conda를 설치해봤습니다.
이제 다음 편부터는 본격적으로 스팀 API와 대화를 나눠볼겁니다.
hellocrypto: 스팀님from steem import Steem, 님s = Steem() 유저 몇 명 있어요s.get_account_count()?
STEEM: 안알랴쥼
hellocrypto: ...말이 짧다?
네 실제로는 알려줍니다.
열심히 준비를 했으니 다음 C. 스팀 API 설치 및 살펴보기 101 편부터는 이제 실전입니다! 재밌을겁니다! 아마
다만 제가 야근이 있을 예정이라 16일 밤에 글이 안 올라오면 17일 점저쯤 올라올겁니다!!
그동안 (아직까지 안 했다면) VM인스턴스 생성! 그리고 오늘의 Conda 설치까지 마무리해주세요 :) 이제 본격적으로 스팀봇 세계에 입문합니다.
궁금하신 점, 지적하실 점(환영합니다) 혹은 문제가 발생했다! 싶으면 댓글 언제든 남겨주세요. 빠른 답변은 아니겠지만(...) 대답드리겠습니다 :)
이만 일병 크립토였습니다. 필승!
앗! 혹시 읽어보셨나요?
☞ 크립토사가 CryptoSaga가 방금 메인넷에 런칭되었습니다!
바로 다음 편으로 가즈아!
C. 스팀 API 설치 및 살펴보기 101
프린이 여러분! 하루에 싸지방 쓸 수 있는 시간이 제한되어, 글 쓰고나면 댓글에 답변 달아드릴 시간이 몇 분 안 남습니다ㅠㅠ
씹는거 아니니조금 늦어도 양해부탁드려요 :)Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이것좀 확인해 주세요...
저는 분명 이전 게시물에 올라온 링크를 타고 무료평가판을 이용하기위해 정보만 입력했을 뿐인데 그 즉시 1,632원이 제 카드에서 출금되었습니다...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이전 게시물 댓글에 사진과 같이 댓글을 달아놨습니다.
이게 무슨일인지 설명좀 부탁드립니다...
분명 무료라고 하지 않으셨나요?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
출금 취소 처리됬네요... 문의해서 그런지
너무 순간적으로 당황스러웠습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
제가 본문에 언급을 못해서 당황하셨군요 :) 보통 해외 사이트들에서는 본인인증 대신 카드정보를 받습니다. 그리고 간혹 입력 직후 약 1불이 결제 되어 가짜 정보가 입력된건지 체크합니다. 이는 하루 내 혹은 일주일 내 취소되니 실질적으로 지출되는건 없습니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
완전 잼있네요
다음부터 본격이라니.. 정말 기대됩니다.!!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
야근이 취소되어버렸지만(...) 잘 준비해서 내일 오후 5시쯤 올리겠습니다! 기대해주셔서 감사합니다 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
우와...일단 눈으로 공부했다가 하루 날을 잡아서 실행해봐야겠어요! 감사합니다. :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
넵 완결(?)난 뒤에 한 번에 읽으시는것도 괜찮죠!! 저야말로 찾아와주셔서 감사합니다 @onehand님 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
무작정 따라하기 완료!!! 다음편이 너무 기다려지네요. ㅎㅎㅎ 좋은 시리즈 감사해요. 스파만 많으면 진짜 팍팍 밀어드릴텐데 죄송합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
어휴 아닙니다!! 읽어주시고 이렇게 댓글 남겨주는 것만으로도 힘이 팍팍 납니다 :) 내용 중에서 설명이 부족하거나 오히려 사족이 너무 많진 않나요? 어서 꾸준히 달려보겠습니다ㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오늘도 재밌게 따라했습니다 :) 감사합니다
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
아... 설명보면서 설치하는데 콘다 path설정 부분에서 화면보호가 켜진상태라 enter키를 눌렀더니... 그대로 no가 선택됬네요. 빌어먹을 디폴트상태... 만약 path설정할때 no를 실수로 해버렸다면 어떻게 해야할까요?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
방법을 못찾겠어서... 그냥 VM인스턴스를 삭제했다가 다시 시작했습니다;; 아직까진 잘 되는것같네요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
앗 여기에도 댓글 다셨군요. 다시 삭제했다 했는데도 마찬가지인가요?ㅠㅠ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
콘다 설치는 됬는데... conda라는 명령어 자체를 못찾더라구요. 아마 설치오류쪽의 문제가 아닌가 싶은데... ㅠㅠ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
믿고보는 야매강좌! 다음편이 기대되네요!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
아직 해보지는 못했는데 훗날을 위해서 리스팀 해둡니다. 좋은 자료 감사합니다 ^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
뭔가 쉬운 내용인 것 같네요
제 블로그에 말 없이 찾아와서 응원도 해주시고 감사합니다
팔로우해서 주말에 제대로 정독해보겠습니다
저도 봇에 관심이 많은데 좋은 정보가 많은 것 같네요
자주 자주 소통해요~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다. 자주 소통해요 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
3편 모두 즐겨찾기 후 집에서 정독하겠습니다!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
(감동) 감사합니다 :) 마저 열심히 쓰겠습니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
네..? 문순이도 할 수 있나요...?
일단 한번 볼까요.... 천천히..... 따라해보겠습니다....
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
저도 문돌이입니다! 경영전공이죠. 야매로 배운 코딩을 야매로 나눔하는게 이번 시리즈 목표입니다 핳핳 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
부엌 청소 ㅎㅎㅎ이건 진짜 초보도 따라할수 있을것같네요 ㅎㅎㅎ
다음포스팅부턴 더 기대되네요 ㅋㅋ 팔로우 하고 갈게요
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
에헿헿 감사합니다 :) 어서 준비해서 내일 업로드하겠습니다! 저도 팔로우했습니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
자주자주 포스팅해주세요
저는 요즘 자바를 공부하고있긴하지만 자주 놀러올게요 ㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오늘도 선풀봇 후감상합니다~
낼 야근 잘하세요 그나저나 요즘 휴x니x트는 폐쇄 안당하고 잘있나요? 아 이것도 말씀해주시면 혹시 문제가 될라나 ㄷㄷ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
앗 감사합니다 @heterodox님!! 아마 문제 없을겁니다 :) ㅎㅎ 대X게시판이 폐쇄됐다가 최근 부활한거 말고는 무사합니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
야호 2편이 벌써!? 보팅 및 리스팀 후 정독할께요 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
야호! 꾸준히 읽어주셔서 감사합니다 :) 어서 다음 글도 준비할게요
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
좋은 정보 감사합니다 ^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
넵 읽어주셔서 감사합니다 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @hellocrypto! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
!!! 힘찬 하루 보내요!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
지금 따라해보는데 conda 설치 후에 세션을 재시작해줘야 적용되는군요. 패스 등록 후에 쉘을 재시작해야 사용할 수 있나봅니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit