한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
최근 회사 내에서 내부 데이터를 잘 수집하고 활용하기 위해 제조 데이터로 작은 서비스를 구축하고 있습니다. 아무리 작은 서비스라고 하더라도 전부를 구축하기엔 데이터베이스부터 백엔드개발, 웹개발 등 다양한 분야에 대한 공부가 필요한 시점이었습니다. 아무래도 파이썬 기반으로 제가 직접 구축해볼 수 있다면, 좀 더 빠르게 이해할 수 있을 거라 생각해서 파이썬 기반 웹프레임워크인 Django, Flask에 이어 최근 부상하고 있는 FastAPI를 배워보고자 이 책을 공부하게 되었습니다.
1. 대상 독자
이 책은 파이썬은 어느 정도 사용할 줄 알고, 이제 웹개발을 FastAPI로 처음 해보고 싶은 분에게 추천할 만한 책입니다. 무엇보다 기반지식이 없어도 각 계층은 어떠한 역할을 하고, 인증과정은 어떻게 구성하는 지 등을 배울 수 있는 책입니다. 차근차근 책을 따라가다보면, 어느덧 웹사이트 하나가 완성되는 것을 경험해볼 수 있습니다. 이 책을 참고하여 본인이 원하는 방향으로 만들어낼 수 있습니다. 아무래도 얇은 책에 FastAPI에 대한 내용을 담아내다보니, 원하는 만큼 내용이 깊진 않을 수 있으나, 적절히 필요한 내용들을 위주로 다루고 있습니다.
2. 이 책의 특징
1) 처음부터 끝까지 동일한 코드에 살을 붙여나가는 방식
전체 내용을 하나의 웹사이트를 구축하는 시점에서 점점 살을 붙여나가는 방식으로 전개해나가고 있는 점이 특징입니다. 그래서 내용을 잘 모르더라도, 각 계층에는 어떠한 내용이 들어가야 하는 지 등을 이해하기 좋습니다. 주어진 틀 안에서 뒤로 갈 수록 새로운 내용들을 우리의 프로젝트에 조금씩 넣는 방식으로 결국 책을 끝까지 읽어내도록 도와줍니다. 단계를 밟아나가다보면 코드 내용이 조금씩 달라지는데, 이 부분에 대해서는 추가되는 코드가 무엇인지, 어디 부분이 변경되어야 하는지를 별도로 표시해줬으면 더 좋았을 것 같습니다.
2) 적절한 폴더 구조, 위치 등을 언급하는 점
사실 라이브러리를 만들거나 웹사이트를 구성하고자 할 때, 처음 구성해보는 입장에서는 각 파일이 어느 위치에 들어가야되는 지 헷갈릴 때가 많이 있습니다. 중간 중간 어떤 파일을 수정하는지, 추가하는 파일의 위치는 어디에 위치해야 되는 지 등을 친절하게 설명해주고 있습니다.
3) 웹 서비스 구축의 처음부터 끝까지 구성해볼 수 있음
웹에 대해서 아무것도 모르는 상황에서 공부했음에도, 어떤식으로 폴더 구조를 설정해야 하고, 각 파일의 역할은 무엇인지, 테스트하는 방법, 인증은 어떻게 구현해야 되는 지, 배포과정 등 까지 경험해볼 수 있다는 점, 실제로 구축 완료된 프로덕트를 확인해볼 수 있는 점에서 굉장히 흥미롭게 책을 공부해나갈 수 있었습니다. 사실 저도 이 책을 받아보고 3주라는 시간동안 다른 공부보다 이 책에 빠져서 실제로 구현해보게 되었습니다.
3. 이 책의 아쉬운 점
1) 책을 따라 공부하다보면 간혹 발생하는 오류 존재
책을 따라 하다보면, 간혹 발생하는 오류들이 존재합니다. 순차적으로 책을 따라갔음에도 디테일한 부분을 놓쳐서 발생하는 문제 등이 일부 있습니다. 이런 경우 그렇게 어렵지 않게 해결할 수는 있는 것들이 대부분입니다. 필자의 경우에는 직접 문제를 마주친 뒤, 스스로 해결해 나갔으나, 이 부분은 추후 인쇄 시에는 이상없는 코드가 제공될 수 있도록 한빛미디어로 요청할 예정입니다.
4. 총평
FastAPI를 통해, 웹 서비스를 구축하고 싶다면 이 책을 읽어보시는 것을 추천합니다. 책 내에서 Django와 Flask의 차이 등도 설명하고 있고, 대략 300페이지로 다른 개발서적에 비해(?) 두툼하진 않습니다. 그리고 내용은 생각보다 딥하지 않지만, 추가자료를 링크 형태로 제공하고 있으니, 조금 더 깊은 공부를 원하시는 분들은 링크까지 공부해보신다면 더욱 좋을 것 같습니다.