asyncio 2

[FreePBX] Python으로 AMI 프로그래밍 테스트 2 (이벤트 수신 및 처리 - 비동기 방식)

안녕하세요. 지난 글 "Python으로 FreePBX AMI 프로그래밍 테스트 1 (연결, Ping, 종료흐름)"에서는 Python의 socket 모듈을 사용하여 FreePBX AMI에 접속하고, 간단한 명령(Login, Ping, Logoff)을 실행하는 동기적인 기본 흐름을 살펴보았습니다. 하지만 전화 시스템의 상태 변화(예: 전화 수신, 통화 종료, 채널 상태 변경 등)를 실시간으로 감지하고 이에 맞게 처리하려면 조금 다른 접근 방식이 필요합니다. 바로 AMI가 지속적으로 보내주는 이벤트(Event)를 수신하고 처리하는 것입니다. 이번 글에서는 Python의 asyncio라이브러리를 활용하여 FreePBX AMI로부터 이벤트를 비동기적으로 수신하고, 특정 이벤트를 감지하여 처리하는 방법을..

[MicroPython] async 함수에서 return(result) 값 받는 방법

안녕하세요.  asyncio는 async/await 구문을 사용하여 동시성 코드를 작성할 수 있게 해주는 모듈로, asyncio를 사용하면 단일 스레드 작업을 병렬로 처리할 수 있습니다.   그리고 async 함수에서 리턴하는 값도 받을 수 있습니다.   그런데 MicroPython에서는 리턴 값을 받는 방법이 약간 달라서 남겨봅니다.     asyncio는 async/await 구문을 사용하여 동시성 코드를 작성할 수 있게 해주는 모듈로, asyncio를 사용하면 단일 스레드 작업을 병렬로 처리할 수 있습니다.   1. 일반 Python에서 비동기 함수에서 리턴 받는 코드   간단한 샘플 코드로 숫자의 합을 구하는 비동기 함수를 만들고 A, B의 두 개의 Task로 해서 coroutine으로 생성합니다..

Programming/Python 2024.07.19