최초의 웹
1990년. 최초의 웹 사이트가 생겼습니다.
초기에 웹은 위처럼 보여지는 기능만 갖추고 있었습니다.
정적인 HTML 파일만 가지고 있는 웹 서버였죠.
CGI(Common Gateway Interface)
시간이 지나다보니 정적인 HTML 구조는 크나큰 단점이 존재했습니다.
HTML에 필요한 데이터를 하나하나 만들어 주기엔 너무 많았고 사용자가 웹에 게시물을 올리거나 회원가입을 하는 것은 꿈도 꿀 수 없었습니다.
그리고 만약 정적인 페이지만 존재했다면 사람들은 컴퓨터를 살 이유가 없었을 겁니다.
차라리 책이나 뉴스를 봤을테니까요.
그리고 1990년대 초에 CGI라는 기술이 최초로 등장했습니다.
CGI가 도입되면서 여러 데이터를 한꺼번에 만들어 줄 수도 있었고 사용자가 게시물을 올리거나 회원가입을 하는 것도 가능해졌습니다. 동적인 페이지를 만드는 게 가능했던 것이죠.
참고로 CGI는 외부 프로그램을 실행시켜서 웹 서버에 전달하게 하는 규약과도 같은 기술을 말합니다.
규약이라고 말하니 어렵죠. 쉽게 말해서 고속도로의 하이패스와 같은 것이라고 생각하면 됩니다.
덤프 트럭이 지나가든 일반 승용차가 지나가든 '차'라는 규약(룰)만 지켜주면 통과시켜주겠다라는 의미입니다.
"어떠한 언어로 작성된 외부 프로그램이든 CGI 기술 규약만 따르면 웹서버로 전송할 수 있게 해줄게"라는 의미죠.
이렇게 CGI로 인해 동적인 페이지를 만들게 되었을 때부터 사람들의 이용 빈도는 폭발적으로 늘어났습니다.
프로세스의 한계
이 폭발적인 접속자를 초기 서버는 감당할 수 없었습니다.
CGI는 기본적으로 프로세스를 할당한 기술이었습니다.
쉽게 설명해보겠습니다. 그림처럼 프로그램 안에는 여러개의 프로세스가 돌아가고 있습니다.
서버에서 돌리고 있는 웹 서버도 하나의 프로그램으로 간주 합니다.
프로그램이기 때문에 당연히 그림처럼 프로세스가 돌아가고 있습니다.
그림처럼 여러개의 프로세스가 모여서 1개의 웹서버를 여러개의 프로세스가 담당하고 있는 상태라고 이해하면 됩니다.
그래서 프로세스는 즉, 실행되고 있는 프로그램의 작업 단위를 말합니다.
위처럼 프로세스 4개가 하나의 프로그램을 돌리고 있다고 가정해봅시다.
A라는 사용자가 서버에 들어와서 작업을 하기 위해 프로세스 1개를 사용을 한다면 B라는 사용자는 다른 프로세스를 사용해야합니다.
총 4명의 사용자가 동시 작업을 하고 있다면 5번째 사용자는 이용을 할 수가 없어 서버가 감당이 안됐습니다.
'🕸️ Web' 카테고리의 다른 글
HTTP/1.1 vs HTTP/2 - 동시 요청 처리 방법에 따른 대용량 트래픽 처리 (0) | 2025.01.21 |
---|---|
Cloud Database Service(2) - Firebase의 Realtime Database 규칙 (0) | 2023.05.24 |
Cloud Database Service(1) - 클라우드 DB의 종류 (0) | 2023.05.23 |
SOP(Same Origin Policy)와 CORS(Cross Origin Resource Sharing)의 차이 (0) | 2022.07.20 |
최초의 웹과 스프링이 나오기까지 (2) (0) | 2022.02.10 |