본문 바로가기

# Development/Flask

(4)
[Flask] Slack Bot 으로 서비스 장애 알림 받기 Slack Bot으로 서비스 장애 알림 받기 에러 핸들링을 할 때 예측이 불가능한 에러는 회사 내 채널(이메일, 슬랙)에 공지해 주어야 한다. 에러 케이스를 확인하고 관리하는 측면에서 Slack이 편할 것 같아 시스템에 장애가 발생할 경우 Slack으로 알림이 오도록 Slack Bot을 만들었다. Slack App 만들기 https://api.slack.com/app 에서 Slack App을 생성 할 수 있다. 1) Create New App 2) From scratch 선택 3) App 이름 입력, App을 사용할 워크스페이스 선택 4) Scopes 설정 사이드바 [OAuth & Permissions]을 클릭하고 스크롤을 아래로 내리면 Scopes 섹션을 찾을 수 있다. [Add an OAuth Sco..
[Flask] python-dotenv로 개발/배포 환경 분리하기 python-dotenv 패키지로 개발/배포 환경 분리하기 개발 과정중에 환경변수를 매번 변경해주는 작업은 여간 귀찮은게 아니다. python-dotenv를 사용하면 개발 환경과 배포 환경의 환경변수를 자동으로 세팅할 수 있다. 간단한 Flask 어플리케이션을 예제를 통해 환경변수를 설정해보자. 개발환경 설정 다음과 같은 파일 구조를 가진 Flask 어플리케에션에 환경 변수를 설정해보자. . ├── myproject ├── __init__.py └── function1.py └── run.py Flask 어플리케이션이 잘 작동하는지 확인하기 위해 route에 글자를 띄우는 어플리케이션을 만들어보자. # myproject/__init__.py from flask import Flask def app(): ..
[Flask] Flask에서 Express MiddleWare 사용하기 Express MiddleWare란? 어플리케이션의 요청-응답 사이에서 실행되는 함수, 보통 요청 전 처리 혹은 요청 후 처리에 사용된다. Flask에서 Express MiddleWare를 사용하는 방법 데코레이터 (Decorator) 데코레이터란 함수에 반복적인 기능과 역할을 할 수 있도록 만들어주는 기능이다. 함수 내부 로직 수정 없이 특정 기능을 추가하고 싶을 때 사용한다. 예시로 request 헤더에서 Content-Type을 확인하는 데코레이터를 만들어보자 1. @wraps로 데코레이터로 만들 함수를 정의한다.2. @wraps로 정의 된 함수는 다른 함수를 인자로 받아서 해당 함수가 실행되지 전에 미리 실행한다.3. 인자로 받은 *args, **kwargs를 가져와서 request 데이터를 체크..
[Flask] CORS (Cross-Origin Resource Sharing) 설정 CORS (Cross-Origin Resource Sharing) 설정 CORS란? CORS는 보안상의 이유로 필요한 경우에만 서버와 협의하여 데이터를 요청할 수 있도록하는 장치이다. CORS를 알기 위해서는 우선 Origin이 무엇인지 이해가 필요하다. Origin (출처) 우리가 특정 사이트를 접속을 위해 사용하는 URL은 아래의 그림과 같은 요소로 구성되어 있다. 각 구성요소는 다음의 특징을 가진다. Protocol(Scheme) : http, https Host : 사이트 도메인 Port : 포트 번호 Path : 사이트 내부 경로 Query string : 요청의 key와 value값 Fragment : 해시 태크 CORS에서 얘기하는 Origin은 위의 URL 구성 요소 중 _Protocol ..