서버란 무엇인가 - 배경지식과 역사

개발을 배우기 전엔 서버라는 게 굉장히 추상적이었다. “어딘가에 있는 큰 컴퓨터” 정도? 직접 서버를 구축하고 나서야 그 개념이 실체를 가지기 시작했다.

서버의 본질

서버(Server)는 다른 컴퓨터(클라이언트)의 요청을 받아 응답하는 컴퓨터 또는 프로그램이다.

“서버”는 사실 하드웨어를 가리키기도 하고, 소프트웨어를 가리키기도 한다. 물리 서버는 그 이름처럼 거대한 기계일 수도 있지만, 사실 일반 노트북에 Nginx를 띄워도 “서버”가 된다. 요청을 받고 응답하면 그게 서버다.

역사: 메인프레임에서 클라우드까지

1950-60년대: 메인프레임

초기에는 건물 한 채를 가득 채우는 거대한 메인프레임이 서버 역할을 했다. 여러 단말기(터미널)가 하나의 메인프레임에 접속해서 CPU 시간을 나눠 썼다. 지금 기준으로는 성능이 형편없지만, 그때는 그게 전부였다.

1970-80년대: 미니컴퓨터와 유닉스

메인프레임보다 작은 미니컴퓨터가 등장했다. 유닉스가 이 시기에 개발됐고, “모든 것이 파일”이라는 리눅스의 철학이 여기서 비롯됐다.

1990년대: PC 서버와 인터넷

일반 PC급 하드웨어로 서버를 구축하는 시대가 열렸다. HTTP, HTML의 탄생과 함께 웹 서버 개념이 생겼다. Apache HTTP Server가 1995년에 나오면서 웹 서버 시대가 본격화됐다.

2000년대: 가상화

한 물리 서버에서 여러 가상 머신을 돌리는 가상화 기술이 발전했다. VMware, Xen 등으로 하드웨어 자원을 효율적으로 나눠 쓸 수 있게 됐다.

2006년~: 클라우드

AWS가 S3와 EC2를 출시하면서 클라우드 시대가 열렸다. 물리 서버를 직접 사지 않아도 필요한 만큼 빌려 쓸 수 있게 됐다.

2013년~: 컨테이너

Docker의 등장으로 가상 머신보다 훨씬 가볍게 애플리케이션 환경을 격리할 수 있게 됐다. Kubernetes가 컨테이너 오케스트레이션을 표준화하면서 마이크로서비스 아키텍처가 현실적인 선택지가 됐다.

서버의 종류

종류역할
웹 서버HTTP 요청 처리 (Nginx, Apache)
애플리케이션 서버비즈니스 로직 처리 (Tomcat, Spring Boot)
데이터베이스 서버데이터 저장·조회
파일 서버파일 공유 (NAS)
메일 서버이메일 송수신
DNS 서버도메인 이름 → IP 주소 변환

직접 서버를 만들면서 달라진 관점

홈랩을 구축하면서 가장 크게 달라진 건, “서버”가 뭔가 신비로운 것이 아니라 “요청을 받아 응답하는 프로세스”라는 걸 몸으로 이해하게 됐다는 거다.

Proxmox로 가상 머신 만들고, LXC 컨테이너 띄우고, Nginx로 리버스 프록시 설정하고, Cloudflare Tunnel로 외부에 노출하는 과정이 결국 메인프레임 시대부터 이어진 “요청-응답”의 현대적 구현이다.

출처