아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
올리브영 favicon올리브영

1만 명 동시 접속? C10K 문제와 비동기 I/O의 해답

by DD
2023-11-30
2년 전
조회수 14

1999년 제기된 C10K 문제는 1만 명 동시 접속 서버 구현의 어려움을 제시함

Non-blocking I/O를 위한 epoll, kqueue, IOCP 등 다양한 기술이 등장함

Node.js의 이벤트 루프, Java NIO를 통해 비동기 I/O를 쉽게 구현 가능

C10K 문제의 본질: 동시성 처리

C10K 문제는 1만 명 동시 접속을 효율적으로 처리하는 데서 시작한다. 구체적으로, 전통적인 프로세스/스레드 기반 방식은 메모리 사용량 증가와 Context Switching 오버헤드로 인해 성능 저하를 야기한다. 따라서 Non-blocking I/O를 통해 자원 효율성을 높여야 한다.

비동기 I/O의 핵심 기술: epoll, kqueue, IOCP

epoll, kqueue, IOCP는 Non-blocking I/O를 구현하는 핵심 기술이다. epoll은 Linux, kqueue는 BSD, IOCP는 Windows에서 사용된다. 따라서 이러한 기술들은 소켓 이벤트 관리를 효율적으로 처리하여 RPS(Request per Second) 향상에 기여한다.

Node.js와 Java NIO: 현대적 해결책

Node.js는 epoll을 기반으로 한 이벤트 루프를 통해 비동기 처리를 지원한다. Java는 NIO(New I/O)를 통해 Non-blocking I/O와 Zero-copy를 제공한다. 결과적으로, Netty와 같은 프레임워크를 통해 고성능 서버 구축이 가능하며, I/O 병목 현상을 해결한다.

고전 돌아보기, C10K 문제 (C10K Problem)
중급
아키텍처
Node.js
Java
epoll
NIO
JavaScript
C/C++
Backend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

2026년 3분기, 개발자 채용 시장 동향

랍스타즈 로고

CodeQL 2.25.6, Swift 6.3.2 지원 및 C# 커버리지 확대

깃헙 로고

하이 레벨 언어와 동적 타입 언어, 아키텍처 디자인에선?

데브시스터즈 로고

자바스크립트(JavaScript) Promise 취소, 불가능? 가능!

레딧 로고

자바(Java), Go, 파이썬(Python) GC, 핵심 원리와 성능 비교!

레딧 로고

자바스크립트(JavaScript) 의존성 팽창, 왜 일어날까?

해커뉴스 로고
올리브영 favicon올리브영
중급
아키텍처
Node.js
Java
epoll
NIO
JavaScript
C/C++
Backend

관련 추천 글

2026년 3분기, 개발자 채용 시장 동향

랍스타즈 로고

CodeQL 2.25.6, Swift 6.3.2 지원 및 C# 커버리지 확대

깃헙 로고

하이 레벨 언어와 동적 타입 언어, 아키텍처 디자인에선?

데브시스터즈 로고