태그: Asio
13편
-
C++ TLS 통신: OpenSSL과 Asio 연동, 인증서 관리, mTLS, 흔한 SSL 에러
TLS 핸드셰이크 흐름을 짚은 뒤 Asio의 ssl::stream과 순수 OpenSSL로 각각 에코 서버·클라이언트를 구현합니다. 자체 서명·CA 인증서 생성, mTLS 클라이언트 인증 설정, 인증서 만료·호스트명 불일치·체인 누락 같은 SSL 에러 대처도 다룹니다.
-
C++ 채팅 서버 아키텍처: Acceptor-Worker 구조, 방 관리, 메시지 라우팅, 커넥션 풀
동시 접속 폭주, 메시지 전송 중 데이터 레이스, 느린 클라이언트 한 명이 전체를 늦추는 문제를 채팅 서버 설계로 풀어 봅니다. Acceptor-Worker 구조와 io_context 풀, RoomManager 기반 방 관리, 메시지 라우터, 연결 수 제한을 구현합니다.
-
C++ 채팅 서버 완성하기 | 인증·방 관리·메시지 히스토리 구현
JWT 인증, 다중 방 관리, 메시지 히스토리 페이지네이션, 청크 기반 파일 전송, 재연결 시 상태 복구까지 실전 C++ 채팅 서버를 완성합니다. shared_ptr 순환 참조, SQLITE_BUSY 락 충돌 같은 실전 트러블슈팅도 다룹니다.
-
C++에서 HTTP 제대로 파싱하기: 요청·응답 구조, 헤더 처리, 청크 인코딩, Beast 파서
HTTP 요청을 손으로 파싱하다 빠지는 함정에서 출발해 요청 라인·헤더·본문 구분, Content-Length 기반 읽기, 청크 디코딩을 직접 구현해 봅니다. 이어서 Boost.Beast 파서로 옮기고 body limit, Keep-Alive, CRLF 인젝션 문제를 다룹니다.
-
C++ Boost.Asio 고급 패턴 | 커스텀 서비스·타이머·시그널 [#52-1]
Boost.Asio에서 연결마다 타이머를 두는 서버, 시그널로 종료하는 서버를 만들 때 필요한 커스텀 서비스(타이머 휠), steady_timer 재사용, signal_set, strand, work_guard와 stop()의 차이, co_spawn·async_compose를 코드로 정리합니다.
-
C++로 Redis 클론 만들기: Asio 이벤트 루프, 프로토콜 파싱, GET/SET 저장소
Boost.Asio로 Acceptor와 세션을 만들고 간단한 텍스트 프로토콜을 파싱해 GET·SET·DEL·KEYS를 처리하는 최소 Redis 클론을 구현합니다. telnet·nc로 테스트하는 법과 redis-cli를 쓰려면 필요한 RESP 파싱, bad_weak_ptr, 쓰기 버퍼 수명, 멀티스레드 map 접근 문제도 다룹니다.
-
C++ 초경량 HTTP 웹 프레임워크 바닥부터 만들기
Express나 FastAPI 같은 사용감을 C++로 최소 구현하면서 요청 파싱, 경로 파라미터를 지원하는 라우터, 로깅·공통 헤더·인증 미들웨어 체인, 응답 직렬화를 차례로 만듭니다. Hello World 서버에서 라우팅과 미들웨어를 합친 예제까지 빌드해 봅니다.
-
C++ Boost.Asio io_context 이벤트 루프 | 동작 원리 정리 [#1]
Boost.Asio io_context가 작업 큐와 Proactor 모델로 핸들러를 실행하는 방식, run()과 poll()의 차이, run()이 곧바로 반환되는 문제를 work_guard로 막는 법, 단일·멀티 스레드 실행 모델과 graceful shutdown 구현을 다룹니다.
-
C++ 멀티스레드 네트워크 서버: io_context 스레드 풀, strand로 순서 보장, 세션 수명과 data race
Boost.Asio로 멀티스레드 서버를 만드는 방법. 여러 스레드에서 io_context 실행, strand로 순서 보장, 세션 수명 관리, 공유 상태 동기화, 채팅·HTTP 스타일 서버 예제와 벤치마크를 다룹니다.
-
Boost.Asio 채팅 서버 만들기: ChatRoom·Session 구조, strand 브로드캐스트, 입장·퇴장과 히스토리
Boost.Asio로 채팅 서버를 구현하는 방법. ChatRoom과 Session 설계, strand를 이용한 메시지 브로드캐스트, 입장·퇴장 알림, 메시지 히스토리, 자주 나는 에러와 동시 접속 벤치마크를 다룹니다.
-
Boost.Asio 입문: io_context, 비동기 타이머·읽기·쓰기, 핸들러 수명과 work_guard
Boost.Asio로 비동기 I/O를 시작하는 방법. 블로킹과 논블로킹 비교, io_context와 run, 비동기 타이머, async_read/async_write, 비동기 TCP 클라이언트·서버, 핸들러 수명과 work_guard 실수를 다룹니다.
-
Asio 이벤트 루프 동작 원리: run·poll 차이, post vs dispatch, work_guard, strand
Boost.Asio 이벤트 루프 정리. run/run_one/poll 차이, work_guard로 서버 유지하기, post와 dispatch, 멀티스레드 이벤트 루프와 strand, C++20 코루틴, 완료 핸들러 체이닝을 다룹니다.
-
2026년 Boost 라이브러리 훑어보기: Asio·Beast·Filesystem 설치와 활용
Boost를 apt·vcpkg·소스로 설치해 CMake find_package로 연결하는 과정, Asio·Filesystem·Regex·Program_options 예제, undefined reference·ABI 불일치 같은 링크 에러 해결, 표준 라이브러리로 옮길 시점까지 다룹니다.