asyncio를 직접 만들어보자
Experienced 2 hours 한국어 20 명
김준기 래블업
현재 Lablup ("래블업") CTO를 맡아 Backend.AI를 개발하고 있습니다. Python, C/C++을 주력 언어로 쓰고 Go와 Rust에도 관심이 있습니다. 특히 고성능 비동기 프로그래밍에 관심이 많습니다.
80 Gbps급 GPU 가속 패킷 처리 프레임워크를 개발하여 KAIST에서 전산학과 박사학위를 받았고, Microsoft Research Cambridge와 NexR (KT 인수)에서의 연구·엔지니어링 인턴십을 통해 다양한 규모의 백엔드 시스템에 대한 분석 및 구현 경험을 가지고 있습니다. 오픈소스 활동을 통해 Textcube, iPuTTY, Python, DPDK, pyzmq, aiodocker, aiohttp 등의 프로젝트에 기여해왔으며 KOSSLAB 글로벌 오픈프론티어 4, 5기로도 활동하고 있습니다.
취미로 바흐, 모차르트, 슈베르트, 쇼팽, 유키구라모토 등의 피아노 곡을 연주합니다. 요즘은 바로크 음악에 빠져있고, 좋아하는 게임은 마인크래프트입니다. 운동은 자전거와 케틀벨을 합니다.
등록 마감
Tutorial Information
일시 : 2018-08-17 10:00:00 ~ 2018-08-17 12:00:00
Brief
PyCon APAC 2018의 발표 세션 중 하나인 Jonas Obrist의 “Artisanal Async Adventures” 발표의 한국어 버전 튜토리얼입니다. async/await 문법과 asyncio를 제외한 Python 표준 라이브러리만 활용하여 간단한 비동기 소켓 서버를 함께 만들어봅니다.
Detailed description
올해 5월 31일 ~ 6월 2일 싱가포르에서 열린 PyCon APAC 2018의 발표 세션 중 하나인 Jonas Obrist의 “Artisanal Async Adventures” 발표의 한국어 버전 튜토리얼입니다. 세션 발표였기 때문에 실제 발표는 빠른 속도의 설명과 함께 20여분 만에 모든 구현을 끝냈으나, 이 튜토리얼은 함께 코딩하면서 충분한 시간을 가지고 배경지식에 대한 설명을 함께 진행하고자 합니다.
async/await 문법을 사용하지만 asyncio 라이브러리는 전혀 사용하지 않고 100줄 정도의 코드로 소켓 서버 기능을 하는 완전한 비동기 I/O 서버를 직접 백지에서부터 같이 만들어봅니다.
개요 슬라이드 : https://speakerdeck.com/achimnol/pycon-kr-2018-making-asyncio-on-our-own
얻어갈 수 있는 것들
- async/await와 coroutine이 더 이상 특별한 무언가가 아닌 Python generator의 연장선에 있음을 이해함
- asyncio에 존재하는 Task, Future와 같은 개념들이 왜 등장하였고 어떻게 다른지, AbstractEventLoop가 왜 그런 인터페이스를 가지게 되었는지 이해함
- 운영체제와 비동기 I/O 애플리케이션 간의 상호 작용을 이해함
대상 청중
- 중급~고급 : Python을 능숙하게 다룰 수 있고 소켓 프로그래밍에 대한 기초 지식이 있어야 함
준비물
- Python 3.6 이상 버전이 설치된 Linux/macOS/Windows 개인별 랩탑
Back to list