Notice
Recent Posts
Recent Comments
Link
05-03 08:49
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- route 53
- 로드밸런스
- 맥북
- 우리FISA #
- 맥OS
- 우리에프아이에스
- https
- 리눅스
- M2
- 맥
- HTTP
- 우리FIS아카데미
- dbeaver
- 글로벌소프트웨어캠퍼스
- 우리에프아이에스 #
- AWS
- 우리FIS아카데미 #
- 클라우드 서비스 개발 #
- Java
- K-디지털트레이닝
- Gradle
- springboot
- spring
- 클라우드 서비스 개발
- 도메인
- sts
- jdk
- 우리FISA
- mysql
Archives
- Today
- Total
<<개발일지>>
"서버가 실행이 되었다"라는 것에 의문을 품은 적이 있는가? 본문
node.js 를 원리를 파악하는 도중에 갑자기 문뜩 서버가 실행되었다는 것은 어떤 상황인 것인가가 궁금해졌다 ㅋㅋ
우리가 흔히 말하는
"서버가 실행 중이다"
라는 말은 우리가 요청을 하면 응답을 받을 준비가 되어 있는 상태라고 볼 수 있다.
이말을 더 구체적으로 찾아본 결과,
서버를 실행하는 것은 일반적으로 컴파일된 프로그램이 메모리에 로드되어, 클라이언트 요청을 처리하기 위해 상시 대기하는 상태를 의미한다.
로 요약해석이 된다.
더 구체적으로 파악해보자
1. 서버 프로그램의 실행:
- 서버는 클라이언트의 요청을 처리하기 위한 프로그램이다. 이 프로그램은 HTTP 요청, 데이터베이서 접근, 파일 전송 등 다양한 작업을 처리할 수 있다.
- 서버 프로그램이 실행되면, 서버 애플리케이션이 실행 파일 형태로 컴파일된 후 메모리에 로드 된다.
- 서버는 클라이언트의 요청을 받을 준비가 된 상태에서 네트워크 연결을 지속적으로 청취(listen)한다.
2. 상시 대기 상태:
- 서버는 "대기 상태"로, 지정된 포트(ex. 웹 서버의 경우 80 or 443 포트)에서 클라이언트로부터 오는 요청을 기다린다.
- 즉, 서버가 실행된다는 것은 서버가 네트워크 상에서 요청을 받는 포트에서 계속 대기 중이라는 의미이다.
- 클라이언트가 요청을 보내면, 서버는 이를 처리하여 응답을 보낸다.
3. 비동기 처리 및 쓰레딩:
- 많은 서버는 비동기로 동작하여, 여러 클라이언트 요청을 동시에 처리할 수 있다.
- 여러 요청을 효율적으로 처리하기 위해 멀티스레드 방식이나 이벤트 루프(Node.js)로 요청을 처리하는 경우도 많다.
*Node.js 는 모두 스레드 하나에서 처리가 된다. 코드가 CPU 연산을 많이 요구하면 스레드 하나가 감당하기 어렵다. 그렇기 때문에 이미지나 비디오 처리, 대규모 데이터 처리 같이 CPU를 많이 사용하는 작업을 위한 서버로는 권장하지 않는다.
이렇게 너무 당연한 것이라고 생각했던 것을 좀 알아 보았다.
당연하지만
당연함 속에 진리가 너무나도 많다.
당연함에 익숙해지지 말고 한 번 더 생각해보는 이 습관 계속 유지하자.
'네트워크' 카테고리의 다른 글
Cache-Control (1) | 2024.11.10 |
---|---|
버퍼링이란? (5) | 2024.11.03 |
fiddler 와 https 인증서 꼬임 문제 (1) | 2024.10.18 |
네트워크 DMZ 란? 작성중 (0) | 2024.10.12 |
노드란? -작성중- (0) | 2024.06.28 |