jungsun***
2021-05-23

파이썬의 비동기 라이브러리인 Asyncio를 소개 및 활용하는 방법을 담은 전문서이다. 많은 예제를 통해 기존 스레드 라이브러리와 Asyncio 라이브러리의 차이점을 설명한다. Asyncio와 호환되는 서드파티 라이브러리 사례들도 소개하여 실전에서 활용할 수 있다.
파이썬 3.4에 asyncio 라이브러리가 도입되었고, 파이썬 3.5에서는 더 쉽게 사용할 수 있도록
async와 await 키워드가 도입되었다고 한다.
이제 이렇게 추가된 기능들을 통해 비동기 프로그래밍이 가능해졌는데, 파이썬 초보자가 이를 스스로 익히기는
복잡한 부분이 많다. 그런 점들을 해결해주기 위해 출판된 책, Using Asyncio in Python!
https://book.naver.com/bookdb/book_detail.nhn?bid=18992958
파이썬 비동기 라이브러리 Asyncio
비동기 프로그래밍의 지름길 ASYNCIO비동기 프로그래밍을 위한 파이썬 라이브러리 ASYNCIO를 다루는 실용서다. 대규모 동시성 작업과 높은 안전을 보장하는 ASYNCIO를 다양한 사례로 소개한다. 예제를 통해 파이썬의 기존 방식과 새로운 비동기 방식의 차이점을 실용적인 관점에서 설명하고 ASYNC/AWAIT 언어의 새로 도입된 문법과 ASYNCIO와 호환되는 인기 있는 라이브러리를 소개한다.
파이썬 3의 Asyncio로 뭘할 수 있나요?
출처 입력
1. 단일 프로그램에서 동시에 여러 개의 HTTP 요청을 병행하여 실행할 수 있다.
2. 단순히 기능을 추가하지 않고, 프로그램 설계 방식을 변화시킨다.
3. 대기를 필요로 하는 여러 개의 작업을 동시에 잘 수행할 수 있다.
=> 이 작업이 완료되길 기다리는 동안 다른 작업을 수행할 수 있도록 하는 것
+ 본문 내용 중 ThreadsBot 식당 이야기를 통해 자세히 설명해주고 있는데, 너무 자세해서
초보자도 금방이해할 수 있을 것 같다.
Asyncio로 해결할 수 있는 것은?
1. 스레드를 사용하는 선점형 멀티태스킹보다 안전한 대안이 될 수 있다.
2. 동시에 수천 개의 소켓 연결을 간단히 처리할 수 있다.
=> 스레딩의 장단점과 우리가 비동기 프로그래밍에 대해 잘못알고 있는 점들을 바로잡아주면서
Asyncio에 대해 설명한다. 기존에 스레드를 직접 다뤄보지 않았더라도, 책에 쉬운 실습코드가 제공되기에
부담없이 실습하며 진행하기 좋았다.
파이썬의 비동기 기능, 누구를 위해 만들어졌나?
1. 최종 사용자 개발자
- 애플리케이션을 개발할 때 asyncio를 사용하길 원하는 사람들로, 책에서 필자는 우리와 같은 사람들을 지칭했다.
2. 프레임워크 개발자 혹은 설계자
- 최종 사용자 개발자들이 애플리케이션을 개발할 때 사용하는 프레임워크와 라이브러리를 만드는 사람들
=> 파이썬 공식 문서는 프레임워크 개발자에게 적합한데, 최종 사용자 개발자가 대략적으로 파이썬 공식 문서를
읽을 경우 혼란에 빠지는 것을 방지하기 위해 책을 쓰셨다고 한다!
마무리 하며..
비동기 프로그래밍에 대해 관심이있고, 많은 예제를 접해보고 싶은 개발자에게 적합한 책이다.
다만 소켓이나 통신의 개념, http에 대한 내용을 알고있어야 이책을 더 잘 활용할 수 있을 것 같다.
학부 1, 2학년에겐 다소 적합하지 않을 것 같고, 어느정도 CS 개념을 배우고 파이썬을 접해본 3학년 학생이상에게 추천한다.
예전에 리눅스에서 소켓을 구현해서 뭔가 통신을 했던 과제를 진행했던 적이 있는데, 그 과제를 하기 전 이책을 읽었다면 정말 이해가 잘됐을 것 같다. 그만큼 소개가 너무 잘되어있고, 책도 비교적 얇은 편이기에 부담없이 읽을 수 있어서 비동기 프로그래밍을 배우길 원하는 사람에게 꼭 추천해주고 싶은 책이다 :D
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다."