본문 바로가기

반응형

FastAPI

(5)
모던 웹과 파이썬 FastAPI는 파이썬으로 작성하는 웹프레임워크로 java버전인 spring의 파이썬 버전이라고도 할 수 있다. FastAPI를 공부하기 전 간단한 웹 개념에 대해 공부해보고 들어가보자. 웹이란 (Wide World Web)을 주로 지칭한다. W3라고도 부르는데, 팀 버너스 리가 만들어낸 정보 시스템이다. 팀 버너스 리가 유럽 연합 물리 연구회? 같은 회사에서 재직 당시 각각 다른 정보 시스템을 쓰고 있어, 서로 다른 부서와 정보를 열람하고 보는 데 어려움이 있어서 만들게 되었다. 원래는 트리 구조로 상위 폴더에서 타고 열람을 해야했었는데, HyperText Transfer Protocol(HTTP)을 도입하여 url로 서버와 클라이언트가 응답하며 주소로 바로 들어갈 수 있게 만들었다. 간단하게 웹이..
(번외) Alembic ‘Target database is not up to date’ 오류 원인 진단 📘 문제(Problem) – Alembic 마이그레이션 오류 분석다음은 Python FastAPI + SQLAlchemy + Alembic을 사용하여 SQLite 데이터베이스를 설정하던 중 발생한 실제 콘솔 출력이다.[지문]개발자는 SQLite 데이터베이스(myapi.db)와 Alembic을 이용해 모델을 마이그레이션하려고 한다.그러나 다음과 같은 오류가 반복적으로 발생하였다. $ alembic revision --autogenerate -m "init" INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ERROR [alembic..
모델로 데이터베이스 관리하기 데이터 베이스를 사용하려면 SQL 쿼리(query)라는 구조화된 질의를 작성하고 실행하는 등의 복잡한 과정이 필요하다는 것은 모두가 알고 있습니다. CRUD 작업은 DML(INSERT, SELECT, UPDATE, DELETE)에 해당하며, 테이블을 생성하거나 수정하려면 DDL(CREATE TABLE, ALTER TABLE 등)을 알아야 합니다. DDL(Data Definition Language)을 알고 있어야, 즉 데이터 랭귀지, 명령 구문을 알고 있어야 테이블 생성하거나 수정이 가능합니다. 하지만 이제 ORM(object relational mapping)을 이용하면 파이썬 문법만으로도(다른 언어도 가능함, spring boot- java, 각 언에 맞는 ORM 프레임워크가 존재함) 데이터베이스를 ..
async 비동기, 코루틴 함수 웹서버를 운영할 때 I/O 연산이 오래 걸리는 어플리케이션이 존재할 수 있다. 이것을 그냥 마냥 기다리는 건 시간과 자원 낭비다. 그러므로 비동기를 사용하여 효율적으로 시간과 자원을 사용할 수 있다.밑의 내용은 비동기에 대한 설명을 요약한 것이다.🧠 5줄 멘탈모델async def f()는 코루틴 함수. f()를 호출해도 아직 안 실행됨(코루틴 객체만 생김).**await f() → “내 코루틴만” 잠시 멈추고 f가 끝나면 그 다음 줄로 진행. (루프는 계속 돌아서 다른 태스크는 실행됨)동시에 돌리고 싶으면 await asyncio.gather(f(), g()) 또는 task = asyncio.create_task(f()).이벤트 루프를 막지 말기: time.sleep, 동기 I/O 금지 → await ..
챗봇 기반 앱 테스트

반응형