비동기 웹 개발을 위해 aiohttp 라이브러리를 사용하는 Python을 고려해 보신적이 있나요? aiohttp는 신속하고 확장성 있는 비동기 HTTP 웹 서버를 작성하기 위한 강력한 프레임워크입니다. 이번 블로그 포스트에서는 aiohttp를 사용하여 간단한 HTTP 서버를 어떻게 시작할 수 있는지 알아보겠습니다.
1. aiohttp 설치하기
pip install aiohttp
먼저 aiohttp를 설치해야 합니다. 위의 명령어를 사용하면 손쉽게 aiohttp를 설치할 수 있습니다.
2. 간단한 HTTP 서버 작성하기
이제 aiohttp를 사용하여 간단한 HTTP 서버를 작성해보겠습니다. 아래의 코드를 server.py
로 저장해주세요.
import aiohttp
from aiohttp import web
async def handle(request):
return web.Response(text="안녕하세요, aiohttp 서버입니다!")
app = web.Application()
app.router.add_get('/', handle)
web.run_app(app)
위의 예제 코드는 aiohttp에서 제공하는 web
모듈을 사용하여 handle
함수를 작성하고, 이를 app
의 루트 경로(/
)에 맵핑하는 방식으로 간단한 웹 애플리케이션을 구성합니다.
3. HTTP 서버 실행하기
서버를 실행하기 위해 터미널에서 다음 명령어를 실행하세요.
python server.py
서버가 성공적으로 시작되면, http://localhost:8080
로 접속하여 “안녕하세요, aiohttp 서버입니다!”라는 메시지가 표시되는지 확인해보세요.
4. 요청 및 응답 처리하기
본 예제는 단순한 “Hello, World!” 메시지를 응답으로 돌려주는 예제입니다. 하지만 aiohttp를 사용하면 요청 및 응답을 다양한 방식으로 처리할 수 있습니다. 예를 들어, JSON 데이터를 응답으로 전송하거나, 데이터베이스와의 상호작용 등의 작업을 수행할 수 있습니다.
import aiohttp
from aiohttp import web
import json
async def handle(request):
data = {
'message': '안녕하세요, aiohttp 서버입니다!'
}
return web.json_response(data)
app = web.Application()
app.router.add_get('/', handle)
web.run_app(app)
위의 코드는 JSON 응답을 생성하는 예제입니다. handle
함수는 web.json_response
를 사용하여 data
딕셔너리를 JSON으로 변환하여 응답으로 반환합니다.
5. 정적 파일 서빙하기
aiohttp는 정적 파일을 서빙하는 기능도 제공합니다. 예를 들어, HTML, CSS, JavaScript 파일 등을 제공하기 위해 사용할 수 있습니다.
import aiohttp
from aiohttp import web
async def handle(request):
return web.Response(text="Hello, World!")
app = web.Application()
app.router.add_get('/', handle)
app.router.add_static('/static/', path='./static')
web.run_app(app)
위의 코드에서 app.router.add_static
함수를 사용하여 정적 파일을 제공할 경로(/static/
)를 지정합니다. path
매개변수에는 정적 파일이 위치한 디렉토리 경로를 설정합니다.
결론
이제 aiohttp를 사용하여 비동기 HTTP 서버를 시작하는 방법을 알아보았습니다. aiohttp는 강력하고 유연한 웹 프레임워크로, 비동기 웹 애플리케이션을 쉽게 개발할 수 있도록 도와줍니다. aoihttp의 다양한 기능과 옵션에 대해 더 알아보기 위해 공식 문서를 참고해보세요!