Python

·Python
제가 익숙해지고자 기록으로 남겼습니다. Fabrice은 Python의 라이브러리이자 커맨드 라인 도구로 배포, 시스템 관리와 관련된 일들을 처리한다. 서버에 직접 접속하지 않고, Local에서 Fabric 명령어를 통해 Local 및 원격 서버에 명령을 내릴 수 있다. 먼저 Fabric의 기능은 크게 다음과 같습니다. 1. SSH 명령어를 로컬 서버, 원격 서버에서 실행 2. Local과 Remote간의 파일 전송 env -> 환경변수를 입력 env.hosts -> 명령어를 수행할 서버 주소의 리스트 env.user -> 유저이름 run() -> 원격 서버에서 명령을 수행 local() -> 로컬 서버에서 명령을 수행 put() -> 로컬 서버에서 원격 서버로 파일을 업로드 get() -> 원격 서버에서..
·Python
제가 원하는 바는 아래와 같습니다. Grafana에 알람이 발생했을 경우 그것을 Slack으로 확인하고 필요한 Command를 Slack에 날려주면 Flask(bot)이 이를 확인하여 Command를 실행시키는 것입니다. 코드는 아래와 같습니다. 준비물은 Salck bot의 토큰, Grafana의 Slack을 통한 알람, 실행할 Command가 필요합니다. import json, requests, subprocess from flask import Flask, request, make_response from slack_sdk import WebClient token = "" # Slack bot의 토큰 app = Flask(__name__) def post_message(token, channel, t..
·Python
pip를 대신할 수 있는 패키지관리자인데 사용법은 pip와 유사하지만 가상환경을 만들 수 있습니다. 주로 파이썬 버전을 바꿔가면서 개발하는 등, 환경과 패키지를 관리하기 용이하게 하는 오픈소스입니다. 사용법은 아래의 블로그에 잘 정리되어 있으니 명령어를 위주로 정리하겠습니다. https://velog.io/@doondoony/pipenv-101 🚀 Pipenv 로 파이썬 가상환경 설정 Pipenv Tutorial velog.io 패키지와 관련된 명령어는 check, graph, clean, install, lock, sync, uninstall, update 실행과 관련된 명령어는 open, run, shell check - 보안 취약점이 있는 패키지가 설치되어있는지 체크해줍니다. graph - 프로젝트..
·Python
저만의 사이드 프로젝트를 하고 있는 상태입니다 현재 crontab으로 돌아가는 파일의 log를 bot.log파일로 저장하고 있는데 오류가 날 때마다 컴퓨터를 켜고 EC2에 접속해서 log파일을 열어서 일일이 확인하는 것이 너무 불편하다고 생각했습니다. 그래서 현재 돌아가고 있는 EC2안 Flask 웹 서버에서 log를 확인할 수 있게 만들려고 합니다. 이렇게 되면 모바일이든 PC든 EC2 IP주소로 언제 어디서든지 log를 확인할 수 있습니다. 먼저 bot.py 파일이 실행되고 그 log들을 bot.log에 저장하고 있습니다. 0 * * * * python3 /home/ec2-user/bot/bot.py >> /home/ec2-user/bot/bot.log 2>&1 이런식으로 log를 저장할 수 있습니다..
·Python
코테를 풀면서 DFS, BFS관련 문제를 풀 때 앞뒤 안가리고 for구문과 if구문으로 설계를 하여 효율이 매번 낮게 나왔습니다. 이제는 조금 코딩다운 코딩을 해보고자 파이썬의 여러 모듈들을 배울 겸 작성해보도록 하겠습니다. 보통 Queue(큐)는 FIFO(선입선출)방식으로 작동하는데 Deque(데크)는 양방향의 Queue(큐)라고 생각하시면 편합니다. 즉 양 방향에서 추가하거나 제거할 수 있습니다. 그렇기에 append와 pop이 압도적으로 빠릅니다. from collections import deque deq = deque() deq.append('hi') # hi를 데크의 오른쪽 끝에 삽입한다. deq.appendleft('hi') # append의 왼쪽 버전 deq.pop() # 데크의 오른쪽 끝..
·Python
https://cleaning-toolbox.tistory.com/63 파이썬-실습(10) 카카오톡 친구들에게 API로 메시지 보내기 https://cleaning-toolbox.tistory.com/62 파이썬-실습(9) 가변적인 Url 파싱하기, 카카오 인가코드 파싱 제가 제일 힘들었던 부분입니다. 예를들어, www.example.com/?code= 라는 URL로 접속하였을 경우 카카오.. cleaning-toolbox.tistory.com 이 글까지 보고 이해하셨으면 이제 카카오 i 오픈빌더로 만든 챗봇을 연계해보도록 하겠습니다. 챗봇의 기본적인 사용법은 다른 분들이 많이 올려주셨기에 이부분은 패스하도록 하겠습니다. 많이 고민했던 부분은 User를 어떻게 식별하고 User에 맞춰서 설정을 불러오고 ..
·Python
https://cleaning-toolbox.tistory.com/62 파이썬-실습(9) 가변적인 Url 파싱하기, 카카오 인가코드 파싱 제가 제일 힘들었던 부분입니다. 예를들어, www.example.com/?code= 라는 URL로 접속하였을 경우 카카오 로그인을 하고 관련 권한을 수락하면 URL이 www.example.com/?code=AS55geY2vYb13Zxb43 처럼 뒤의 인가.. cleaning-toolbox.tistory.com 이 부분까지 차례대로 보셨다면 어느 정도 윤곽은 잡으셨을거라 생각합니다. 크게 생각하면 이렇습니다. OWNER가 카카오 디벨로퍼 앱 제작 -> 카카오 데브톡에 비즈니스 앱 신청 -> Rest API Key, Redirect URI로 카카오 로그인 URL 작성 ->..
·Python
제일 힘들었던 부분입니다. 예를들어, www.example.com/?code= 라는 URL로 접속하였을 경우 카카오 로그인을 하고 관련 권한을 수락하면 URL이 www.example.com/?code=AS55geY2vYb13Zxb43 처럼 뒤의 인가 코드가 나오게 됩니다. 이 code가 필요했었는데 셀레니움과 urllib등 여러가지 방법을 써봤지만 실패했었는데 지금 생각해보면 초점을 다른데에 뒀었습니다. 첫번째 실수는 Redirect URI 였습니다. 현재 EC2안 Flask로 서버를 돌리고 있는데 어이없게도 Redirect URI에 포트번호인 :5000을 빼고 작성하여서 계속해서 오류가 났었습니다. 별거 아닌 문제였지만 이 부분을 눈치채지못하여 한참을 고민하고 시도했었습니다. 여기서 OWNER와 Use..