BIM 칼럼니스트 강태욱의 이슈 & 토크
이번 호에서는 Flask(플라스크), mySQL(마이에스큐엘), 파이썬을 활용해 Open API 기반의 플랫폼을 개발하는 방법을 소개한다. 이 방법은 Open API를 쉽게 만드는 기술 중 하나로, 파이썬 기반의 오픈 API를 개발할 때 가장 많이 사용되는 구조이다.
강태욱 | 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 Engineering digest와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다.
이메일 | laputa99999@gmail.com
페이스북 | http://www.facebook.com/laputa999
홈페이지 | https://sites.google.com/site/bimprinciple
팟캐스트 | http://www.facebook.com/groups/digestpodcast
일반적으로 이렇게 만든 구조를 플랫폼으로 제공하고, 오픈소스인 도커(Docker)의 실행환경 가상화 기능을 사용해 서버에 설치하여 서비스한다. 참고로, 오픈소스인 도커는 마치 가상 이미지를 굽는 것처럼 개발자가 개발한 환경 및 프로그램을 자동으로 설치하는 기능을 손쉽게 지원한다. 이러한 오픈소스 기반 플랫폼 구조는 다음과 같이 다양한 곳에 손쉽게 응용할 수 있다.
■ CCTV 모니터링 서비스
■ IoT 연결 및 데이터 처리 서비스
■ Open API 지원 웹 기반 협업 플랫폼
■ 웹 기반 데이터 관리 플랫폼
그림 1. 일반적인 오픈소스 Flask, 파이썬, 도커 기반의 웹 서비스 플랫폼 구조(dev.to, Ana, 2020, Dockerizing your first web app with python and flask)
이 글을 통해 다음과 같은 기능을 가지는 간단한 플랫폼을 개발해 보겠다.
■ 간단한 Open API 서버 개발
■ 서버에서 특정 프로그램 실행 결과 API 로 호출해 리턴
■ MySQL 데이터와 Flask 연동을 통한 객체 관계 맵핑 API 자동 생성
■ 이미지 업로드 서버 및 간단한 대시보드 개발
Flask 소개
Flask는 마이크로 웹 프레임워크(microframework)로 파이썬으로 개발되어 있다. Flask는 다양한 애드인을 지원하여, ORM(object relational mapping), 폼 검사(form validation), 파일 업로드 처리, 다양한 개방형 인증, 도구 등을 사용할 수 있다. Flask는 국제 파이썬 그룹의 Armin Ronacher(아민 로나허)에 의해 개발되어 2010년 첫 버전이 발표되었고, 2020년에는 깃허브에서 가장 인기있는 파이썬 웹 개발 프레임워크에 선정되었다. Flask는 Pocoo 프로젝트 기반이며, WSGI(Web Server Gateway Interface) 지원을 위한 Werkzeug, Django와 유사한 템플릿 엔진을 제공하는 Jinja를 사용한다.