|
python을 통한 개발을 진행시, AI및 최근 바이브 코딩등에서 RESTAPI 및 비지니스 로직을 개발시에 FastAPI가 많이 사용되고 있습니다. 기본적으로 간단한 get, post등에 대한 간단한 구현은 쉽지만 실제 서비스에 적용하기 위해서는 동작방식 및 원리를 알고 활용하는것을 추천합니다. 코딩 자율학습의 컨셉은 스스로 책을 따라하면서, 쉽게 풀어서 설명하는 컨셉을 가지고 있어서 빠르게 원리를 파악하기 쉽게 구성되어 있습니다.
■ 살펴보기 / 기능 구현하기 · FastAPI의 기능은 정말 다양합니다. Python에 대한 기능을 활용해서 프레임워크에서 활용한 방법 및 FastAPI을 이용한 기능 구현까지 살펴보면서, 서비스 구현에 필요한 개념을 학습합니다. > 기존에 파이션으로 구성된 프레임워크 Flask, Django와 함께 비교해보면서 차이점 살펴보기 > FastAPI의 특징 (타입 힌트, 자동완성등) > Pydantic 개념을 통해서, 정상값/비정상값 검증하는 방법 > Swagger를 통한 문서화 및 테스트 방법 > CRUD구현을 통해서 GET, POST, PUT/PATCH, DELETE 기능 > ORM을 통한 mysql을 연동하기
기능 구현 관련 > 회원가입 하기 > 로그인과 인증 구현(JWT) > FastAPI의 고급기능
■ 내용 살펴보기 · PyCharm을 이용해서 구성합니다. FastAPI를 지원하는 IDE 여서 쉽게 환경구성 할수 있습니다. 가상환경 구성도 쉽게 됩니다. 웹개발을 처음 할때의 기본 개념인 파라미터 및 Swagger를 통해서 쉽게 테스트 할수 있게 따라하면 됩니다.
처음 웹개발을 접근하는 독자분들도 http의 상태코드 별 차이를 살펴보고 요청을 하는 것과 응답을 하는 방식을 통해서 응답 본문에 JSON을 통해서 어떻게 1개의 값을 제공하거나, List로 다양한 정보를 제공하는 방식등은 어떻게 해야 하는지 하나하나 살펴봅니다.
서비스를 구현하기 위해서는 데이터를 조회하고, 신규로 입력하는것은 가장 기본이 되는 기능입니다. 이것을 우리는 CRUD라고 표현합니다. http요청을 보낼때, 우리는 method를 구분지어서 호출합니다. C (데이터 생성) : POST R (데이터 조회) : GET U (데이터 수정) : PUT, PATCH D (데이터 삭제) : DELETE
코드에 대한 주석 및 코드 설명이 자세히 되어 있어서, 처음 코드를 보는 경우에도 그 의도를 알기 쉽게 구성되어 있습니다.
■ DB를 통해서 데이터 저장하기 · DataBase를 연동하는 것은 처음에 이해하는 것이 어려울수 있습니다. 이 내용은 책을 통해서 다 알기 어려운 부분도 있지만, 책의 컨셉에 맞게 가장 중요한 핵심 내용이 있습니다. 중요한 개념은 ORM과 SQLAlchemy입니다. 보통 DB에서 조회를 할때, sql 쿼리문을 작성을 사용하는데, ORM개념을 통해서 쿼리문 대신에 정보를 조회하고 그것을 SQLAlchemy을 이용합니다. 이러한 방식은 java, node등 다른 언어를 사용하는 방식에서도 일반적으로 사용되는 방식입니다.
· 회원가입을 통해서 이것을 접목시켜봅니다. 모델이라는 개념을 통해서 ORM의 테이블 개념을 적용해보고, 기본키, 외래키는 무엇인지 적용해봅니다. 조금은 어려운 개념일수 있습니다. 너무 처음부터 모든 내용을 다 설명하는것 보다 반드시 알아야 하는 필수적인 요소를 통해서 다음에 이 개념을 확장해서 학습할 수 있어서, 혼돈없이 집중할수 있는 구성이 더 좋았습니다.
· 보안적인 부분도 공부하기 일반적으로 권한에 대해서 체크가 없는 부분도 있지만, 기본적으로는 개인화가 필수적입니다. FastAPI에서 어떤 방식으로 보안을 체크할까요? 이것을 로그인 API를 구현하면서, 이론적인 개념이 필요합니다. 세션방식으로 인증구현하기, JWT방식으로 인증 구현하기 이렇게 2가지 방식으로 구현 테스트를 합니다. 두 방식 모두 반드시 알아야 하는 중요한 개념이고, 각각 실습할수 있게 예제코드를 설명이 있습니다.
· FastAPI 고급기능 알아보기 지금까지 기본적인 동작방식을 살펴보았고, 서비스를 더욱 더 안정적으로 운영하면서 이미 만들어져 있는 다양한 기능을 소개합니다. 이러한 방식이 있다는 것만 알고 있어도, 나중에 서비스 구현시 참고할수가 있습니다. > Lifespan : 애플리케이션의 시작과 종료 시점을 관리 > 의존성 주입 > 백그라운드 태스크 > 파일 처리 : 파일 업로드, 다운로드를 비롯한 전체 흐름
무조건 쉬운 내용만 있다고 해서, 처음 새로운 기술을 이해하기 좋은 방식은 아닙니다. 필수적인 요소, 반드시 필요한 개념을 잘 설명하고 그것을 기반으로 다음에 더 필요한 부분을 확장해서 나아갈 수 있는 기반이 되는 것이 중요합니다. 이책은 그런 부분을 잘 충족하고 있는 책이라고 생각합니다. |
|
FastAPI를 시작하신다면 이 책으로 기초를 다질 수 있습니다. 정확하고, 알기 쉽게 알려주는데 분량도 많지 않아 부담없이 기본을 파악할 수 있습니다. 잘 읽힙니다내용이 눈에 잘 들어옵니다. 무슨 말을 하고 있는지 알기 쉽고, 무엇을 알아야 하는지 바로 파악할 수 있습니다. 이런 부분이 생각보다 큰 도움이 됩니다. 기술 서적이지만 끝까지 읽는데 별로 어려움이 없다는 건 큰 장점입니다. 저는 중간에 막히는 부분 없이 일독할 수 있었습니다. 덕분에 FastAPI 백엔드 개발에서 알아야 할 기본 내용들을 접할 수 있었다고 생각합니다. 정확하게 알 수 있습니다FastAPI 사용에 익숙해지면 당연해지는 부분을 하나씩 알려줍니다. 당연한 얘기지만 책은 전하고자 하는 내용을 알고 있는 사람이 씁니다. 그렇기 때문에 자칫하면 '지식의 저주'로 인해 놓치는 부분이 생길 수 있습니다. 익숙해져서 거의 무의식적으로 사용하는 부분일수록 더욱 그렇습니다. 전달하는 사람에게는 별거 없는 내용이지만 전달받는 사람에게는 뭐가 뭔지 도통 알 수 없어서 막히면 그다음부터는 힘들어집니다. 얘기하는 사람이 가진 전제와 읽는 사람이 아는 전제가 달라지는 순간 같은 문장이지만 서로 다른 곳을 보고 있게 됩니다. 경로 변수, 쿼리, Pydantic, 요청 본문, 응답 본문과 같은 FastAPI 특징과 기능을 정확하게 알 수 있습니다. 어디에 위치하고, 어떻게 전달되며, 어떤 역할을 하며, 무엇과 매칭되기 때문에 어떤 결과를 받을 수 있는지 이해할 수 있습니다. 다음 단계로 넘어갈 수 있도록 기본 내용을 정확하게 알려줍니다. 필요한 부분이 있습니다파일 업로드와 다운로드. 입문이나 기본 내용을 알려줄 때 종종 빠지는 부분입니다. 실제로는 정말 많이 쓰이는데 의외로 소홀히 다루어지는 경우가 있습니다. 사진을 올리거나 첨부파일을 올리고, 양식이나 자료를 다운로드하는 경우를 수없이 만나는데 말이죠. 파일 처리에서 알아야 할 부분을 정확하게 짚어줍니다. 제목처럼 입문하며 알아야 하는 내용이 충실하게 들어가 있습니다. 사람에 따라서는 예제에 나오는 코드가 조금 아쉬울 수 있지만, 다음 단계로 나아가기에는 충분하다고 생각합니다. 책에 있는 내용에 익숙해지면 조금씩 욕심이 생기는 건 어쩔 수 없다고 봅니다. 조금 더 다양한 경우를 떠올리면 어떻게 대응할지 고민하게 되고, 찾아보게 될 것입니다. 인터넷이나 AI를 통해 얻을 수 있는 다양하고 풍부한 자료를 받아들이는 발판을 만들어주기에 충분하다고 생각합니다. 출판사에서 도서를 제공받아 작성한 리뷰입니다. |
|
≪코딩 자율학습 FastAPI 파이썬 백엔드 개발 입문≫은 FastAPI의 핵심 개념과 실습을 다루는 입문서입니다. 이론 학습 후 직접 투두 앱을 구현해보며 전체 프로젝트 구조와 백엔드 개발 흐름을 손쉽게 익힐 수 있도록 구성이 되어 있습니다. 큰 그림을 그리며 학습할 수 있어서 전체적인 과정을 익히는데 좋습니다. |