성장을 꾸준히 기록하는 공간

고정 헤더 영역

글 제목

메뉴 레이어

성장을 꾸준히 기록하는 공간

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (108)
    • tech (28)
    • spring (14)
    • mysql (8)
    • kubernetes (12)
    • kafka (12)
    • windows (6)
    • project (26)
      • wargame (12)
      • resistance (5)
      • SIEMple (6)
      • Witch's Tower (3)

검색 레이어

성장을 꾸준히 기록하는 공간

검색 영역

컨텐츠 검색

iocp

  • Proactor 기반 게임서버에서 Kafka를 IO Completion Port와 통합하기

    2025.09.11 by downfa11

  • 데이터에 기반한 사용자 행위 분석 - 어떤 데이터를 수집해야할까?

    2025.03.12 by downfa11

  • 비동기 프로그래밍, 얼마나 알고 있나요? (Advanced Asynchronized)

    2025.02.11 by downfa11

  • 토이프로젝트 - IOCP 서버와 유니티 클라이언트 구현(winsock2, cpp)

    2024.11.22 by downfa11

  • IOCP(IO Completion Port) 쉽게 이해하기

    2024.11.22 by downfa11

  • IOCP GetQueuedCompletionStatus, CreateloCompletionPort 함수의 변경점

    2024.11.22 by downfa11

Proactor 기반 게임서버에서 Kafka를 IO Completion Port와 통합하기

Reactor 환경에서는 Spring WebFlux와 Reactor-Kafka를 활용해 Kafka 메시지를 Flux 스트림으로 자연스럽게 처리하는 것이 익숙하다. 하지만 Proactor 환경에서는 Kafka를 어떻게 처리할까? 이번 글에서는 C++ 게임 서버에서 Kafka Consumer를 IOCP 이벤트 루프에 통합했던 경험을 공유한다. 1. OS가 어디까지 처리하는지에 따라서 구분한다.데이터가 소켓 버퍼에 수신되면 OS가 수신 이벤트를 전달(reactor)하거나, 나아가서 OS가 직접 IO 작업까지 하고 완료 결과를 통보(proactor)하여서 비동기적으로 IO 멀티플렉싱을 진행한다. 쉽게 설명해서 IO 멀티플렉싱은 읽을 데이터가 왔을때 작업하는 Reactor와 실제 작업이 완료되면 통보받는 Pro..

kafka 2025. 9. 11. 19:20

데이터에 기반한 사용자 행위 분석 - 어떤 데이터를 수집해야할까?

공격적인지 등의 플레이 스타일이나 성향 분석도 재밌을 거 같고, 인게임 데이터를 수집해서 사용자의 행위를 분석하면서 AFK나 탈주같은 트롤 행위를 검출하면 좋을 것같다. 추후 수집된 데이터들을 기반으로 다시 고민해보겠다. 일단 수집이 먼저다.  데이터 파이프라인(Data Pipeline) 구축e커머스 서비스들로 예시를 들자면, 구매나 배송같은 트랜잭션 작업 이외에 장바구니에 담거나 다시 꺼내고 쿠폰을 적용하는 모든 사용자 액션을 로그 데이터로 수집하고자 한다. 이런 사용자 행위를 수집하고 분석하는 데이터 파이프라인을 구축하는 것을 목표로 한다. 기존에 이미 사용하고 있던 Kafka를 통해서 데이터를 스트리밍할 생각이다. Case 1. Kafka Consumer가 이벤트를 받아서 구축한 ELK에서 분석Ca..

project/wargame 2025. 3. 12. 03:31

비동기 프로그래밍, 얼마나 알고 있나요? (Advanced Asynchronized)

이벤트 기반 IO 처리 방식의 비동기 설계 패턴으로 여러 방식이 존재하고, 비동기 작업을 관리하지만 그 방식이 상이하다. 비동기 방식의 구분 : 이벤트를 감지하는 주체가 누구인가?두 방식 모두 "-actor"로끝나며 행동하는 주체로서 행위자(actor)를 의미한다. 따라서 어떤 방식으로 행동하는지를 나타낸다고 볼 수 있다. Reactor : IO 이벤트가 발생하면 직접 반응(React)하여 실행Proactor : 미리, 앞서서(Pro) + IO 작업을 요청해두고, 완료되면 OS가 자동으로 실행 1. Reactor 패턴I/O 이벤트가 발생하면 핸들러(Callback)를 등록해 두고, 이벤트가 발생하면 이를 처리하는 방식 동작 방식애플리케이션이 비동기 작업을 요청하고, 처리할 핸들러(콜백)를 등록I/O 멀티..

tech 2025. 2. 11. 18:37

토이프로젝트 - IOCP 서버와 유니티 클라이언트 구현(winsock2, cpp)

네트워크 수업 자유 주제 과제로 IOCP 서버에 유니티 연동해서 클라이언트 구현함.아무래도 과제용이니까.. 대부분의 기능을 쳐냈음그래서 Accept 도 동기로 처리하고.. 패킷 처리도 엉성하고.. ​Unity3d 와 연동하는 자료는 찾아도 안나오니 공부하는데 참고만 하길 바람니당 ​​유니티 클라이언트에서는 해당 dummy들의 좌표 이동을 시각화해서 볼 수 있고 채팅 가능함server/client 디렉토리의 client.cpp : dummy를 N(defined)개 서버에 접속시키고 매 초당 무작위로 이동 (x,y : -1,1)유니티 클라이언트에서 시각화할때 유의미한 결과를 보여주기 위해서 제공한 기능/client 디렉토리는 unity project : 그냥 유니티의 tcpClient로 접속해서 cpp와 c..

windows 2024. 11. 22. 09:58

IOCP(IO Completion Port) 쉽게 이해하기

IOCP(IO Completion Port) 란?Windows 운영체제에서 제공하는 비동기 I/O 처리 모델게임 서버에서 사용해서 착각하는데, 소켓 네트워크 기술이 아니라 이벤트 기반 I/O 처리 방법론이다.​Linux는 소켓을 파일 디스크립터로 동일시하는 반면, 윈도우는 별개로 구분한다.​IOCP = Overlapped IO + ThreadPool + Completion Queue​​중첩 입출력(Overlapped I/O)비동기 I/O 작업을 가능하게 하는 Windows 기술I/O처리 요청을 스레드가 디바이스 드라이버에 위임하고 I/O작업 종료까지 해당 스레드는 다른 작업을 수행device driver가 IO 작업을 처리하고, 완료되면 이벤트 객체를 통해 전달IO 요청한 쓰레드가 이벤트를 확인하고 결과..

windows 2024. 11. 22. 09:46

IOCP GetQueuedCompletionStatus, CreateloCompletionPort 함수의 변경점

어쩐지 공부하던거랑 다르더라....자꾸 오류뜨길래 무시했는데 알고보니 최신 SDK에서 함수들의 인자 타입이 변경되었다. 최신... 이라 해봤자 한참 옛날이지만ㅜ​  GetQueuedCompletionStatus 같은 경우에 LPDWORD 인자를 PULONG_PTR로 변환해야함  그외에도 CreateloCompletionPort, GetQueuedCompletionStatus의 새 버전인 GetQueuedCompletionStatusEx도 있다.​난 왜 이제 알았는가   https://learn.microsoft.com/ko-kr/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus GetQueuedCompletionStatus 함수(ioapi..

windows 2024. 11. 22. 09:38

추가 정보

인기글

최신글

페이징

이전
1
다음
TISTORY
성장을 꾸준히 기록하는 공간 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바