멀티스레드 서버
- 멀티스레드를 이용해 여러 사용자의 request와 response 처리
- 대부분의 웹 애플리케이션은 멀티스레드 기반
- 동기식 모델
- Spring
1) 동작 과정
(1) 웹 서버는 내부적으로 스레드 풀을 유지
(2) 클라이언트는 서버에 요청을 전달
(3) 스레드 풀 내의 각각의 스레드가 blocking I/O 등의 클라이언트 요청을 처리하고 응답
싱글스레드 서버
- 싱글 스레드 기반의 이벤트 루프 구조로 멀티 스레드 기반 모델보다 더 동시적으로 다수의 클라이언트 요청 처리 가능
- 멀티스레드 기반의 모델보다 상대적으로 적은 스레드가 필요(자원의 효율)
- 비동기식 모델
- Node.js
1) 동작방식
(1) 서버 내부에 단일 스레드가 무한 루프를 돌며 클라이언트의 요청을 대기(이벤트 루프 구조)
(2) 클라이언트는 서버에 요청을 전달
(3) 서버는 복잡한 작업이나 Blocking I/O 등의 처리는 스레드 풀의 스레드에 작업을 넘기고 다음 클라이언트의 요청을 받음
(4) Blocking I/O 등의 작업을 요청받은 스레드는 작업을 수행 후 callback function을 통해 이벤트 루프 내 단일 스레드에 응답
(5) 이벤트 루프 내 단일 스레드는 해당 클라이언트에 응답을 전달
'CS > Network' 카테고리의 다른 글
[네트워크] Spoofing / Sniffing / Snooping (0) | 2020.06.28 |
---|---|
[네트워크] 웹 크롤링과 웹 스크래핑 (2) | 2020.06.28 |
[네트워크] 동기식 네트워크와 비동기식 네트워크 (0) | 2020.06.28 |
[네트워크] MAC / ARP / RARP (0) | 2020.06.28 |
[네트워크] IP Address (0) | 2020.06.28 |
댓글