서버 컴퓨터는 어떻게 생겼을까?
개발을 처음 시작할 때, 나는 ‘서버(Server)’에 대한 막연한 환상이 있었다. 영화 <매트릭스>에 나오는 것처럼 초록색 글씨가 비처럼 쏟아지고, 수많은 전선이 얽혀 있으며, 웅장한 기계음과 함께 파란 불빛을 뿜어내는 거대한 슈퍼컴퓨터를 상상했다.
하지만 실무에서 처음 마주한 서버실(IDC)의 풍경은 내 상상과는 달랐다. 랙(Rack)에 꽂혀 있는 납작한 기계들도 결국 뜯어보면 CPU가 있고, 램(RAM)이 있고, SSD가 꽂혀 있는, 내 노트북과 별반 다를 것 없는 ‘그냥 컴퓨터’였다.
그렇다면 도대체 무엇이 내 노트북을 ‘개인 PC’라 부르게 하고, 저 투박한 컴퓨터를 ‘서버’라고 부르게 하는 걸까?

주는 놈(Server) vs 달라는 놈(Client)
서버(Server)의 정의는 아주 간단하다. ‘Serve(제공하다)’ 하는 녀석이다. 반대로 클라이언트(Client)는 ‘요청(Request)’ 하는 녀석이다.
- 내가 네이버에 접속하면: 내 노트북(Client)이 네이버 컴퓨터(Server)에게 “메인 화면 줘”라고 요청한다.
- 내가 친구에게 파일을 보내면: 내 노트북이 잠시 파일 서버 역할을 하고, 친구 노트북이 클라이언트가 된다.
즉, 내 낡은 노트북도 24시간 켜놓고 외부 접속을 허용하면 그게 바로 ‘서버’다. 하지만 우리는 왜 내 노트북을 서버로 쓰지 않고, 굳이 비싼 돈을 들여 AWS EC2 같은 클라우드 서버를 빌리고, 쓰기 힘든 ‘리눅스(Linux)’를 설치하는 걸까?
왜 하필 리눅스인가? (윈도우는 안 돼?)
윈도우(Windows)는 정말 편하다. 마우스로 클릭만 하면 되고, 직관적이다. 그런데 왜 서버 개발자들은 굳이 검은 화면뿐인 리눅스를 고집할까?
1. GUI는 사치다 (비용과 효율)
윈도우를 부팅하면 바탕화면이 뜨고, 아이콘이 보이고, 마우스 커서가 움직인다. 이 화려한 그래픽(GUI)을 유지하기 위해 컴퓨터는 끊임없이 CPU와 메모리를 쓴다. 하지만 서버는 모니터가 필요 없다. 지구 반대편 어딘가 처박혀서 오직 ‘데이터 처리’만 하면 된다. 리눅스 서버(CLI)는 그래픽을 싹 걷어내고 오직 텍스트만 남겼다. 윈도우가 100의 힘 중 30을 화면 그리는 데 쓴다면, 리눅스는 100을 온전히 서비스에 쏟아붓는다.
2. 업데이트의 자유 (안정성)
윈도우를 쓰다 보면 “업데이트를 위해 다시 시작합니다”라며 맘대로 꺼질 때가 있다. 개인 PC라면 잠깐 화장실 다녀오면 되지만, 24시간 돌아가야 하는 서버가 제멋대로 꺼진다면? 그건 재앙이다. 리눅스는 커널 업데이트 같은 중대사가 아니면 몇 년이고 끄지 않고 돌릴 수 있다.
3. 라이선스 비용 (돈)
윈도우 서버는 비싸다. CPU 코어 수에 따라 돈을 받기도 한다. 반면 리눅스(Ubuntu, CentOS 등)는 대부분 공짜(Open Source)다. 서버를 수천 대 굴려야 하는 기업 입장에서 답은 정해져 있다.

윈도우에 리눅스 깔면 안 되나? (가상화의 서막)
여기서 초보 개발자(과거의 나)는 기발한 생각을 한다. “윈도우가 편하니까, 윈도우 서버를 깔고 그 안에 ‘가상머신(Virtual Machine)’으로 리눅스를 돌리면 안 되나?”
물론 가능하다. 하지만 이건 ‘집 안에 텐트를 치고 사는 것’과 같다.
- 컴퓨터(하드웨어) 위에 무거운 윈도우(Host OS)가 돌아간다.
- 그 위에 가상머신 프로그램(Hypervisor)을 띄운다.
- 그 안에 또 리눅스(Guest OS)를 설치해서 돌린다.
집주인(윈도우)도 밥을 먹어야 하고, 세입자(리눅스)도 밥을 먹어야 한다. 자원 낭비가 심하다. 그래서 개발자들은 고민했다. “무거운 OS를 통째로 설치하지 않고, 딱 필요한 ‘환경’만 격리해서 실행할 수는 없을까?”
이 고민 끝에 탄생한 것이 바로 ‘도커(Docker)’, 즉 ‘컨테이너(Container)’ 기술이다.
다음 이야기: 마우스 없는 세상
우리는 이제 왜 서버가 윈도우를 버리고 리눅스를 선택했는지 알았다. 하지만 머리로 이해하는 것과 손으로 만지는 건 다르다. 리눅스 서버에 처음 접속하면, 우리를 반기는 건 윈도우의 친절한 ‘시작 버튼’이 아니라, ‘깜빡이는 커서와 검은 화면’뿐이다.
다음 시간에는 이 낯선 ‘리눅스 터미널(CLI)’ 환경에서 마우스 없이 파일 권한을 다루고, 서버를 제어하는 생존 기술에 대해 알아보자.
주인장님 멋져요 싸인해주세요
감사합니다 😀