-
-
파이썬 FastAPI 개발 입문
나카무라 쇼 지음, 박광수 옮김 / AK(에이케이)커뮤니케이션즈 / 2024년 3월
평점 :
[출판사로부터 도서를 제공받아, 작성자의 주관적인 견해를 토대로 작성하였습니다.]
도대체 API(application programming interface)는 뭐길래??
운영체제나 C, C++, Pascal 등과 같은 언어로 응용 프로그램을 만들 때, 윈도우를 만들고 파일을 여는 것과 같은 처리를 할 수 있도록 1,000여 개 이상의 함수로 구성되어 있다. API는 프로그래머를 위한 운영체제나 프로그램의 인터페이스로서 사용자와 직접 대하게 되는 그래픽 사용자 인터페이스나 명령형 인터페이스와 뚜렷한 차이가 있다.
API는 응용 프로그램이 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, API는 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현된다. 그러므로 하나의 API는 함수의 호출로 요청되는 작업을 수행하기 위해 이미 존재하거나 연결되어야 하는 몇 개의 프로그램 모듈이나 루틴을 가진다.
좋은 API는 모든 building block을 제공함으로써 프로그램 개발을 쉽게 해준다. 프로그래머는 그 block을 함께 합치기만 하면 된다. API가 프로그래머를 위해서 만들어지기는 했지만, 사용자로서도 같은 API를 사용한 프로그램은 비슷한 인터페이스를 가지기 때문에 새로운 프로그램의 사용법을 배우기가 쉬워진다.
(네이버 지식백과 -> 두산백과 두피디아 'API' 인용)
그렇다면 FastAPI란 무엇인가??
FastAPI는 현대적이고, 빠르며(고성능), Python 표준 타입 힌트에 기초한 Python의 API를 개발하기 위한 웹 프레임워크이다. Python을 이용하여 API를 만들기 위한 일종의 도구인 셈이다.
FastAPI에 대한 더욱 자세한 사항은 아래 웹페이지를 이용하면 된다.
https://fastapi.tiangolo.com/ko/
왜 필요한 거지?
익숙한 Python 코드를 이용하여 빠르게 API를 구성하는 것이 가장 큰 장점이다. 다른 도구보다는 돌리기 위한 절차를 하나 이상 줄여서 빠르게 API가 구성될 수 있게 한다. 나도 실습해 보니 2시간~3시간 정도, 코딩에 익숙하지 않은 사람이라도 하루만 시간을 낸다면 기본적인 앱 구성 및 배포가 가능할 정도인 것 같았다.
왜 나카무라 쇼의 책이 번역되었는가? 왜 이 책이 나왔는가?
이 책의 저자는 스타트업 창업을 하면서 백엔드 개발에 뛰어들게 된다. 즉 FastAPI를 사용해야만 하는 치열한 업무 현장에서 3년간 경험을 쌓았다. 이 때 쌓은 노하우를 초보 개발가나 현업 종사자들에게 알려주려는 의도인 것 같다.
현장에서 FastAPI의 인기가 높아지고 수요가 많아지면서 관련 책자의 수요도 덩달아 많아지게 되었다. 이 책은 FastAPI 관련 책으로 일본에서 인기가 많았다. 배워야 할 핵심 내용만 간단하게 안내해준다. 군더더기는 다 빼고 돌리기 위한 최소한의 분량만 채워 넣은 것이 주효한 것으로 보인다.
이 책은?
이 책은 총 17장으로 이루어져 있다.
크게는 Part1 설치, Part 2 기능을 익히기, 프로젝트형 테스트 앱 만들기 및 테스트하기 Part 3 웹사이트 배포 순으로 구성되어 있다.
자세하게는 Chapter 1부터 Chapter 6까지는 FastAPI의 세계를 탐험하기 위한 준비를 한다. 즉 이 책에 있는 프로그램을 돌리기 위해, 필요한 프로그램을 설치하고 설치 테스트, 일명 ‘Hello World!‘가 잘 나오는지 확인하게 된다.
Docker FastAPI 설치 장면
Chapter 7은 FastAPI를 돌리는 원리와 프로그램 구조에 대해 간단하게 배우게 된다. 그리고 Chapter 8부터 13까지는 간단한 프로젝트를 통해 앱을 만들면서 어떻게 FastAPI 프로그램이 돌아가는지에 대해서 배우게 된다. Chapter 14는 이렇게 만들어진 앱이 제대로 돌아가는지 테스트 프로그램 코딩을 통해 확인하는 시간을 가진다.
145쪽 최종 디렉토리 구성
이 책을 통해 구현한 FastAPI Swagger UI
마지막 부분인 Chapter 15에서 17까지는 이 책을 보면서 어렵게 만든 앱을 웹이나 클라우드에 어떻게 올리는지를 체험하는 장이다. Chapter 15는 배포를 위한 사전 준비로서 배포 관련 프로그램 코딩에 대해서 배우며, Chapter 16은 AWS 클라우드 배포하기, Chapter 17은 GCI 배포하기로 이뤄져 있다.
클라우드 플랫폼에서 이용할 서비스
목차만 보면 ‘왜 이렇게 분량이 많지?’라는 생각이 들 수도 있다. 하지만 내용을 들여다보면 프로그램에 대한 설명이나 사전 지식 없이 프로그램을 돌리기 위한 내용만 간결하게 있을 뿐이다. 따라서 이 책의 내용을 잘 따라가기만 하면 FastAPI를 통해 앱을 구성해서 AWS 클라우드 등으로 배포할 수 있게 만든 책이다.
이 책으로 프로그램을 돌려보니
나의 경우 FastAPI는 난생 처음이었다. 이 책은 이것만 따라하면 될 정도여서 정말 간단하게 배울 수 있다. 간단한 설명과 함께 따라하면 작동될 정도의 구조이기 때문에 초보가 한번에 따라하기 좋게 되어 있다.
122쪽 MySQL 클라이언트 실행
122-123쪽 MYSQL_DB 생성 확인
게다가 기능을 배우면서 프로젝트처럼 간단한 앱을 만들어서 배포할 수 있게 되어 있다. 실제 웹에서 볼 수 있을법한 과제를 내주기 때문에 이를 통해 프로젝트 진행 시 적응할 수 있는 능력을 키우기에 적합하다.
출판사 네이버 카페에서도 예제 파일을 찾아서 자신이 책을 보면서 직접 만든 예제 파일과 비교하면서 프로그램을 돌려볼 수 있다.
AK커뮤니케이션즈 카페
https://cafe.naver.com/akpublishing
다만 실습과 프로그램 수행에 중점을 두고 서술되어 있다. 내용이 너무 간결하여 프로그램 구성하다가 문제가 생기면 검색이나 다른 책들을 통해 해결해야 할 수도 있다. 너무 초보이면 감안하고 책을 봐야 한다.
127쪽도 주의해야 할 사항이 있다. 아래 그림에서 빨간색 부분이 책에서 누락된 부분(예제 12.2)이 있다.
127쪽 예제 12.2
빨간색으로 표시된 부분이 추가되지 않으면 아래와 같은 코딩 오류를 찾을 수 있다.
127쪽 예제 12.2에 대한 수정 코딩
127쪽 예제 12.2 수정 코딩을 지키지 않으면 뜨는 에러 메시지
개정판을 낼 때는 오탈자에 더 세심한 주의를 기울였으면 한다.
마치며
이 책을 접하면서 나는 새로운 영역 API에 대해서 알게 되었다. 솔직히 웹에서 앱을 돌리는 방법은 여러 가지가 있지만. 나는 이 책을 통해 FastAPI를 돌리게 되었고, 덕분에 근사하게 앱 다운 앱을 만들어볼 수 있었다.
FastAPI는 정말 유능하고 편리한 개발 도구이다. 옛날 같으면 프로그램 구조상 사전 프로그램 코딩을 통해 앱을 개발하기 위한 세팅을 어느 정도 진행하게 한 후에 앱을 만들어서 테스트하고 배포해야 했다. 하지만 이 프로그램을 통해 그 과정 중 일부를 생략시킬 수 있게 되면서 더 쉽게 앱 개발을 할 수 있는 환경이 마련되었다.
앱 개발은 이를 통해 더 나은, 효율적인, 그리고 빠른 개발이 가능해졌다. 이 책을 다 보고 실습하고 난 뒤, 어느 정도의 구조는 알 수 있게 되었고, 간단하지만 앱을 만들어낼 줄 알게 되었다. 여러분들도 이러한 기술을 가지게 되었다면, 이제는 이를 통해 FastAPI를 자신의 업무에 적절하게 접목시켜 소기의 성과를 얻어가는 시간을 가졌으면 한다.