[분석] 스팀잇 '황금시간대'에 글을 올리자!
kr-dev·@hellocrypto·
0.000 HBD[분석] 스팀잇 '황금시간대'에 글을 올리자!
 # 0. **동일한 글을 썼더라도, 언제 올리냐에 따라 반응이 달라진다?** 기왕 글을 썼으니 **더 많은 스팀잇 유저들과 소통**하고 싶은건 당연지사. 그런데 **막상 몇 시에 올려야 좋을지**는 잘 모르겠다. - 유저들이 접속을 덜 했을 때 글을 올려두면 나중에 접속하면서 피드 1순위로 보이지 않을까? - 혹은 한참 붐빌 때야 말로 즉각적인 반응을 받으며 널리 읽힐까? 오히려 묻힐려나? - 사실 황금시간대는 없고 그냥 랜덤이야말로 답일까? # 아침에 기상하자마자 스팀잇 체크, 점심 때 커피 한 잔과 또 스팀잇, 퇴근하면서 스팀잇, 자기 전에도 스팀잇을 살피고 있다면... 당신은 **스팀잇 중독자!** **스팀 API를 통해 작은 궁금증을 해결**해보자 한다. # 1. 좋은 주말입니다 여러분 :) 일병 크립토 @hellocrypto 입니다. 그동안 군대 사지방 접속이 잘 안 되서 힘들었지만, 다행히 스팀 API 문서를 뽑아둬서 천천히 공부해볼 수 있었습니다. 실험 좀 이리저리 해본 뒤 나중에 '컴맹도 따라하는 스팀 API'(가제) 시리즈를 연재해볼까 합니다. **아무튼 바로 본론에 들어가겠습니다.** ### API 무엇? > API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. (위키피디아) ### ......? 스팀 API 무엇? > 스팀이 개발자에게 스팀 기능을 쉽게 접속/사용할 수 있게 공개한 '약속'입니다. 예를 들자면, 보팅봇 처럼 업보트와 댓글을 코드를 통해 자동화 시킬 수 있죠. # 이렇게 파이썬 언어를 통해 **단 3줄**로, ``` from steem import Steem s = Steem() s.get_account_count() ``` 현재 스팀에 가입된 총 유저 수는 766255명이라고 알 수 있죠. > **hellocrypto:** 스팀님*from steem import Steem*, 님*s = Steem()* 유저 몇 명 있어요*s.get_account_count()*? **STEEM:** 766255 **hellocrypto:** ...말이 짧다? # **황금시간대를 알아내기 위해 kr 태그 '최신글'을 스팀 API를 통해 불러옵니다.** ``` s.get_discussions_by_created({"tag": "kr", "limit": 3}) ``` 그럼 아래와 같이 글 하나당 수 많은 정보를 담은 결과가 돌아옵니다.  # 이중에서 **이번 분석에 활용될 정보는**: > - pending payout value (PPV): 예상 보상 > - children: 댓글 수 > - net_votes: 업보트 수 > - created: 작성 일자/시간 > - author: 작성자 > - permlink: 글 고유 링크 # 이를 이용해 스팀잇 황금시간대를 알아볼 수 있는 방법은 무척 많겠지만, 이번 글에서 **kr 태그를 가진 최신 글들을 마구 긁어와서** 일주일 간 어느 요일, 어느 시간대에 올린 글이 PPV, 댓글, 업보트가 가장 많았는지 알아보겠습니다. 글 작성하기 앞서 사전 코딩해본 결과, 이상하게도 스팀 API를 통해 글을 불러오니 **일주일 이상 과거 기록은 듬성듬성하게 돌아옵니다**. 노드 설정 문제인지, API 자체 문제인지 아직 잘 모르겠네요. 어쩔 수 없이 2.12~16 기간, 즉 **이번주 평일 기준으로 5일간**의 글 정보를 다뤄보겠습니다. # 2. kr 태그의 최신글 목록을 받아오는 **API는 아쉽게도 100개 제한**이 있습니다. ``` s.get_discussions_by_created({"tag": "kr", "limit": 100}) ``` 분명 **일주일 간 그 이상의 글이 발행**됐을텐데 말이죠? 다행히 방법은 있습니다! ``` # 1. 최신 100개를 가져온 뒤 list에 저장하고, newest_batch = s.get_discussions_by_created({"tag": "kr", "limit": 100}) ``` ``` # 2. 맨 마지막 글의 '작성자'와 '고유링크'를 기억해둡니다 author, permlink, created = newest_batch[-1]['author'], newest_batch[-1]['permlink'], newest_batch[-1]['created'] ``` ``` # 3. 그럼 처음 100개에 이어서 다음 100개를 불러올 수 있습니다 fetch_batch = s.get_discussions_by_created({"tag": "kr", "limit": 100, "start_author": author, "start_permlink": permlink}) ``` **이와 같은 방식을 계속 반복**하다보면, 6일 전인 **월요일 글까지 불러올 수 있죠** :)  그런 다음, 이번 분석에서 불필요한 16일(토), 17일(일), 그리고 11일(일)을 제거해주고 살짝 데이터 전처리를 해주면 준비 완료! **이번 주 평일 총 5일간 KR 태그를 지닌 글은 무려 8,031개!**  - **글 하나당 평균 약 5.43 PPV, 댓글 11.63개, 업보트 12.54** - **최다 기록은 251.974 PPV, 댓글 251개, 업보트 934개** ### A-1. 요일별로 수익(PPV)이 다를까?  **목요일**, 그리고 **특히 금요일이 다른 요일보다 살짝 더 높은 PPV**를 보이네요. ### A-2. 요일별로 업보트가 다를까?  **금요일이 유독 높습니다.** 아무래도 월요일 글들이 더 오래됐으니 금요일 대비 더 업보트가 누적되지 않았을까 싶었는데 그렇진 않네요. ### A-3. 요일별로 댓글 수가 다를까?  **화요일이 가장 댓글이 많네요.** 수, 목, 금 순으로 점차 낮아지는걸 보니 시간에 따라 누적량의 차이가 여기에 적용된걸 수도 있겠네요? ### B-1. 시간대별로 수익(PPV)이 다를까?  여러분이 가장 궁금했을 그래프입니다! **새벽과 아침이 가장 저조합니다.** **황금시간대는 22시와 18시가 압도적**입니다. 그리고 준(?)황금시간대는 23시, 12시, 19시네요. 그렇다면 **이론상 목/금에 22시/18시에 쓰는게 이상적**일 수도 있겠습니다 :) ### B-2. 시간대별로 업보트가 다를까?  **역시 22시에 폭발하네요.** ### B-3. 시간대별로 댓글 수가 다를까?  **댓글 수가 낮은 시간대가 몇몇 보이네요.** 새벽 올빼미들도 잠드는 4시, 저녁/퇴근 시간대의 18시가 가장 낮군요. ### C-1. 업보트가 많을수록 PPV가 높을까?  ### C-2. 댓글이 많을수록 PPV가 높을까?  **C 결과에서는 유의미한 패턴은 딱히 없습니다.** ### D. 요일별로 글 작성량   결과가 신기해서 코드가 잘못 됐나 싶었지만, 확인 결과 문제 없네요. **12일 월요일에 2,035개 글이 올라왔고, 금요일은 거의 반토막인 1,151개네요.** A 결과에서 금요일이 유독 PPV와 업보트 평균치가 다른 요일 비해 높은 이유가 여기서 밝혀지네요. ### E. 시간대별로 글 작성량   역시 재밌는 결과네요. **저녁시간대 진입부터 늦밤까지 글 작성량이 상대적으로 현저히 낮습니다.** # # # # 마치며, # **결론내자면 스팀잇 평일 황금시간대는,** # **1. 목요일과 금요일 18시 혹은 22시** **2. 요일 상관 없이 글 작성량이 낮은 저녁시간대도 괜찮아 보임** **3. 시간대 상관없이 업보트 수는 비슷하나, PPV 생각하자면 새벽은 피하자** # 이번주 5일치 데이터로만 분석했기에 **절대적인 결과는 아닙니다** :) 1월 전체로 분석했으면 더 정확한 결과였을텐데 아쉽네요. 스팀 API로 일주일 넘은 과거 기록 불러올 때 오류가 발생 이유를 빨리 찾아내봐야겠어요. # **사실 황금시간대를 알아도 딱 맞춰 글을 올리는건 쉽지 않습니다.** 그 외 많은 변수들도 있겠지만, 저희가 항상 스팀잇에 접속할 수 있는건 아니잖아요? 그래서 **스팀잇에 글을 예약해서 올릴 수 있는 웹서비스를 차차 만들어볼까** 합니다. 해외 서비스 몇 개 있긴 하지만 UI가 불편하고 무엇보다 영어입니다ㅠㅠ **제가 KR 커뮤니티에게 공헌하는 첫 프로젝트가 되지 않을까 싶습니다!** +) 아직 아이디어 단계로 매일 한 번 유저의 정보(팔로워 수, 댓글 수, SP 등등)를 기록하는 **아카이브**와 손쉬운 **봇 생성기**도 준비해보고 있습니다! # >**잠깐! 읽어보셨나요? :)** A. [[EVENT] 팔로워 100 돌파 이벤트! (6 SBD)](https://steemit.com/kr-event/@hellocrypto/event-100-6-sbd) B. [[분석] 스팀잇에서 '성공'하고 싶어졌다면?](https://steemit.com/kr-dev/@hellocrypto/5fu9wl) # >**앞으로 작성될 주제들:** A. 알파고를 학습시켜 새로 '창조'하는 포켓몬! B. ICO 투자 입문서 101 # **재밌었다면 업보트 & 리스팀 부탁드리며, @hellocrypto 를 팔로우 하시면 꾸준하고 알찬 글들을 만날 수 있답니다 :) 이상 ~~현실ㅠㅠ~~ 일병 크립토였습니다. 필승!**
👍 hellocrypto, jjjjabe, anomaly, lynxit, xkrrudfbs45, morningjo, thenextbeanthing, hkmoon, busy.org, twokk, kangsukin, olorin, ywha12, pss1019, hayanpk, neoteny, pianistklein, nemjun, kjyed, asbear, krguidedog, feyee95, sjchoi, happyberrysboy, joeuhw, extrashin, cheerup, makimaki2, seungjae1012, trueonot, nbelowp, zorba, tiny657, mdoo824, nhj12311, energizer000, icosession, traveler.terry, kim.together, creamer7, c1h, laymanstory, dakeshi, yarbongs, lengxiaohua, yhjm, tb6, soyo, alice109, nmkyes, limzua, ribai, junn, vfestjhjt, beoped, epitt925, minyool, oldcode, sismaru, room9, dwwwkorea, newphilos, y-o-u-t-h-m-e, soulpyx, twinbraid, iwaltgen, nps0132, eversloth, pascal7001, lynnata, thewriting, mystory03, cyan91, shyuk3655, justiceadvance, keydon, kimssu, crystalpalace, tumble, hyunsik, brandon73, palos, jinibh.house, plan2f, sharehows, darkhorse81, saeri92, huti, voca1004, ai1love, jiminkang, jingum, koreabusinessnew, siondaddy, thesunatnight, reinjun, hingomaster, smallball, mnsun, jinbok, hajaemin, bluepocket, foruni73, sirin418, ace1101, rebil, kindbreeze, chameonggue, krwhale, ksseono, dreamya, andre-verbrick, insidebig, aiyren, onehand, kaoticmetal, hjoon, thekims, hongsam, seoinseock, machellin, yireun, jayden.yoo, helper33,