Tech/FastAPI 4

alembic 에러

alembic revision - -autogenerate, alembic current 명령을 입력하면 무조건 이렇게 뜸 INFO [alembic.runtime.migration] Context impl SQLiteImpl.INFO [alembic.runtime.migration] Will assume non-transactional DDL.ERROR [alembic.util.messaging] Can't locate revision identified by '30e4c2d93125 'FAILED: Can't locate revision identified by '30e4c2d93125 ' 근데 30e4c2d93125은 잘 존재하는 파일인데…. 하루종일 이거저거 만지다가 스택오버플로우랑 이런 저런 곳에..

Tech/FastAPI 2024.01.16

FastAPI Depends 클래스 - Dependency Injection 의존성 주입

을 읽고 공부한 내용을 정리한 글입니다. 의존성이란? 의존성이란 두 클래스나 모듈의 연결, 관계를 의미한다. 만약 A와 B라는 두 모듈이 있을 때 A가 B에 의존한다면, B의 일부가 변경될 때 이것이 A에 영향을 끼친다는 의미이다. 자바 코드로는 아래와 같이 작성할 수 있다. // 예제 1 public class A{ private B b; public A(B b){ this.b = b; } } // 예제 2 public class A{ private B b; public A(){ this.b = new B(); } } 클래스 B의 객체가 클래스 A의 멤버 변수로, A는 B에 의존한다. // 예제 3 public class A{ public void doSomething(){ B b = new B(); ..

Tech/FastAPI 2024.01.12

FastAPI - app.get과 router.get 차이 (FastAPI와 APIRouter)

을 읽고 공부한 내용을 정리한 글입니다. app.get과 router.get의 코드가 둘 다 get이나 post를 쓰고 뒤에 URL이 온다는 점에서 쓰임새가 똑같아 보이는데 언제는 app.get을 쓰고 router.get을 쓰길래 둘의 차이가 궁금해졌다. app은 FastAPI 객체를 만들고 from fastapi import FastAPI app = FastAPI() @app.get("/hello") def hello(): return {"message": "Hello World"} router는 APIRouter 객체를 만든다. from fastapi import APIRouter, FastAPI app = FastAPI() router = APIRouter() @router.get("/items/"..

Tech/FastAPI 2024.01.09

FastAPI 시작하기 - FastAPI 설치 및 실행

여름에 스프링부트로 백엔드 공부를 시작했다. 코드를 따라치면서 용어는 익숙해졌지만 작동 구조가 이해되지 않아서 공부를 멈췄었는데 이번에 FastAPI로 CRUD를 해보면서 백엔드 감 잡기 프로젝트 일명 감따먹기... 아무튼시작 왜 하필 FastAPI를 선택했는가? 파이썬을 이용한 대중적인 프레임워크로 Django, Flask가 있지만 나는 비교적 최신 기술인 FastAPI를 선택했다. 개발된지 얼마 안 된 프레임워크라서 다른 두 프레임워크에 비해 인터넷 상에 교육자료가 적을 수 있다는 단점은 있었다. 하지만 나의 목표는 프레임워크 하나를 잡고 깊게 파는 것이 아니라 CRUD를 만들 때 서버와 클라이언트 간의 정보가 돌아다니고 프로그램이 작동하는 과정, 백엔드라는 게 무슨 일을 하는 건지 감을 잡기 위함이..

Tech/FastAPI 2024.01.09