개념 설명

서버가 뭔가요? 나 대신 켜져 있는 컴퓨터 이야기

읽는 데 약 6분#서버#개념#입문

한줄 요약: 서버는 특별한 기계가 아니라 나 대신 항상 켜져 있는, 내 것이 아닌 컴퓨터입니다. 내가 자리를 뜨거나 노트북을 덮어도 그 컴퓨터는 꺼지지 않기 때문에, 정해 둔 일을 계속 대신 해 줍니다. 이 글에서는 내 컴퓨터를 잠깐 서버로 켜 보는 체험과 실제 서버 랙 사진으로 이 정체를 확인합니다.

AI에게 자동화를 만들어 달라고 하다 보면 “이건 서버에 올려야 계속 돌아갑니다”라는 답을 듣게 됩니다. 여기서 막히기 쉽습니다. 서버가 뭔지 물으면 “요청을 처리해 주는 컴퓨터”라는 설명이 돌아오는데, 그 설명 안의 “요청”과 “처리”라는 말이 또 낯섭니다. 결국 서버라는 낱말 하나가 자동화를 시작하지 못하게 막는 벽이 됩니다.

이 글은 그 벽을 비유가 아니라 직접 확인으로 넘습니다. 서버는 컴퓨터과학 교과서에만 있는 개념이 아니라, 여러분의 노트북도 잠깐이면 될 수 있는 것입니다. 읽고 나면 “서버에 올린다”는 말이 정확히 무엇을 하겠다는 뜻인지 알게 되고, 직접 서버를 한 번 켜고 꺼 본 상태가 됩니다.

서버는 기계 종류가 아니라, 꺼지지 않는다는 사실입니다

노트북이든 데스크톱이든, 컴퓨터는 다 같은 컴퓨터입니다. 서버를 다른 종류의 기계로 오해하기 쉽지만, 서버와 일반 컴퓨터를 가르는 기준은 생김새가 아니라, 항상 켜져 있느냐입니다.

여러분의 컴퓨터로 자동화를 돌리면, 그 자동화는 컴퓨터가 켜져 있는 동안만 삽니다. 노트북을 덮거나 재부팅하면 그 순간 자동화도 멈춥니다. 그런데 자동화가 새벽에도, 여러분이 잠든 사이에도 계속 일하게 하려면 누군가는 계속 켜져 있어야 합니다. 그 역할을 맡은, 나 대신 계속 켜져 있는 컴퓨터를 서버라고 부릅니다. 내 컴퓨터를 서버로 써도 되지만, 보통은 남의 데이터센터에 있는 컴퓨터를 빌려 쓰고, 사용량이 적으면 공짜로 빌려 쓸 수 있는 경우도 많습니다.

내 컴퓨터로 자동화를 돌릴 때

  1. 지금 내 노트북이 켜져 있음 자동화가 정상적으로 돕니다
  2. 잠시 뒤 노트북을 덮거나 끔 전원이 자동화를 함께 데려갑니다
  3. 결과 자동화도 함께 멈춤 내가 다시 켜야 재개됩니다

내 전원이 곧 자동화의 전원입니다

서버에 올려 자동화를 돌릴 때

  1. 지금 서버가 켜져 있음 내 컴퓨터와 별개로 늘 켜져 있습니다
  2. 잠시 뒤 내 노트북을 덮거나 끔 서버의 전원과는 상관없는 일입니다
  3. 결과 자동화는 계속 돔 내가 자리에 없어도 정해진 대로 일합니다

내 전원과 자동화의 전원이 분리됩니다

실제로 이렇게 생겼습니다

서버가 추상적으로 느껴지는 이유는 눈에 보이지 않기 때문입니다. 클라우드라는 말이 실체 없는 무언가처럼 들리지만, 그 뒤에는 실제로 전원이 꽂힌 채 돌아가는 기계가 있습니다. 아래는 데이터센터 안, 서버 여러 대가 쌓인 랙을 뒤에서 찍은 사진입니다.

데이터센터 서버 랙 뒷면. 번호가 매겨진 선반 칸마다 서버 여러 대가 나란히 꽂혀 있고, 초록색과 검은색 케이블 다발과 깜빡이는 표시등이 뒤엉켜 있다
서버 여러 대가 쌓인 랙. 사진: Abigor, 위키미디어 커먼즈 (CC BY-SA 3.0)

“서버”라는 말이 헷갈리는 이유

같은 낱말인데 문장마다 가리키는 게 달라서 헷갈릴 때가 있습니다. 세 가지만 구분하면 됩니다.

문장에서 만나는 “서버” 실제로 가리키는 것 이 글에서 다루는가
“서버에 올리면 계속 돌아갑니다” 늘 켜져 있는, 내 것이 아닌 컴퓨터 이 글이 다루는 뜻입니다
“그 요청은 서버가 처리합니다” 요청을 받아 응답을 돌려주는 역할 API가 뭔가요?에서 다룹니다
“디스코드 서버를 만드세요” 대화방을 묶어 부르는 이름 컴퓨터가 아니라 별개의 낱말입니다

첫 번째와 두 번째는 사실 같은 컴퓨터를 다른 각도에서 본 것입니다. 무엇을 하느냐로 보면 요청을 처리하는 역할이고, 어디에 있느냐로 보면 늘 켜져 있는 컴퓨터입니다. 이 글은 그중 위치, “어디에 있느냐” 쪽을 다룹니다.

내 컴퓨터를 서버로 잠깐 켜 봅시다

터미널이 처음이라면 터미널이 뭔가요?를 먼저 보고 오는 게 좋습니다. 이 체험은 맥(macOS) 기준입니다. 윈도우는 명령어와 절차가 달라 이 글에서는 다루지 않지만, 눈으로만 따라 읽어도 “끄면 사라진다”는 개념을 이해하는 데는 지장이 없습니다.

파이썬이 없어도 됩니다. 터미널에 python3라고만 쳐도 맥이 설치 안내 창을 띄워 주는 경우가 많으니, 그 안내를 따라 설치한 뒤 이어서 하면 됩니다.

  1. 터미널을 열고, 아무 빈 폴더로 이동합니다. 예를 들어 바탕화면에 새 폴더를 만들고 그 폴더로 들어가려면 mkdir ~/Desktop/server-test && cd ~/Desktop/server-test를 칩니다.
  2. 짧은 페이지 파일을 이 폴더 안에 만듭니다.
    echo '<meta charset="utf-8">' > index.html
    echo '<h1>내가 만든 페이지</h1>' >> index.html
    첫 줄이 없으면 한글이 깨집니다. 잠시 뒤 켤 서버가 이 파일이 어떤 문자 형식(인코딩)으로 쓰였는지 브라우저에 알려 주지 않기 때문에, 파일 스스로 “UTF-8로 쓰였다”고 미리 밝혀 둬야 합니다.
  3. 같은 터미널에 python3 -m http.server를 치고 엔터를 누릅니다. 커서가 멈춘 것처럼 보이지만 정상입니다. 방금 이 컴퓨터가 서버가 됐고, 계속 켜진 채로 요청을 기다리는 중입니다.
  4. 브라우저를 열고 주소창에 http://localhost:8000을 입력합니다. localhost는 “내 컴퓨터 자신”을 가리키는 주소이고, 뒤의 8000은 한 컴퓨터 안에서 여러 프로그램이 헷갈리지 않도록 붙이는 문 번호(포트) 같은 것입니다. 방금 만든 “내가 만든 페이지”라는 제목이 한글이 깨지지 않은 채로 뜹니다. 새로고침해도 매번 같은 화면이 뜹니다. 터미널의 그 컴퓨터가 새로고침할 때마다 응답하고 있기 때문입니다.
  5. 확인이 끝났으면 터미널로 돌아가 Ctrl + C(컨트롤 키와 C를 함께 누르는 것, 지금 실행 중인 프로그램을 즉시 멈추라는 공통 단축키입니다)를 눌러 방금 켠 서버를 끕니다.
  6. 브라우저를 다시 새로고침합니다. 이번엔 방금 잘 뜨던 페이지가 뜨지 않고, 연결할 수 없다는 뜻의 오류가 뜹니다. 문구는 브라우저마다 다르지만 공통적으로 “연결이 안 된다”는 내용입니다.

서버를 쓰는 두 가지 방식

서버에 무언가를 “올린다”고 할 때도 실제로 하는 일은 둘로 나뉩니다. 하나는 요청이 올 때마다 코드를 실행해 결과를 만들어 주는 방식이고, 다른 하나는 만들어 둔 파일을 그대로 열어 두기만 하는 방식입니다.

방식 서버가 하는 일 예시
실행형 요청이 올 때마다 정해진 코드를 실행해 처리해 줍니다 Supabase Edge Function 배포하기
게시형 만들어 둔 파일을 그대로 열어 둡니다. 처리하지 않고 보여주기만 합니다 깃허브 Pages로 사이트 열기

게시형은 “처리해 준다”는 말이 부정확합니다. 깃허브 Pages에 올린 파일은 누가 요청해도 항상 같은 내용을 그대로 돌려줄 뿐, 요청마다 다르게 계산하지 않습니다. 그런데도 서버가 필요한 이유는 같습니다. 파일이 어딘가의 컴퓨터에 있어야, 내 컴퓨터를 끄거나 자리를 떠도 그 주소가 계속 열려 있기 때문입니다.

실행형 안에도 차이가 있습니다. Supabase Edge Function처럼 요청이 올 때만 잠깐 깨어나는 방식(서버리스)도 있고, 항상 켜진 채 기다리는 방식도 있습니다. 어느 쪽이든 그 컴퓨터가 내 컴퓨터가 아니라는 점은 같습니다.

서버라고 하면 회사 전산실이나 매달 나가는 사용료를 먼저 떠올리기 쉽지만, 꼭 그렇지는 않습니다. 구글 계정만 있으면 무료로 쓸 수 있는 서버도 이미 있고, 이 글에서 다룬 깃허브 Pages나 Supabase Edge Function도 적은 사용량에서는 무료입니다. 다만 무료 한도는 서비스마다, 시점마다 달라지므로 실제 사용 전에는 각 서비스의 요금 안내 페이지에서 직접 확인하는 것이 정확합니다.

더 깊이 읽고 싶다면

이 글은 서버의 정체를 짚는 데 집중했습니다. 클라우드 서버를 실제로 고를 때 참고할 자료 두 개를 남깁니다. 둘 다 한국어이고 무료입니다.

댓글

    핀번호는 내 댓글을 지울 때 필요합니다.

    뉴스레터

    새 글을 메일로 받아보세요

    AI 자동화 튜토리얼과 저자 코멘터리를 보냅니다. 스팸 없이, 새 글이 올라올 때만.

    구독하기 ›