본문 바로가기

개발이야기/Python

(8)
Data Modeling 및 Validation을 위한 Pydantic Python은 데이터를 다루는 언어 중 아주 유연한 언어 이지만, 모델링 또는 데이터 유효성 검사 시 불편한 점이 있다. 아주 훌륭한 Dict, List 등의 자료형으로 많은 일들을 할 수 있지만 여전히 모델링을 하기엔 다소 부족한 점이 있다. Pydantic 이란? Pydantic은 Python에서 사용할 수 있는 데이터 직렬화 도구 이다. 이를 사용하면, 데이터 모델을 생성하고 그에 맞는 유효성 검사를 할 수 있다. 역시나 Pythonic 하게 Type hinting을 사용해 아주 간결하고 가독성이 좋게 만들 수 있게 도와 준다. 요즘 핫한 Python web framework인 FastAPI에서 데이터의 모델을 정의할 때 사용하고 있다. Pydantic 설치 pip install pydantic P..
Python 프로젝트 구성 끝판왕 Pyenv + Poetry Python으로 많은 것들을 할 수 있다. 단순한 프로그램 부터, 웹, ML 등 많은 프로젝트들을 Python을 사용해 만들어낼 수 있다. 보통 프로젝트를 시작하는 경우는 내가 처음 프로젝트를 시작하거나, 아니면 다른 사람이 먼저 시작한 프로젝트에 참여하거나.. 두가지 경우가 있을거같다. Python은 기본적으로 아주 느슨한 의존성 관리툴을 탑재하고 있다. (pip, requirements.txt..) Python프로젝트를 다른 사람과 같이 진행하다 보면 "어? 내 PC에서는 동작하는데?" 를 시전하는 경우가 적지 않다. 패키지 의존성 문제나, 서로 다른 Python 버전을 사용하는 경우 이런 Case가 발생한다. Pyenv와 Poetry를 같이 사용하면 위와 같은 문제를 대부분 해결 할 수 있다. Py..
Django에서 Request Log를 쉽게 확인해보자 현재 현업에서 Django를 사용해 Test에서 활용할 수 있는 Mock 서버를 만들어 사용 중 이다. Mock 서버에는 자동화 Test에서 여러 요청 들이 들어오는데 언제 어떤 요청이 들어왔는지 확인이 필요할 때가 있다. 그럴 때 마다 Docker logs를 사용해 귀찮고 눈이 아프게 확인했었는데 여간 불편한 일이 아니었다. 그래서, Django에 기본 Logger를 적용하고 이를 쉽게 확인 할 수 있는 방법을 적용해보려고 한다. 먼저 Django 기본 Logger 부터 적용해보자. Django 기본 Logger Django 기본 Logger 는 Django runserver 를 실행해보면 확인 해볼 수 있다. 서버 실행 부터 Exception, Request 정보 등 Debugging에 필요한 내용들..
Pyenv 설치와 사용법 - Python 버전 관리 도구 Pyenv는 Python 버전 관리 도구로, 여러 프로젝트에서 다른 버전의 Python을 사용할 수 있도록 해준다. 설치 방법: pyenv를 설치하려면 Git를 설치해야 한다. Git를 설치한 후, 터미널에서 다음 명령어를 입력하여 pyenv를 설치한다. $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv 설치 후 환경 변수를 설정해야 한다. (bash shell 기준) $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo -e 'if command -v pyenv 1>/dev..
FastAPI에 SQLAlchemy 연동하기 2022.09.16 - [개발이야기/Python] - 정말 빠른 Fast API 2023.01.18 - [개발이야기/Python] - FastAPI로 CRUD 구현하기 지난 2개의 포스팅에서 FastAPI를 사용해 CRUD를 구현하는 방법에 대해 알아 보았다. 이젠 실제 Database를 사용하여 Data를 다뤄보도록 하겠다. FastAPI에서 Database를 사용하려면 ORM이 필요하다. 여기서는 SQLAlchemy를 사용하겠다. 먼저 SQLAlchemy를 설치 하자. pip install sqlalchemy db.py Database와 연동하기 위한 파일을 작성해보겠다. main.py 와 같은 위치에 db.py 파일을 만들고 아래와 같이 작성해보자. #db.py from sqlalchemy impo..
FastAPI로 CRUD 구현하기 1부에서는 간단하게 FastAPI에 대해 소개하고 Hello world 를 작성해봤다. 2022.09.16 - [개발이야기/Python] - 정말 빠른 Fast API What things to do 블로그의 Back-end를 구현 블로그의 게시글을 조회하고, 생성하고, 업데이트하고 삭제하는 CRUD를 구현 GET POST PUT DELETE 1. GET 먼저 main.py에 아래와 같이 추가 작성해보자. # main.py from typing import Optional from fastapi import FastAPI fake_db = [] app = FastAPI() @app.get('/') def helloworld(): return {'message':'Hello World'} @app.get(..
정말 빠른 Fast API Introduction 비교적 새로운 Python back-end framework 인 FastAPI에 대해 소개하고자 한다. FastAPI framework, high performance, easy to learn, fast to code, ready for production 위 문구는 FastAPI Official page에 적혀있는 문구 이다. 말그대로 FastAPI는 고성능에 배우기 쉽고 작성하기 쉬운 production에 사용이 준비된 framework이다. 실제로 node.js 나 golang으로 작성된 서버와 비슷한 수준의 성능과 안정성을 자랑한다고 한다. 그리고 무려 FastAPI는 자동으로 Swagger document를 생성해준다. 그럼 한번 설치 해보자. How to install..
Python? Python은 프로그래밍 언어 중 하나이다. 현재 기준(2022년 9월) 굉장히 많은 인기를 누리고 있는 언어 중 하나로 다른 언어(C++, Java, js) 들과는 비교적 배우기 쉬운 언어에 속한다. 객체를 지향하는 프로그래밍 언어이고 굉장히 많은 라이브러리와 커다란 커뮤니티가 있다. Python은 웹, AI, Data 등 핫한 분야에서 많이 쓰이고 있다. 예전에는 빠르게 만들고 버릴(?) 용도로 mock up 등 많이 사용했던거 같은데, 이젠 Enterprise 급 서비스에서도 사용하려는 움직임이 많은 것 같다. Python의 장점은 사람의 언어와 비교적 비슷한 구조를 가진것이라고 생각한다. fruit = "apple" if not fruit == "apple": print("fruit is not ..