[마소 394호] 플라스크 효과적으로 사용하기

입력 2018.11.01 10:02

소프트웨어 전문지 마이크로소프트웨어 394호는 클라우드(Cloud)와 백엔드(Back-End)를 주제로 담았습니다. 플라스크, 데브옵스, PaaS, 마이크로서비스 아키텍처 등 마소 394호의 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

백엔드 개발은 로직을 짜는 것 말고도 비용, 효율, 성능, 트래픽, 프레임워크 등 다양한 요소를 고려해야 한다. 장고 등 풀스택 프레임워크는 많은 부분을 자동으로 구성해주는 장점이 있다. 하지만 초보자에게는 이해할 수 없는 블랙박스와 같다.

플라스크는 마이크로 프레임워크다. 필수적인 기능만을 제공하면서 자유로운 커스터마이징이 가능하다. 개발자가 직접 시스템의 구조를 만들 수 있다.

플라스크로 서버를 만든다고 하면, 보통 ‘route’ 데코레이터를 사용하는 함수 기반 코드를 한 파일에 작성하는 것을 생각한다. 하지만 이렇게 작성하면 한 파일에 모든 코드가 집중돼 끝없이 길어진다. 이렇게 애플리케이션을 설계하면 유지보수, 효율적인 개발이 힘들어 대용량 애플리케이션으로 확장하기 어렵다. 이 문제를 해결하기 위해 플라스크에서는 블루프린트(Blueprint)와 플러거블 뷰(Pluggable View)를 제공한다.

플라스크 앱 객체와 유사하게 사용되는 블루프린트는 애플리케이션을 완성하기 위한 일종의 ‘빵틀’이다. 블루프린트는 미리 만들어 놓은 부분을 애플리케이션에 추가하는 방식으로 대용량 애플리케이션 개발 및 유지를 크게 단순화할 수 있다. 또한 블루프린트는 API 버전 관리를 효율적으로 할 수 있다.

플러거블 뷰는 ‘MethodView’를 제공해 HTTP 메소드 별 코드 작성을 편리하게 한다. 또한 함수 기반이 아닌 클래스 기반으로 코드를 작성할 수 있어 코드의 재사용성을 높일 수 있다.

플라스크 로고. / 플라스크 홈페이지 발췌
또한 플라스크로 서버를 만들면 뷰 로직 실행 전에 실행돼야 하는 코드가 많아 중복 코드를 줄이려고 해도 ‘MethodView’를 사용한 베이스 뷰의 한 부분으로 만들기는 힘들다. 이를 위해 파이썬은 데코레이터라는 강력한 기능을 지원한다. 그 중 ‘functools.wraps’를 적용한 데코레이터로 함수를 데코레이트 하면 로직을 변경하지 않고 기능을 추가하기 쉽다.

플라스크의 뷰 펑션 또는 메소드를 위한 뷰 데코레이터를 사용해 뷰 펑션에 추가 검사 또는 기능을 제공할 수 있다. 리퀘스트 검증, 헤더 검사, 캐싱 적용 등은 뷰 데코레이터로 구현하자.

김성현 필자의 ‘플라스크 효과적으로 사용하기’에 대한 자세한 내용은 ‘마이크로소프트웨어 394호(https://www.imaso.co.kr/archives/3939)’에서 확인할 수 있다.


키워드

관련기사를 더 보시려면,

[마소 394호] RxJava로 생각하기 오세용 기자
[마소 394호] 스토리체인이 사이드체인을 선택하기까지 오세용 기자
[마소 394호] 모바일 앱 테스트 자동화용 디바이스팜 구축 오세용 기자
[마소 394호] 되돌아 보는 1만 개의 클라이언트 문제 오세용 기자
[마소 394호] 클릭만으로 도커 개발 환경을 완성시켜주는 애저 PaaS 오세용 기자
[마소 394호] DDD와 MSA로 쇼핑몰 구축하기 오세용 기자
[마소 394호] 이스티오 서비스 메시를 이용한 MSA 구축 오세용 기자
[마소 394호] 제대로 구성하는 마이크로서비스 아키텍처 오세용 기자
[마소 394호] 아마존 API 게이트웨이와 AWS 람다로 구성하는 다운로드 서버 오세용 기자
[마소 394호] AWS EC2와 트래비스CI를 활용한 무중단 배포 서비스 오세용 기자
[마소 394호] 스타트업의 좌충우돌 CI/CD 구성 오세용 기자
[마소 394호] AWS 이메일 서비스 써보니 오세용 기자
[마소 394호] 클라우드의 성능 품질 이야기 오세용 기자
[마소 394호] 클라우드 시대 토종 호스팅 업체의 변신 오세용 기자
[마소 394호] 데이터베이스의 게임 체인저, 오라클 클라우드 오세용 기자
[마소 394호] 알아두면 쓸데없는 신비한 TLS 1.3 오세용 기자
[마소 394호] 다시 보는 PaaS, 어디서 와서 어디로 가는가 오세용 기자
[마소 394호] 코드로 관리하는 인프라스트럭처, 테라폼 오세용 기자
[마소 394호] 더 웨더 컴퍼니의 데브옵스 오세용 기자
[마소 394호] 사설 클라우드의 끝판왕 오픈스택 오세용 기자
[마소 394호] 개발운영 퀀텀 점프를 위한 도커 오세용 기자
[마소 394호] IT 서비스와 모니터링 역사 오세용 기자
[마소 394호] 오픈스택 커뮤니티 동고동락 오세용 기자
[마소 394호] 데브옵스를 꿈꾸는 개발자를 위한 안내서 오세용 기자