HANCOM AI ACAMEMY/학습일지 🗒️

[스나이퍼팩토리] 한컴AI아카데미 15주차

c'est sunny 2025. 5. 8.


이번 주에는 월, 화 휴일에 금요일 내 개인 사정으로 빠져서 뭔가 쓸 게 별로 없음 ㅎ

 

수요일 학습 내용

1. 라우터 (Router)

FastAPI에서 라우팅은 @app.get(), @app.post() 등 HTTP 메서드 데코레이터로 구현됨.

각각의 경로에 대해 함수를 연결하며, 모듈화(APIRouter)를 통해 기능별 분리도 가능.

예시: from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "Hello FastAPI"}

 

2. 의존성 (Dependency)

FastAPI는 의존성 주입(Dependency Injection) 기능을 제공함.

Depends()를 이용해서 보안, 공통 로직, DB 연결 등을 깔끔하게 관리 가능.

일반적인 패키지 의존성은 pip과 requirements.txt로 관리함.

# DB연결 예제
from fastapi import FastAPI, Depends
app = FastAPI()

def get_db():
    db = {"name": "fake-db"}
    try: 
        yield db
    finally:
        print("DB연결 종료")

@app.get("/users")
def read_users(db = Depends(get_db)):
    return {"db_name" : db["name"]}

 

목요일 학습 내용

1. 미들웨어 (Middleware)

- FastAPI에서는 @app.middleware("http")를 사용해 HTTP 요청 전후에 동작하는 함수를 정의할 수 있음.

- 요청 처리 시간 측정, 로깅, 에러 처리 등 다양한 용도로 사용 가능.

 

2. CORS (Cross-Origin Resource Sharing)

- 브라우저 보안 정책으로 인해 다른 출처의 요청을 제한하는 것을 해결하는 설정.

- fastapi.middleware.cors.CORSMiddleware를 이용해 쉽게 설정할 수 있음.

app.add_middleware(
    CORSMiddleware, 
    allow_origins = origins, # 허용할 Origin
    allow_credentials = True, # 쿠키 인증 허용 여부
    allow_methods = ["*"], # 허용할 HTTP 메서드 (전부 허용)
    allow_headers = ["*"], # 허용할 Header
)

 

실습

 

 

내 폰으로도 API 접속해보았다.

폰으로 파이썬 하는 것 같아서 신기방기 ㅎㅎ 

 

 

 

 

 

본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 (B-log) 리뷰로 작성 되었습니다.

댓글