승상의 코딩 블로그
소프트웨어를 좋아합니다. 문의사항은 아래 이메일로 연락바랍니다. email : liang1008@naver.com
우리가 아는 '의존성 주입' 은 한 객체가 다른 기능을 수행하기 위해 다른 객체를 사용하는 것을 말한다.내부에서 객체를 직접 생성하는 것이 아니라, 외부에서 주입하는 방식이다. 이는 관계의 역전을 만든다.내가 커피를 타먹는 것이 아니라(직접 생성)커피를 주문하여 남이 만들어준 커피를 먹는것(주입)이다. 의존성 역전을 활용하면 결합도가 낮아지고, 코드 재사용사어이 좋아지고, 유지보수가 쉬워지고, 테스트가 용이해진다. DependsFastAPI 에서는 Depends 라는 함수를 통해 의존성을 주입할 수 있다. 파라미터 처리에 의존성 주입이 없다면,각 함수마다 모든 파라미터를 중복해서 적어야한다.그러면 코드를 수정해야할 때 모든 함수의 파라미터를 수정해야한다.# 의존성을 주입하기 전, 모든 함수에 파라미터를..
HTTP 메서드(Get, Post, Put, Delete 등) 은 요청의 의도를 표현하기 위해 구분되어 있다. HTTP 메서드를 구분하여 설계하면, 요청의 의도를 명확하게 할 수 있다.2025.07.19 - [Python (파이썬)/FastAPI] - [FastAPI] CORS 허용하기 [FastAPI] CORS 허용하기브라우저는 보안상의 이유로 다른 Origin 의 자바스크립트가 API 요청을 보내는 것을 기본적으로 차단한다.Origin 이라는 것은 "프로토콜 + 도메인(IP) + 포트" 를 의미한다. 예를 들어, React 서버가 httpseungsang.tistory.commiddleware 를 설정할 때, HTTP Method 에 대해서도 설정했었다. 이를 통해 보안 정책을 설정할 수 있다.또한,..
Path Parameter 와 Query Parameter 는 RestAPI 설계에서 중요한 부분이니, FastAPI 에서 설정하는 방법을 알아보자. Path Paramter 는 리소스를 식별할 때 사용하고, Query Paramter 는 리소스의 속성 또는 조건을 설정할 때 사용한다. - /users/1 : 특정 User 를 Path Parameter 로 식별 @router.get("/{id}")async def get_user(id:int): ...- /users?limit=1 : 리소스에 대한 제약을 Query Paramter 로 설정@router.get("/")async def get_users(limit:int): ... 참고로, 타입힌트를 적어놓으면, 요청으로 받은 데이터가 각 타입으로 자동변..
Router 를 사용하면 기능별로 모듈화할 수 있다.모듈화 되어있기 때문에 각 모듈별로 설정을 가져가기 쉽다.그리고 확장에도 유연해진다. 모듈만 붙이면 되기 때문이다.또한 swagger 로 자동으로 문서를 생성할 때도 각 라우터별로 분류해준다.라우터 적용하기router 는 routers 폴더안에 보관했다. - main.py(fastapi)# main.pyfrom fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewarefrom fastapi.staticfiles import StaticFilesfrom routers import usersapp = FastAPI(title="사내 복지 관리 시스템", version="1.0.0")#..
서버에는 static/ 폴더 안에 coca.png 가 들어있다. 이 이미지를 프론트에서 받아 띄울려면 어떻게 해야할까?아마, http://127.0.0.1:8000/static/coca.png 로 요청할 것인다. 하지만, 브라우저에서는 http://127.0.0.1:8000/static/coca.png 요청을 보내도 이미지를 가져올 수 없다.서버에서 이 폴더를 마운트해야하기 때문이다. FastAPI 에서는 app.mount() 는 특정 경로에 외부 앱, 미들웨어, 파일 시스템을 연결할 수 있다.app.mount("/static", StaticFiles(directory="static"), name="static") - "/static" : 클라이언트가 접근할 URL 경로 ex. /static/coca.p..
브라우저는 보안상의 이유로 다른 Origin 의 자바스크립트가 API 요청을 보내는 것을 기본적으로 차단한다.Origin 이라는 것은 "프로토콜 + 도메인(IP) + 포트" 를 의미한다. 예를 들어, React 서버가 http://127.0.0.1:3000 동작하고 있고, FastAPI 서버가 http://127.0.0.1:8000 에 동작하고 있다고 하자.React 가 FastAPI 서버로 요청을 한다고 하자. 프로토콜과 도메인은 동일하지만, 포트가 3000, 8000 으로 다르기 때문에 브라우저는 이 요청을 차단한다. 리액트 파일들을 빌드하기 전, 개발하는 단계에서 리액트 개발서버를 사용한다.코드 변경시 리로딩하여 변경사항을 확인하기 위해서다. 이 때, FastAPI 서버와 React 서버 두개가 ..