Python (16) 썸네일형 리스트형 Pydantic 동적 타입(Dynamic Typing) 언어 파이썬은 동적 타입(Dynamic Typing)으로 설계된 언어 입니다. C언어나 JAVA와 같은 정적 타입 언어의 경우 변수를 만들 때 타입을 명시하여 메모리에 얼마나 쓸지 미리 지정해야하는 반면, 파이썬과 같은 동적 타입 언어는 코드가 실행 될 때 변수의 타입을 알아서 추론하는 방식입니다. 동적 타입 언어는 많은 장점을 가지고 있습니다. 타입을 일일이 지정하지 않기 때문에 코드가 간결해 지며, 자바와 같은 언어에서는 제네릭이나 다형성, Object 자료형 등을 복잡하게 설계해야하는 함수나 리스트의 경우에도, 파이썬은 동적 타입 덕분에 함수나 리스트에 온갖 종류에 데이터를 섞어도 빌드 과정에서 에러를 일으키지 않습니다. 또한 개발 입문자나, 코딩이 필요한.. FastAPI와 비동기 동기식 / 비동기식프로그래밍을 하다보면 동기식 / 비동기식이라는 개념을 많이 접하곤 합니다. 프로그래밍 언어에서의 동기식 / 비동기식 정의를 살펴보면 아래와 같습니다.동기식 :하나의 작업이 완료된 후 다음 작업을 수행하는 방식 즉, 현재 작업이 끝날 때까지 다음 작업은 대기비동기식 : 작업이 완료될 때까지 기다리지 않고, 기다리는 동안 다른 작업을 수행할 수 있는 방식 세상에는 많은 프로그래밍 언어가 있고 대부분의 언어는 동기식과 비동기식을 양쪽 모두 지원합니다. 그러나 보통 특정 언어는 두가지 중 하나의 특징이 더욱 강조되곤 합니다. 예를 들면 C/C++ 과 java 와 같은 언어는 동기식이 더 강도되는 반면 파이썬이나 JS의 같은 경우는 비동기식이 더욱 강조되는 경향이 있습니다. 조금더 자세히.. SQLAlchemy CRUD 만들기 지난 포스트에서 FastAPI와 SQLAlchemy 연동을 수행하였습니다. 이제 이를 통해 간단한 CRUD 로직을 구현해 보겠습니다. CRUD 디렉토리 구조 https://dkkim2318.tistory.com/175 FastAPI 프로젝트 생성프로젝트 디렉토리 생성FastAPI의 프로젝트를 생성할 디렉토리를 만들어 줍니다. 해당 포스트에서는 C:\FastAPI\projects 디렉토리를 만들겠습니다. 디렉토리를 만든 후 프로젝트를 추가하기 전 가상dkkim2318.tistory.com 해당 포스트의 디렉토리 구졸르 참조하여 먼저 디렉토리를 구성해 보겠습니다. schemas/ 와 같은 경우에는 아직 pydantic에 대해 다루지 않았기 떄문에 데이터메이스와의 매핑은 models로만 구성하겠습니다. 아래 .. FastAPI와 SQLAlchemy 연동 SQLAlchemy SQLAlchemy는 파이썬에서 데이터베이스를 다룰 때 가장 많이 사용되는 ORM 라이브러리 입니다. FastAPI에서 DB를 다룰때(커넥션, CRUD...등등) 필수는 아니지만, SQLAlchemy를 가장 널리 사용합니다. ORM의 특성을 이용해 객체에 데이터베이스를 매핑하고 비즈니스 로직으로 DB를 처리할 뿐만 아니라, 자바 환경에서 개발을 해본신 분들이라면 접해봤을 Mybatis 처럼 직접 SQL를 작성하고 매핑하는 방식도 지원하기 때문에 FastAPI는 DB제어에 SQLAlchemy를 적극적으로 권장하고, 예제 또한 가장 많이 존재합니다. SQLAlchemy의 특징 SQLAlchemy의 대표적인 특징에 대해 알아보겠습니다.1. ORM (Object Relation Mappi.. FastAPI Swagger Swagger REST API를 개발하다보면, 내가 만든 API의 사용법을 프로트엔드 개발자나, 협업하는 동료, 고객사들 에게 API에 대한 안내가 필요합니다. 실제 현업에서 일하다 보면 고객사에게 API 가이드를 작성해 전달해 주어야 하는 경우도 생기고 조직 내에서 API 정보 공유을 위해 노션, 엑셀, 워드....등등 API 명세서를 작성해 정보를 공유 하는 일이 빈번합니다. API를 작성할 때마다 이러한 명세서를 작성하는 번거로운 업무가 생기고, 만약 추후 API가 변경이 된다면 명세서를 매번 업데이트하고, 전달하는 작업이 수반되었습니다. 이러한 문제를 해결해 주는 도구가 바로 Swagger 입니다. Swagger는 개발자가 작성한 REST API를 사람들이 쉽게 이해하고 테스트할 수 있도록.. 데코레이터와 APIRouter 데코레이터 FastAPI 개발 소스 코드를 보면 가장 많이 볼 수 있는 코드는 단연 함수 위에 붙어 있는 @app ~ @router~ 형태의 구문입니다. 만약 Java/Spring을 경험해본 개발자 라면 어노테이션과 비슷한 개념으로 생각해도 되지만, 엄밀히 말하자면 데코레이터는 스스로 함수를 바꾸고 시스템에 등록하는 함수에 가깝습니다. 데코레이터는 URL 경로와 HTTP 메서드를 특정 함수에 연결해 주는 역할을 수행합니다. 이를 통해 클라이언트의 요청을 파이썬 함수가 처리할 수 있도록 라우팅을 구성하며, 다양한 부가 기능을 설정할 수 있습니다. 이번 포스트에서는 데코레이터의 여러 활용방안에 대해 다루어 보겠습니다. 데코레이터 메서드의 종류와 활용법데코레이터의 메서드로 올 수 있는 함수들의 유형은 크게 .. FastAPI와 uvicorn 연동 uvicorn FastAPI는 이전 포스트에서 설명 드렸던 것 처럼 "웹 프레임워크" 입니다. https://dkkim2318.tistory.com/173 FastAPI와 현대 백앤드 개발 패러다임FastAPI 파이썬 생태계에서 '웹 프레임워크' 라고 하면 대부분의 개발자나, 해당 도메인에 지식이 있는 사람들은 Django나 Flask를 먼저 떠올릴 것입니다. 2000년대 이후 규모가 좀 있는 웹 애플리케이dkkim2318.tistory.com 웹 프레임워크라 하여 꼭 화면을 랜더링 한다기 보단 API 개발에 초점을 맞춘 프레임워크지만, 본질 적으로 FastAPI를 구동하기 위해선 개발자가 만든 코드를 인터넷과 연결해 주는 웹 서버(엔진)이 필요합니다. uvicorn은 fastAPI를 구동하기 위한 웹 .. FastAPI 프로젝트 생성 프로젝트 디렉토리 생성FastAPI의 프로젝트를 생성할 디렉토리를 만들어 줍니다. 해당 포스트에서는 C:\FastAPI\projects 디렉토리를 만들겠습니다. 디렉토리를 만든 후 프로젝트를 추가하기 전 가상환경에 진입합니다.[가상환경의 Scripts 경로] > .\activate 이후 프로젝트를 생성할 디렉토리를 만들어 줍니다 FastAPI의 디렉터리 구조 설계 결론부터 말하자면, FastAPI는 Sping 이나 Django와 같은 프레임워크와 달리 어떤 디렉터리 구조로 만들어야 동작한다와 같은 강제적인 규칙이 없습니다. 매우 자유롭기 때문에 하나의 파일에 모든 코드를 전부 작성해도 작성합니다. 이러한 제약없는 유연한 환경을 제공한느 것이 장점도 있지만, 프로젝트가 커지며 약속이 없다는 것은 관리 측면.. 이전 1 2 다음