서버가 뭔가요? 나 대신 켜져 있는 컴퓨터 이야기
한줄 요약: 서버는 특별한 기계가 아니라 나 대신 항상 켜져 있는, 내 것이 아닌 컴퓨터입니다. 내가 자리를 뜨거나 노트북을 덮어도 그 컴퓨터는 꺼지지 않기 때문에, 정해 둔 일을 계속 대신 해 줍니다. 이 글에서는 내 컴퓨터를 잠깐 서버로 켜 보는 체험과 실제 서버 랙 사진으로 이 정체를 확인합니다.
AI에게 자동화를 만들어 달라고 하다 보면 “이건 서버에 올려야 계속 돌아갑니다”라는 답을 듣게 됩니다. 여기서 막히기 쉽습니다. 서버가 뭔지 물으면 “요청을 처리해 주는 컴퓨터”라는 설명이 돌아오는데, 그 설명 안의 “요청”과 “처리”라는 말이 또 낯섭니다. 결국 서버라는 낱말 하나가 자동화를 시작하지 못하게 막는 벽이 됩니다.
이 글은 그 벽을 비유가 아니라 직접 확인으로 넘습니다. 서버는 컴퓨터과학 교과서에만 있는 개념이 아니라, 여러분의 노트북도 잠깐이면 될 수 있는 것입니다. 읽고 나면 “서버에 올린다”는 말이 정확히 무엇을 하겠다는 뜻인지 알게 되고, 직접 서버를 한 번 켜고 꺼 본 상태가 됩니다.
서버는 기계 종류가 아니라, 꺼지지 않는다는 사실입니다
노트북이든 데스크톱이든, 컴퓨터는 다 같은 컴퓨터입니다. 서버를 다른 종류의 기계로 오해하기 쉽지만, 서버와 일반 컴퓨터를 가르는 기준은 생김새가 아니라, 항상 켜져 있느냐입니다.
여러분의 컴퓨터로 자동화를 돌리면, 그 자동화는 컴퓨터가 켜져 있는 동안만 삽니다. 노트북을 덮거나 재부팅하면 그 순간 자동화도 멈춥니다. 그런데 자동화가 새벽에도, 여러분이 잠든 사이에도 계속 일하게 하려면 누군가는 계속 켜져 있어야 합니다. 그 역할을 맡은, 나 대신 계속 켜져 있는 컴퓨터를 서버라고 부릅니다. 내 컴퓨터를 서버로 써도 되지만, 보통은 남의 데이터센터에 있는 컴퓨터를 빌려 쓰고, 사용량이 적으면 공짜로 빌려 쓸 수 있는 경우도 많습니다.
내 컴퓨터로 자동화를 돌릴 때
- 지금 내 노트북이 켜져 있음 자동화가 정상적으로 돕니다
- 잠시 뒤 노트북을 덮거나 끔 전원이 자동화를 함께 데려갑니다
- 결과 자동화도 함께 멈춤 내가 다시 켜야 재개됩니다
내 전원이 곧 자동화의 전원입니다
서버에 올려 자동화를 돌릴 때
- 지금 서버가 켜져 있음 내 컴퓨터와 별개로 늘 켜져 있습니다
- 잠시 뒤 내 노트북을 덮거나 끔 서버의 전원과는 상관없는 일입니다
- 결과 자동화는 계속 돔 내가 자리에 없어도 정해진 대로 일합니다
내 전원과 자동화의 전원이 분리됩니다
실제로 이렇게 생겼습니다
서버가 추상적으로 느껴지는 이유는 눈에 보이지 않기 때문입니다. 클라우드라는 말이 실체 없는 무언가처럼 들리지만, 그 뒤에는 실제로 전원이 꽂힌 채 돌아가는 기계가 있습니다. 아래는 데이터센터 안, 서버 여러 대가 쌓인 랙을 뒤에서 찍은 사진입니다.
“서버”라는 말이 헷갈리는 이유
같은 낱말인데 문장마다 가리키는 게 달라서 헷갈릴 때가 있습니다. 세 가지만 구분하면 됩니다.
| 문장에서 만나는 “서버” | 실제로 가리키는 것 | 이 글에서 다루는가 |
|---|---|---|
| “서버에 올리면 계속 돌아갑니다” | 늘 켜져 있는, 내 것이 아닌 컴퓨터 | 이 글이 다루는 뜻입니다 |
| “그 요청은 서버가 처리합니다” | 요청을 받아 응답을 돌려주는 역할 | API가 뭔가요?에서 다룹니다 |
| “디스코드 서버를 만드세요” | 대화방을 묶어 부르는 이름 | 컴퓨터가 아니라 별개의 낱말입니다 |
첫 번째와 두 번째는 사실 같은 컴퓨터를 다른 각도에서 본 것입니다. 무엇을 하느냐로 보면 요청을 처리하는 역할이고, 어디에 있느냐로 보면 늘 켜져 있는 컴퓨터입니다. 이 글은 그중 위치, “어디에 있느냐” 쪽을 다룹니다.
내 컴퓨터를 서버로 잠깐 켜 봅시다
터미널이 처음이라면 터미널이 뭔가요?를 먼저 보고 오는 게 좋습니다. 이 체험은 맥(macOS) 기준입니다. 윈도우는 명령어와 절차가 달라 이 글에서는 다루지 않지만, 눈으로만 따라 읽어도 “끄면 사라진다”는 개념을 이해하는 데는 지장이 없습니다.
파이썬이 없어도 됩니다. 터미널에 python3라고만 쳐도 맥이 설치 안내 창을 띄워 주는 경우가 많으니, 그 안내를 따라 설치한 뒤 이어서 하면 됩니다.
- 터미널을 열고, 아무 빈 폴더로 이동합니다. 예를 들어 바탕화면에 새 폴더를 만들고 그 폴더로 들어가려면
mkdir ~/Desktop/server-test && cd ~/Desktop/server-test를 칩니다. - 짧은 페이지 파일을 이 폴더 안에 만듭니다.
첫 줄이 없으면 한글이 깨집니다. 잠시 뒤 켤 서버가 이 파일이 어떤 문자 형식(인코딩)으로 쓰였는지 브라우저에 알려 주지 않기 때문에, 파일 스스로 “UTF-8로 쓰였다”고 미리 밝혀 둬야 합니다.echo '<meta charset="utf-8">' > index.html echo '<h1>내가 만든 페이지</h1>' >> index.html - 같은 터미널에
python3 -m http.server를 치고 엔터를 누릅니다. 커서가 멈춘 것처럼 보이지만 정상입니다. 방금 이 컴퓨터가 서버가 됐고, 계속 켜진 채로 요청을 기다리는 중입니다. - 브라우저를 열고 주소창에
http://localhost:8000을 입력합니다.localhost는 “내 컴퓨터 자신”을 가리키는 주소이고, 뒤의8000은 한 컴퓨터 안에서 여러 프로그램이 헷갈리지 않도록 붙이는 문 번호(포트) 같은 것입니다. 방금 만든 “내가 만든 페이지”라는 제목이 한글이 깨지지 않은 채로 뜹니다. 새로고침해도 매번 같은 화면이 뜹니다. 터미널의 그 컴퓨터가 새로고침할 때마다 응답하고 있기 때문입니다. - 확인이 끝났으면 터미널로 돌아가
Ctrl + C(컨트롤 키와 C를 함께 누르는 것, 지금 실행 중인 프로그램을 즉시 멈추라는 공통 단축키입니다)를 눌러 방금 켠 서버를 끕니다. - 브라우저를 다시 새로고침합니다. 이번엔 방금 잘 뜨던 페이지가 뜨지 않고, 연결할 수 없다는 뜻의 오류가 뜹니다. 문구는 브라우저마다 다르지만 공통적으로 “연결이 안 된다”는 내용입니다.
서버를 쓰는 두 가지 방식
서버에 무언가를 “올린다”고 할 때도 실제로 하는 일은 둘로 나뉩니다. 하나는 요청이 올 때마다 코드를 실행해 결과를 만들어 주는 방식이고, 다른 하나는 만들어 둔 파일을 그대로 열어 두기만 하는 방식입니다.
| 방식 | 서버가 하는 일 | 예시 |
|---|---|---|
| 실행형 | 요청이 올 때마다 정해진 코드를 실행해 처리해 줍니다 | Supabase Edge Function 배포하기 |
| 게시형 | 만들어 둔 파일을 그대로 열어 둡니다. 처리하지 않고 보여주기만 합니다 | 깃허브 Pages로 사이트 열기 |
게시형은 “처리해 준다”는 말이 부정확합니다. 깃허브 Pages에 올린 파일은 누가 요청해도 항상 같은 내용을 그대로 돌려줄 뿐, 요청마다 다르게 계산하지 않습니다. 그런데도 서버가 필요한 이유는 같습니다. 파일이 어딘가의 컴퓨터에 있어야, 내 컴퓨터를 끄거나 자리를 떠도 그 주소가 계속 열려 있기 때문입니다.
실행형 안에도 차이가 있습니다. Supabase Edge Function처럼 요청이 올 때만 잠깐 깨어나는 방식(서버리스)도 있고, 항상 켜진 채 기다리는 방식도 있습니다. 어느 쪽이든 그 컴퓨터가 내 컴퓨터가 아니라는 점은 같습니다.
서버라고 하면 회사 전산실이나 매달 나가는 사용료를 먼저 떠올리기 쉽지만, 꼭 그렇지는 않습니다. 구글 계정만 있으면 무료로 쓸 수 있는 서버도 이미 있고, 이 글에서 다룬 깃허브 Pages나 Supabase Edge Function도 적은 사용량에서는 무료입니다. 다만 무료 한도는 서비스마다, 시점마다 달라지므로 실제 사용 전에는 각 서비스의 요금 안내 페이지에서 직접 확인하는 것이 정확합니다.
더 깊이 읽고 싶다면
이 글은 서버의 정체를 짚는 데 집중했습니다. 클라우드 서버를 실제로 고를 때 참고할 자료 두 개를 남깁니다. 둘 다 한국어이고 무료입니다.
- AWS “클라우드 서버란?” 클라우드 서버의 정의와 작동 방식, 물리 서버와의 차이를 다룹니다.
- 삼성SDS 클라우드 용어집 “클라우드 서버란?” 클라우드 서버의 개념과 기존 서버 대비 장점을 짧게 정리했습니다.
댓글