
백엔드
고전 돌아보기, C10K 문제 (C10K Problem)
두줄요약
1만 명 동시 접속을 처리하는 C10K 문제의 배경과 병목 원인을 설명했습니다. non-blocking I/O와 이벤트 기반 기술이 어떻게 해결책이 되었는지 정리했습니다.
핵심 내용
- C10K 문제는 1만 명 동시 접속을 처리하는 서버 구현 과제
- 단순한 프로세스 fork나 1만 개 스레드 방식의 한계로 메모리, 컨텍스트 스위칭, 폴링 경합 발생
- 해결의 핵심은 non-blocking I/O와 asynchronous I/O, 그리고 epoll, kqueue, select, IOCP 같은 이벤트 기반 기술
- nginx, Node.js, Java NIO, Netty 같은 기술이 이 흐름 위에서 동작하며 대규모 동시 처리의 기반 형성
적용해볼 점
- 동시 접속 증가 시 스레드 수만 늘리는 방식의 한계 점검
- 이벤트 루프와 비동기 I/O 기반 구조 검토
- 언어와 프레임워크가 내부적으로 어떤 I/O 모델을 쓰는지 확인
