위키득계정 ↗
기술

Boost Asio

Boost Asio기술
소속
Boost 라이브러리
주요 언어
C++
주요 역할
동기와 비동기 입출력
핵심 구성
입출력 객체와 실행 맥락
Boost.Asio는 C++에서 네트워크와 운영체제 자원의 동기 및 비동기 입출력을 다루는 라이브러리다. 입출력 객체와 실행 맥락 및 완료 처리를 연결해 오래 걸리는 작업을 구성한다.

운영체제 기능과의 연결

소켓 같은 입출력 객체는 실행 맥락을 통해 운영체제의 서비스를 이용한다. io_context와 스레드 풀 등의 실행 맥락이 이 연결을 제공한다. 네트워크에서 출발한 개념은 파일 서술자와 직렬 포트 등 다른 자원에도 적용된다.

시작과 완료의 분리

동기 작업은 호출 안에서 결과를 기다리는 반면 비동기 작업은 시작과 결과 처리가 나뉜다. 작업이 완료되면 실행 맥락이 결과와 오류 정보를 완료 처리기에 전달한다. io_context를 사용하는 구성에서는 루프를 실행해 준비된 완료 처리를 수행한다.

이식성과 상위 기능의 기반

운영체제 사이에 일관된 동작을 제공하면서 각 환경의 입출력 기능을 활용하도록 설계되었다. 특정 응용 구조를 강제하기보다 필요한 도구를 조합하는 방식이다. 이 기능을 바탕으로 HTTP 같은 상위 프로토콜 라이브러리를 구성할 수도 있다.

관련 문서

Seastar / libuv / libevent / API / 네트워크 / 비동기 프로그래밍