본문 바로가기

분류 전체보기

(91)
버스 도착 알림 Telegram 봇 만들기 (1) 이사간 집에서 전철역까지 가는 마을버스 노선이 하나 밖에 없는데, 배차 간격이 무려 20분이다. 네이버 지도로 도착 예정 정보를 보고 나가는 것도 번거롭고 해서 내가 원하는 정보만 알려줄 수 있는 Telegram Bot을 만들어보기로 했다. 일단 버스 도착 정보를 얻는 것이 문제였는데, 공공데이터포털(data.go.kr)에 "국토교통부(TAGO) 버스도착정보" 오픈 API가 있는 것을 보고 이것을 사용하면 되겠구나 싶었다. 데이터포털에 가입만 하면 신청 후 별도의 승인 절차 없이 바로 해당 API를 사용할 수 있었기 때문에 오오 좋은걸 하고 시도해 봤지만, 이 API는 경기도 마을버스 정보를 제공하지 않았다. 경기도에서 제공하는 경기버스정보 사이트에서도 오픈API를 제공하고 있지만, 역시 마을버스 정보는..
맥에서 방향 키를 vim 키로 할당하기 어깨와 손목 통증을 완화하기 위한 노력의 일환으로 코딩할 때 손의 움직임을 최소화하기로 해본다. VSCode에서 방향키를 vim 에서 사용하는 hjkl 에 할당해서 사용하면 참 편할 것 같았다. 최대한 트랙볼이나 키보드 방향키에 손이 가지 않게 하기 위해서 ctrl-cmd-h,j,k,l 에 방향키를 할당하고 싶었다. BTT 를 이용하면 쉽게 된다는데, 선뜻 유료 결제에 손이 가지 않아서, 일단 할 수 있는 방법으로 해보기로 함. 잠깐 헤맸지만, Karabiner 를 이용해서 ctrl-cmd-hjkl 을 방향키로 사용할 수 있게 설정했다. 설정하는 방법은 아래와 같다. 간단한 키 매핑은 GUI로 가능하지만, 복잡한 키매핑은 Karabiner-Elements Settings 의 Complex Modifica..
python telegram bot on Google Cloud Functions 익숙해서 Azure Functions 를 사용하려고 했는데, Google Cloud Functions 를 사용하는 것도 간단하고 괜찮은 것 같아서 한번 해봤다. Google Cloud Functions 사용은 콘솔에서 하는 것도 간단하고 편하게 되어 있지만, 하는 김에 최대한 Visual Studio Code 에서 처리하는 방식으로 해보자. 일단, Visual Studio Code 에서 "Cloud Code" extension을 먼저 설치한다. Google Cloud SDK 가 설치되면 하단의 "Connect to Google Cloud" 를 클릭해서 Google Cloud 계정에 로그인한다. Google Cloud 계정에 로그인이 끝나면 왼쪽 메뉴에 프로젝트 선택, function 생성 버튼이 나타난다..
Python-Flask 앱을 Github 통해 Azure Functions에 deploy 하기 Visual Studio Code 에서 아주 간단하게 Azure Functions에 현재 코드를 deploy 할 수 있지만, 간단하게 되는 만큼 실제 서비스에 deploy 되는 코드의 버전 관리가 체계적으로 되지 않는 일이 생긴다. Github 에서 특정 branch 를 지정해서 항상 서비스 환경에 자동 deploy 되도록 한다거나, default branch에 PR이 머지되면 deploy 되도록 하면 편할 것 같다. 이미 Github 나 MS에서 다 지원해주고 있어서 정말 간단하게 이런 환경을 만들 수 있다. Github에 repository가 있고, Azure 에 function도 있다고 가정하면, 1. 인증을 위해 Azure에서 publish profile 을 다운받는다. 2. publish pro..
Python으로 Azure에 Serverless Telegram bot 만들기(4) azure - flask 연결에 이어 이번에는 아주 간단한 telegram bot 을 만들어본다. python-telegram-bot 패키지를 사용하기로 하고, 일단 설치한다. > pip install python-telegram-bot 이것은 로컬에 패키지를 설치하는 과정이고, azure function 에 deploy 될 때도 해당 패키지가 설치되어 동작하게 하려면 requirements.txt 에도 추가해줘야 한다. # DO NOT include azure-functions-worker in this file # The Python Worker is managed by Azure Functions platform # Manually managing azure-functions-worker may c..
Python으로 Azure에 Serverless Telegram bot 만들기(3) 지난 포스트에서 python flask 앱을 Azure에 올리는 것까지 해봤다. https://uaremine.tistory.com/70 Python으로 Azure에 Telegram bot 만들기(2) 지난 글 (https://uaremine.tistory.com/69)에서 1) 텔레그램 봇 생성 2) 로컬 개발에 필요한 환경 설정 (Visual Studio Code, Python with pyenv, azure-functions-core-tools 설치 3) 로컬 프로젝트 생성 까지 해봤다. 이번에는 uaremine.tistory.com 이번에는 생성한 텔레그램 봇에 Flask 앱을 연결해서 응답을 주도록 해보자. 꼭 flask를 사용할 필요는 없지만, azure function 이나 telegram ..
python: pip install package[extra] 명령이 zsh: no matches found: package[extra] 를 반환할 때 오랜만에 python 써보려니 자잘한 문제가 자꾸 생긴다. 그 사이에 맥 기본 shell 이 zsh 로 바뀌는 일이 있어서 생각지도 못한 일이... ㅎㅎ > pip install flask[async] 를 해야했는데, 자꾸 zsh: no matches found: flask[async] 가 나오는 것이다. zsh에서 square bracket ([])은 커맨드라인에서 패턴으로 인식된다. 원하는 동작을 얻으려면 > pip install flask\[async\] [, ] 를 escape 하거나 > pip install 'flask[async]' 전체 패키지명을 '' 로 묶어주면 된다.
python: Visual Studio Code에서 import 된 모듈에 breakpoint VS Code 로 python 디버깅할 때, import한 모듈에 breakpoint 찍어 놓고 디버깅하고 싶은데, breakpoint가 찍히지 않으면, launch.json 파일에 justMyCode: false 라고 설정해주면 된다. { "version": "0.2.0", "configurations": [ { "name": "Attach to Python Functions", "type": "python", "request": "attach", "port": 9091, "preLaunchTask": "func: host start", "justMyCode": false } ] } 이런 형태로 configurations 안에 넣어주면 된다. https://code.visualstudio.com/doc..