[WAFFLE] 01-2 Factory
Published:
In this post, basic concepts about Factory is introduced.
Factory
Factory는 소프트웨어 디자인 패턴 중 하나로, 객체나 함수를 생성하는 역할을 하는 패턴이다. 팩토리는 객체 생성의 복잡한 과정을 감추고, 일관된 방법으로 필요한 객체나 함수를 만들 수 있도록 도와준다.
- 팩토리 패턴의 핵심 아이디어는 “직접 객체를 생성하는 대신, 객체 생성을 별도의 함수(혹은 클래스)에 맞기자”는 것이다.
class Car:
def __init__(self, model):
self.model = model
def car_factory(model_name):
return Car(model_name)
# 팩토리 함수로 Car 객체 생성
my_car = car_factory("Tesla")
여기서 car_factory 함수는 Car 객체를 생성하는 팩토리 함수이다. 팩토리 함수는 객체를 생성할 때 여러 복잡한 로직을 포함할 수 있고, 객체를 생성하는 일관된 방식을 제공한다.
Factory in FastAPI
FastAPI에서 자주 사용하는 HTTP 메서드(GET, POST 등)에 맞는 데코레이터는 내부적으로 팩토리 패턴으로 구현되어 있다. 예를들어, @app.get()는 사실 내부적으로 경로와 메서드 정보를 받아서 해당 요청을 처리할 함수를 반환하는 팩토리이다.
@app.get("/items")
async def read_items():
return {"items": ["apple", "banana"]}
여기서 @app.get()는 GET 요청을 처리할 엔드포인트를 만들어내는 데코레이터 팩토리이다. FastAPI가 read_items을 호출하는 부분은 사용자 코드에서 명시적으로 호출하지 않아도 됩니다. 대신 요청이 들어오면 FastAPI가 내부적으로 호출합니다.
You can learn about decorator at https://arcstone09.github.io/study/2024-10-04-waffle-1-3

Leave a Comment