목록 보기
Asyncio 없이 싱글 스레드 논 블락킹 비동기 서버 만들기 (Feat. Event Loop 이해하기)
백엔드

Asyncio 없이 싱글 스레드 논 블락킹 비동기 서버 만들기 (Feat. Event Loop 이해하기)

뤼이드
뤼이드
2025년 1월 22일

두줄요약

asyncio 없이 소켓과 selectors만으로 비동기 서버를 단계적으로 구현해보았습니다. 이를 통해 asyncio 이벤트 루프가 I/O 이벤트를 기다리고 처리하는 원리를 설명했습니다.

핵심 내용

  • asyncio 없이 socket만으로 싱글 스레드 논블로킹 비동기 echo 서버를 단계적으로 구현
  • blocking accept/recv를 non-blocking으로 바꾸고, 여러 커넥션을 리스트로 순회하며 처리
  • selectors를 이용해 I/O 이벤트를 구독하고, OS의 epoll/kqueue/IOCP에 폴링을 위임
  • asyncio 이벤트 루프도 내부적으로 selectors와 while 루프를 사용해 이벤트를 처리하는 구조로 설명

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...