1. 소개
- 현대의 소프트웨어 시스템은 점점 더 많은 동시 사용자와 데이터를 처리해야 합니다.
- 전통적인 동기-블로킹 방식의 프로그래밍은 이러한 요구사항을 감당하기 어려워졌고, 이는 비동기-논블로 킹 프로그래밍의 필요성으로 이어졌습니다.
1.1 학습 목표
- 이 문서를 통해 다음을 이해할 수 있습니다
- 비동기-논블로킹 프로그래밍의 기반이 되는 각 계층의 핵심 개념
- 하위 계층의 기술이 상위 계층에서 어떻게 추상화되고 발전하는지
- 네트워크 프로토콜부터 웹 애플리케이션까지 전체 스택의 유기적 관계
1.2 왜 비동기-논블로킹인가?
- 전통적인 동기-블로킹 방식의 한계
- 요청당 하나의 스레드 필요
- 스레드 생성과 컨텍스트 스위칭 비용
- 메모리 사용량 증가
- 확장성 제한
- 비동기-논블로킹 방식의 이점:
- 적은 수의 스레드로 많은 요청 처리
- 시스템 리소스 효율적 사용
- 높은 처리량과 확장성
- 반응성 향상
- 이제 이러한 비동기-논블로킹 아키텍처가 어떻게 발전해왔는지, 가장 기본이 되는 네트워크 프로토콜부터 살펴보겠습니다.
2. 신뢰성 있는 데이터 전송의 시작: TCP