Today Sangmin Learned
2/2 Gtk-WARNING **: cannot open display:
Slackbot 2021. 2. 2. 22:23

오늘은 일단 나가던 ES6 문법을 조금 더 나갔고, Slackbot DISPLAY 환경변수 설정 오류 디버깅을 시도했다. 환경변수 설정 오류는 ~/.bashrc에 들어가지지 않는 새로운 오류가 발견되었고, 일단 구글링을 통해서도 해결되지 않아서 오늘은 여기까지 했다. 내일 더 찾아봐야한다. 구글링 실력도 많이 부족하다고 느꼈다.

article thumbnail
1/27 디버깅#4 DISPLAY 오류
Slackbot 2021. 1. 27. 15:39

하..... 하루종일 붙잡고 있는데도 해결 못했다.. 어제랑 똑같은 곳에 머물러있다.. 일단 PyAutoGUI가 제대로 동작하고 있지 않다는 것은 확실하다. AWS EC2 내에서의 문제라 내 노트북에서 실행하면 아래와 같이 아주 잘 나온다 ㅠㅠ 해당 오류에 대해 구글링을 계속 해봤는데, 애초에 비슷한 오류를 겪는 사람이 많지 않고 스택오버플로우에 나와 같은 질문에 대한 해결책을 보고 따라해 봤는데도 안된다. 답답해 미치겠다 하 ..

article thumbnail
1/26 디버깅#3 AWS EC2에 PyAutoGUI가 적용되지 않는 문제 발생
Slackbot 2021. 1. 26. 15:13

어제 이미지와 함께 코로나 확진자수를 띄워주는 것을 PyAutoGUI와 Selenium의 webdriver를 이용해서 성공했다는 내용을 포스팅했다. 근데 문제는, 이것을 AWS EC2에 크론탭으로 적용하는 과정에서 발생한다. 구글링해본 결과 PyAutoGUI가 제대로 적용되지 않아서 생기는 문제라고 한다. 내가 사용하고 있는 AWS EC2 프리 티어 인스턴스의 경우 yum을 apt-get 대신에 사용하고 있다. 그래서 모든 install을 (sudo) yum install python37 이런식으로 해야하는데, yum의 경우 apt-get에 대해 쓰는 빈도가 현저히 떨어지고 대부분 정보가 apt-get 기반으로 되어있어서 yum을 통한 개발이 힘든 상황이다. 구글링을 계속 해봐도 yum 자체를 많이 쓰지..

article thumbnail
1/25 오늘의 코로나 이미지 추가 개선 완료
Slackbot 2021. 1. 25. 14:37

오늘의 코로나 Slackbot에 이미지도 함께 추가하도록 개선했다. 우선, 어떻게 특정 사이트에서 이미지를 캡쳐해올까부터 고민했다. 구글링을 한 결과 pyautogui 를 사용해서 특정 페이지에 접근해 시작 픽셀과 x축과 y축 얼마만큼의 픽셀을 캡쳐할지를 정해주면 해당 부분만 캡쳐할 수 있었다. pyautogui는 chromedriver를 필요로 해서, 따로 깔아줘야 한다. webdriver를 통해 파이썬이 해당 페이지에 들어가게끔 하는 것인데, 이 webdriver는 Selenium을 필요로 하기 때문에 from selenium import webdriver import pyautogui 를 해줘야 한다. 아, 그리고 import webdriver를 하는 과정에서 삽질을 좀 했는데, No Module ..

article thumbnail
1/24 PyAutoGUI로 특정 영역 캡쳐하기
Slackbot 2021. 1. 24. 20:31

뭘 할 지 모르겠어서 살짝 붕 뜬 시간에 슬랙봇 업데이트를 하기로 결심했다. Selenium의 webdriver를 이용해서, 특정 홈페이지에 들어간 후 pyautogui의 자동 스크린샷 기능을 이용해 특정 픽셀부터 x좌표 및 y좌표 방향으로 특정 픽셀만큼 영역을 설정해서 해당 영역의 스크린샷을 찍고 특정 위치에 저장하는 것이다. from selenium import webdriver import time import webbrowser import pyautogui wd = webdriver.Chrome('/Users/sangminpark/downloads/chromedriver') url = 'http://ncov.mohw.go.kr/' time.sleep(3) wd.get(url) # while Tr..

article thumbnail
디버깅 #2 HTTPConnectionPool 오류
Slackbot 2021. 1. 24. 16:06

며칠 잘 나오다가 또 HTTPSConnectionPool(host='slack.com', port=443): Read timed out. (read timeout=10) 라는 오류가 같이 출력이 됐다. 그 이유를 찾아봐도 뚜렷하게 나오지가 않았는데, Slacker의 문제라기보단 AWS EC2 서버의 문제라고 생각했다. 그래서 구글링을 좀 해본 결과 github.com/os/slacker/issues/132 에 누군가 나와 똑같은 오류에 대해 GitHub Issue를 직접 올린 것을 확인할 수 있었다.

article thumbnail
디버깅 #1 EC2 가상환경이 삭제된 문제
Slackbot 2021. 1. 15. 14:17

Slackbot이 잘 되고 있었는데, 어제부터 갑자기 출력을 안하는 문제가 발생했다. 음.. 뭐 당연히 내 EC2 인스턴스에 문제가 있기 때문이라고 생각했고, 몸살걸려서 누워있던 어제는 못하고 오늘 했다. 일단 crontab은 문제없이 돌아가고 있었는데, EC2에서 가상환경 설치는 virtualenv /tmp/eb_python_app 의 코드를 통해 만들 수 있다. 그런데, 해당 위치에 가상환경이 없어진 것이었다. 그래서 가상환경을 켜는 source /tmp/eb_python_app/bin/activate 이 명령이 제대로 실행되지 않아서 가상환경이 켜지지 않았고, 그래서 slackbot.py도 실행이 안된 것이다. 제대로 실행된 거 확인하고 난 후 한 번도 안만졌는데 왜이렇게 됐는지 모르겠다. 일단 다..

article thumbnail
오늘의 코로나 Slackbot 개선하기(예정)
Slackbot 2021. 1. 11. 12:46

1주일 전 쯤에 '오늘의 코로나' Slackbot을 만든 뒤로, 매일매일 정오에 어제 총 확진자수를 잘 알려주고 있다. 헌데, 뭔가 심심했다. 이 Slackbot을 만들게 된 뒤로 따로 네이버에서 확진자 수 검색을 할 필요가 없어졌기 때문에 그 점은 편했으나, 점점 다른 기능을 추가해서 개선하고 싶어졌다. 예를 들면 오늘 기록한 확진자수와 함께 근 1주일간의 확진자 및 완치 추세를 나타내는 그래프를 보여준다든가, 매주 일요일에는 "이번주 코로나 확진자는 총 XX명이며, 이는 전주 대비 XX만큼 증가 or 감소 한 수치입니다." 를 보여준다든가 하는 것들 말이다. 신기하게도, Python은 스크린샷을 찍고 특정 위치에 저장하는 기능까지 갖고 있었다. 그래서, "이걸 EC2 서버에 있는 slackbot.py..

article thumbnail
1/5 오늘의 코로나 Slackbot 완성
Slackbot 2021. 1. 5. 19:17

어제와 그저께는 안만졌고, 3일 전에 마지막으로 만졌던 부분이 AWS EC2 서버에서 파이썬 가상환경을 켜는 것 까지였다. 3일 전 기준으로 남아있던 것은 1) Git에 토큰 없이 push를 했는데, 이걸 EC2 서버에서 토큰을 반영하는 방법 2) EC2 서버에 토큰 반영 후 python3 slackbot.py 제대로 작동하는 지 확인 3) EC2 서버에서 crontab을 이용해서 '노트북이 켜져 있지 않더라도 EC2 서버에서 slackbot.py를 매일 특정 시간대에 반복적으로 실행' 이 세가지였는데, 오늘 한 30분 걸려서 전부 다 해결했다. 1) Git에 토큰 없이 push를 했는데, 이걸 EC2 서버에서 토큰을 반영하는 방법 이 부분을 어떻게 해야 될 지 고민을 많이 했는데, 팀원의 조언에 따라 ..

article thumbnail
1/2 AWS EC2 인스턴스 만들고 GitHub에서 repository git clone하기
Slackbot 2021. 1. 2. 16:23

어제 밤에 집에서 팀원의 도움을 좀 받아서, crontab까지 완벽하게 작동 시켰다. * * * * * source /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot/bin/activate && /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot/bin/python3 /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot.py * * * * *은, crontab에서 매 1분 마다를 뜻한다. 그 뒤에 source /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot/bin/activate 는, 가상..