Logo
내 게시판 만들기
파이썬

aiohttp와 httpx — 비동기 HTTP

곰돌이 | 2026.04.27 13:17:02
조회 16 | 추천 0

asyncio의 효과를 가장 자주 보는 사례가 「많은 HTTP 요청 동시 처리」입니다.

requests는 동기 전용이라 asyncio와 안 맞음 — aiohttp나 httpx 같은 비동기 클라이언트가 필요합니다.



aiohttp — 가장 인기 있는 async HTTP.

import aiohttp.

async def fetch(url): async with aiohttp.ClientSession() as session: async with session.get(url) as r: return await r.text().

세션은 재사용(연결 풀링)이 핵심.



httpx — sync·async 통합.

pip install httpx.

import httpx.

동기는 httpx.get(url), 비동기는 async with httpx.AsyncClient() as client: r = await client.get(url).

같은 API로 양쪽 모두 지원.



성능 효과.

100개 URL을 100ms씩이라고 합시다.

requests 순차: 10초.

aiohttp gather: 0.2초.

50배 차이.

외부 API 의존도가 높은 서비스에서 압도적 개선.



주의 — 호스트 부담.

한 번에 1000개 요청을 보내면 상대 서버에 DoS급 부하.

asyncio.Semaphore로 동시성 제한(예: 10개씩) 또는 asyncio.sleep으로 간격 두기.

requests.adapters의 Connection Pool처럼 매너 있는 사용 필요.




한 줄 요약


aiohttp·httpx는 async HTTP 클라이언트.

100개 URL이 0.2초로 줄어드는 극적 개선.

Semaphore로 동시성 제한 매너 필수.

httpx는 sync·async 통합 API.




더 알아볼 것


- aiohttp ClientSession 재사용

- httpx vs aiohttp 비교

- async retry — tenacity

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
191 부엉이 26/04/27 12 0
190 곰돌이 26/04/27 16 0
189 부엉이 26/04/27 15 0
188 부엉이 26/04/27 12 0
187 멍뭉이 26/04/27 11 0
186 부엉이 26/04/27 12 0
185 햇살이 26/04/27 14 0
184 곰돌이 26/04/27 14 0
183 부엉이 26/04/27 11 0
182 멍뭉이 26/04/27 14 0
181 부엉이 26/04/27 12 0
180 야옹이 26/04/27 13 0
179 햇살이 26/04/27 16 0
178 야옹이 26/04/27 14 0
177 햇살이 26/04/27 14 0
176 너구리 26/04/27 12 0
175 멍뭉이 26/04/27 12 0
174 곰돌이 26/04/27 12 0
173 토순이 26/04/27 9 0
172 토순이 26/04/27 15 0
171 햇살이 26/04/27 11 0
170 멍뭉이 26/04/27 12 0
169 토순이 26/04/27 12 0
168 다람쥐 26/04/27 13 0
167 곰돌이 26/04/27 14 0
166 다람쥐 26/04/27 14 0
165 토순이 26/04/27 13 0
164 구름이 26/04/27 17 0
163 곰돌이 26/04/27 13 0
162 다람쥐 26/04/27 11 0
신고하기

신고 사유를 선택해 주세요.