파비의 매일매일 공부기록

RESTful 파이썬 웹 제작 - 10장 #1 본문

Study/Python

RESTful 파이썬 웹 제작 - 10장 #1

fabichoi 2022. 4. 19. 23:30

이전 장에서 만든 API의 새 버전을 구성해서 토네이도의 비동기 작업과 결합된 넌블로킹 기능 활용할 예정

- 동기 및 비동기 실행 이해
- 비동기 코드로의 작업
- 비동기 데커레이터를 활용한 코드 리펙토링
- 비동기 및 넌블로킹 요청 처리기에 URL 패턴 매핑
- 토네이도 넌블로킹 API로의 HTTP 요청
- 단위 테스트
- 테스트 커버리지 개선

동기 및 비동기 실행 이해
- 동기 : HTTP 요청을 수신할 때마다 서버가 수신한 첫 번째 HTTP 요청에 대한 응답을 서버에서 보낼 때까지는 진입 큐에 들어 있는 다른 HTTP 요청들에 대해 작업을 시작하지 않음
- 특정한 상황에서는, 각 연산에 시간이 걸리면 다른 HTTP 요청을 처리할 가능성이 차단되므로 비동기로 구성하는 것이 좋음

비동기 데커레이터를 활용한 코드 리펙토링
- 비동기 실행이 끝나면서 실행되는 콜백이 들어간 비동기 코드 같이 각 메서드로 나눠진 코드를 읽고 이해하는 것은 난도가 높음.
- 토네이도는 제너레이터 기반 인터페이스를 제공해서 단일 제너레이터 속에서 요청 처리기의 비동기 코드 작성 가능
- 토네이도에서 비동기 코드를 작성하는 데는 코루틴을 사용하는 것이 좋음
- async_api.py 파일을 생성하여 새로운 API 작성

반응형
Comments