플라스크(Flask)는 2004년 오스트리아의 오픈소스 개발자 아르민 로나허(Armin Ronacher)가 만든 웹 프레임워크다. 플라스크는 아르민 로나허가 만우절에 장난삼아 던진 아이디어였는데 사람들의 관심이 높아져 서비스로 만들어졌다고 한다. 플라스크는 장고(Django)와 더불어 파이썬 웹 프레임워크의 양대 산맥으로 자리매김하고 있다.
플라스크는 많은 사람이 ‘마이크로 웹 프레임워크’라고 부른다. 여기서 ‘마이크로’는 ‘한 개의 파이썬 파일로 작성할 수 있다’ 또는 ‘기능이 부족하다’ 와 같은 의미가 아니라 프레임워크를 간결하게 유지하고 확장할 수 있도록 만들었다는 뜻이다.
플라스크에는 폼(form), 데이터베이스(database)를 처리하는 기능이 없다. 예를 들어 장고라는 웹 프레임워크는 프레임워크 자체에 폼과 데이터베이스를 처리하는 기능이 포함되어 있다. 장고는 쉽게 말해 덩치가 큰 프레임워크다. 그러면 플라스크는 이런 기능을 어떻게 보완할까? 플라스크는 확장 모듈을 사용하여 이를 보완한다. 이 말은 플라스크로 만든 프로젝트의 무게가 가볍다는 것을 의미한다. 왜냐하면 플라스크는 처음부터 모든 기능을 포함하고 있지 않기 때문이다. 그때그때 개발자가 필요한 확장 모듈을 포함해 가며 개발하면 된다.
1. Git clone & Flask 설치
git clone https://github.com/themapisto/Flask_MSA_project.git
$ pip install flask
# django와 마찬가지로 가상환경 venvs 에서 설치하면 된다.
2. docker compose up
- requirements의 Flask 버전이 1.x 대에서 jinja2를 중단시켰기 때문에 2.1.0으로 requirements를 고친다.
- github의 소스에 이미 고쳐놨기 때문에 확인만 하자
3. db migrate
Flask는 확장 모듈을 사용하여 sql 쿼리를 제어한다. , SQLAlchemy 모듈을 설치하면 python 언어를 통해 파이썬 문법으로만 데이터베이스를 다룰수 있다. 즉, ORM을 이용하여 개발자가 직접 쿼리를 작성하지 않고 데이터베이스의 데이터를 관리할수 있다라는 장점을 가지고 있다.
- ORM은 데이터베이스에 데이터를 저장하는 테이블을 파이썬 클래스로 만들어 관리하는 기술로 이해해도 좋다.
- 여러분들이 데이터베이스 개념이나 SQL 쿼리의 기초는 안다고 가정한다. 그러나 이런 기초지식이 없어도 실습을 따라 하고 내용을 이해하는데 무리가 없도록 구성했다.
$ docker-compose exec backend sh
## backend (Flask)에 접속하여
#1. mysql db를 설치한다.
$ python manager.py db init
#2. mysql db의 table을 생성한다.
$ python manager.py db migrate
#3. mysql db의 table안에 schema를 생성한다.
$ python manager.py db upgrade
컨테이너에 접속하여 db 데이터가 정상적으로 setting 되었는지 확인해보자.
'개발스터디 > MSA 스터디 (22년)' 카테고리의 다른 글
[MSA 1.0] (5) RestTemplate 개념과 사용법 (0) | 2022.12.06 |
---|---|
Java MSA를 위한 Spring Cloud 환경 구축하기(Eureka) (1) | 2022.06.30 |
[MSA 1.0] (3) RabbitMQ 메시징 큐 서비스 구현하기 (0) | 2022.06.28 |
[MSA 1.0] (1). Python 설치 및 장고 개발환경 구성 (0) | 2022.06.27 |
[MSA 1.0] 컨테이너를 활용한 MSA 개발 (0) | 2022.06.25 |