하루 정리 블로그 👋

많든 적든 하루에 하나씩

C++ 소켓 크로스 플랫폼 개발 - 3

지난 글에서 운영체제별 비동기IO 처리 메커니즘에 대해 알아봤습니다. 이제 본격적으로 클라이언트 연결을 수립하고 통신을 하는 Server 객체를 만들어 보도록 하겠습니다. 😎 ⚠️ Warning 아래 코드는 오래된 코드일 수 있습니다. 이곳에서 최신 코드를 확인할 수 있습니다. 🌳 구조 1 2 3 4 5 6 7 8 9 10 11 12 13 14 . ├── include/ │ └── yami/ │ └── comm/ │ ├── server.hpp │ └── socket.hpp └── src/ └── comm/ ├── server....

2026년 11월 02일 · 9 min · 1823 words · JongBin

C++ 형 변환(casting) 알아보기

윈도우 소켓에서 reinterpret_cast라는 캐스팅을 처음 봐서 캐스팅 종류에 대해 알아보고자 포스팅했습니다. 🎯 캐스팅 캐스팅(Casting)이란 어떤 데이터의 자료형(Type)을 다른 자료형으로 변환하는 것을 의미합니다. 캐스팅의 종류로는 암시적 변환(Implicit)과 명시적 변환(Explicit) 두 가지로 나눌 수 있으며 암시적 변환은 컴파일러가 자동으로 변환해 주고 명시적 변환은 프로그래머가 직접 변환하는 것을 말합니다. C++에서 캐스팅은 아래 네 가지 캐스팅 키워드로 할 수 있으며 버전에 따라 캐스팅 방법이 추가됐을 수 있습니다. 💡 info Q. 왜 C 스타일의 형 변환을 사용하지 않을까?...

2026년 10월 31일 · 2 min · 425 words · JongBin

C++ 소켓 크로스 플랫폼 개발 - 2

지난 글에서 리눅스와 윈도우에서 동시에 같이 사용할 수 있는 소켓 클래스를 만들어 봤습니다. 이번 글에서는 소켓에 데이터가 들어오는 것을 감지하고 처리할 수 있는 EventLoop 객체를 만들어 보겠습니다. 👍 EventLoop 객체에 사용되는 비동기 IO 처리 역시 운영체제별로 다르므로 각 운영체제에 맞게 구현해야 하며 사용되는 메커니즘은 아래와 같습니다. 🤖 I/O 이벤트 처리 방식 구분 Linux Windows 모델 epoll IOCP 방식 I/O 준비가 되면 알림 비동기 작업이 완료되면 알림 의미 읽기/쓰기를 진행할 수 있음 제출한 읽기/쓰기 작업이 끝남 처리 직접 recv()/send() 등을 호출하여 처리 시작 완료된 결과를 확인한 후 후속 작업 처리 API epoll_create1(), epoll_ctl(), epoll_wait() CreateIoCompletionPort(), GetQueuedCompletionStatus() 간단하게 리눅스에서는 알림이 오면 소켓 버퍼에서 직접 데이터를 가져오면 되고 윈도우에서는 미리 “데이터를 이 버퍼에 받아주세요....

2026년 10월 30일 · 8 min · 1599 words · JongBin

C++ 소켓 크로스 플랫폼 개발 - 1

지난 글에서 크로스 플랫폼으로 빌드를 하려면 어떻게 해야 하는지 알아봤습니다. 이번 글에서는 리눅스와 윈도우에서 하나의 코드로 작동할 수 있는 소켓을 만들어 보도록 하겠습니다. 😄 🌳 구성 1 2 3 4 5 6 7 8 9 10 . ├── include/ │ └── yami/ │ └── comm/ │ └── socket.hpp # 헤더 (interface) └── src/ └── comm/ ├── socket.cpp # 리눅스, 윈도우 공통 구현 ├── socket_linux.cpp # 리눅스 구현부 └── socket_windows.cpp # 윈도우 구현부 ⚠️ Warning...

2026년 10월 28일 · 7 min · 1439 words · JongBin

C++ 크로스 플랫폼(Cross-Platform) 구성 해보기

소켓 프로그래밍이 궁금해서 계속해 보던 중 윈도우와 리눅스 두 진영에서 같은 코드로 컴파일할 수 없을지 문득 생각이 들어서 알아보다가 포스팅하게 됐습니다. 😎 🔥 크로스 플랫폼 💡 크로스 플랫폼(Cross-Platform)은 하나의 소프트웨어, 코드, 프로그램이 윈도우, macOS, 리눅스, 안드로이드, iOS 등 서로 다른 여러 운영체제나 기기 환경에서 동시에 작동하는 것을 뜻합니다. 크로스 플랫폼 프레임워크·라이브러리 대표적인 것은 아래와 같습니다. 용도 도구 주 언어 특징 모바일·웹·데스크톱 앱 Flutter Dart 하나의 코드베이스로 여러 플랫폼 앱을 만들고, 자체 UI 렌더링 방식으로 화면 모양을 비교적 일관되게 유지해요....

2026년 10월 23일 · 3 min · 633 words · JongBin