FastAPI에서 지도 기반 서비스 구현하기

FastAPI는 Python 기반의 빠르고 현대적인 웹 프레임워크로, 강력한 성능과 쉬운 사용성을 제공합니다. 이번에는 FastAPI를 활용하여 지도 기반 서비스를 구현하는 방법에 대해 알아보겠습니다.

1. 필요한 패키지 설치하기

지도 기반 서비스를 구현하기 위해 다음과 같은 패키지를 설치해야 합니다.

pip install fastapi
pip install uvicorn
pip install folium

FastAPI는 웹 애플리케이션을 개발하는 데 사용되며, folium은 지도 데이터를 시각화하는 라이브러리입니다.

2. FastAPI 애플리케이션 생성하기

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

위의 코드는 간단한 FastAPI 애플리케이션을 생성하는 예시입니다. “/” 경로에 접속하면 “Hello World”라는 메시지를 반환합니다.

3. 지도 데이터 시각화하기

import folium

m = folium.Map(location=[37.5665, 126.9780], zoom_start=13)
folium.Marker(location=[37.5665, 126.9780], popup="Seoul").add_to(m)

m.save("map.html")

위의 코드는 folium을 사용하여 서울의 지도를 생성하고, 마커를 추가하는 예시입니다. 마지막으로 생성된 지도를 “map.html” 파일로 저장합니다.

4. FastAPI에 지도 기반 서비스 추가하기

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()
app.mount("/static", StaticFiles(directory=""), name="static")

@app.get("/")
async def read_root():
    return {"Hello": "World"}

@app.get("/map")
async def show_map():
    return FileResponse("map.html")

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

위의 코드는 “/” 경로에 접속하면 “Hello World”를 반환하고, “/map” 경로에 접속하면 “map.html”을 반환하는 예시입니다. “/static” 경로를 통해 정적 파일에 접근할 수 있도록 설정합니다.

5. 실행 및 테스트

위의 코드를 실행하고 http://localhost:8000에 접속하여 결과를 확인할 수 있습니다. “/” 경로에 접속하면 “Hello World” 메시지가 표시되고, “/map” 경로에 접속하면 생성한 지도가 표시됩니다.

이제 FastAPI를 사용하여 간단한 지도 기반 서비스를 구현하는 방법에 대해 알아보았습니다. FastAPI의 강력한 기능을 활용하여 더욱 다양하고 복잡한 지도 기반 서비스를 개발할 수 있습니다. 게다가 FastAPI의 빠른 속도와 효율성을 통해 사용자에게 더 나은 경험을 제공할 수 있습니다.

#FastAPI #지도기반서비스