서버란? 앱을 만드는 사람을 위한 쉬운 설명
서버는 요청을 기다렸다가 응답하는 컴퓨터, 또는 그 위에서 실행되는 프로그램입니다. 웹사이트를 열면 여러분의 브라우저(클라이언트)가 인터넷을 통해 요청을 보내고, 어딘가에 있는 서버가 페이지, 이미지, 데이터를 돌려보냅니다. 이메일부터 온라인 뱅킹까지 우리가 쓰는 모든 앱은 서버가 이런 일을 하루에도 수백만 번씩 해 주는 덕분에 작동합니다.
AI로 만들 때 서버가 중요한 이유
AI 빌더가 앱을 만들어 주면, 코드의 일부는 방문자의 브라우저에서 실행되고 나머지는 보통 서버에서 실행됩니다. 서버 쪽 코드는 브라우저가 신뢰할 수 없거나 혼자서는 할 수 없는 일을 맡습니다.
- 데이터 저장과 불러오기. 데이터베이스에서 데이터를 읽고 씁니다.
- 비밀 보관. 결제나 AI 제공업체의 API 키처럼 절대 브라우저에 전달되면 안 되는 값을 지킵니다.
- 권한 확인. 사용자가 자신의 기록만 보고 바꿀 수 있도록 보장합니다.
- 다른 서비스와 통신. 카드를 청구하고, 이메일을 보내고, AI 모델을 호출합니다.
서버가 하는 일을 알면 앱의 규칙이 실제로 어디에 있는지, 왜 어떤 변경은 다시 게시해야 하는지, 앱을 호스팅할 때 무엇에 돈을 내는지 이해할 수 있습니다. 두 부분의 구분에 대해서는 프런트엔드와 백엔드의 차이를 참고하세요.
일상 속 비유
서버는 우체국의 창구 직원과 같습니다. 직원은 손님을 찾아다니지 않고 기다립니다. 손님(클라이언트)이 “이 소포 보내 주세요”, “제 우편물 있나요?”라고 요청을 가져오면 직원이 처리해서 결과를 건넵니다. 한 명의 직원이 손님을 차례로 응대할 수 있고, 바쁜 우체국은 창구를 더 엽니다.
우체국에는 손님이 마음대로 바꿀 수 없는 규칙도 있습니다. 소포를 찾으려면 신분증을 보여 줘야 하죠. 앱의 서버도 같은 역할을 합니다. 브라우저는 무엇이든 요청할 수 있지만, 실제로 무엇을 받을지는 서버가 결정합니다.
요청이 서버에 도달하는 과정
누군가 https://bookings.example.com/schedule에 접속하면 다음과 같은 일이 일어납니다.
- DNS 조회. 브라우저가 도메인 이름 시스템에
bookings.example.com이 어떤 IP 주소를 가리키는지 묻습니다. 도메인과 DNS의 작동 방식을 참고하세요. - 연결. 브라우저는 HTTPS용 443번 포트로 그 주소에 연결하고 암호화된 연결을 설정합니다. HTTPS와 SSL이란을 참고하세요.
- 요청. HTTP 요청인
GET /schedule을 보냅니다. - 작업. 서버는
/schedule을 처리하는 코드를 실행합니다. 예를 들어 데이터베이스에서 오늘의 예약을 조회할 수 있습니다. - 응답. 상태 코드(
200 OK)와 내용을 보냅니다. HTML 페이지이거나, 페이지가 표시할 JSON 데이터일 수 있습니다.
이 모든 과정은 보통 찰나에 끝납니다.
자주 듣는 서버의 종류
| 용어 | 의미 |
|---|---|
| 웹 서버 | HTTP 요청에 응답하는 소프트웨어로, 파일을 보내거나 요청을 앱의 코드로 넘깁니다. |
| 애플리케이션 서버 / 백엔드 | 직접 작성한 코드가 서버에서 실행되는 것입니다. 예약, 로그인, 결제를 처리하는 API가 여기에 해당합니다. |
| 데이터베이스 서버 | 데이터를 저장하고 조회하는 것이 주된 역할인 서버입니다. 앱이 연결하는 Postgres 데이터베이스가 그 예입니다. |
| 파일 / 정적 서버 | 요청마다 맞춤 코드를 실행하지 않고, 완성된 파일(HTML, 이미지, 스크립트)을 보냅니다. |
| 물리 서버 | 데이터 센터 랙에 들어 있는 실제 기계입니다. |
| 가상 머신(VM) / VPS | 물리 기계의 일부를 나눠 받아 독립된 컴퓨터처럼 동작하는 것입니다. |
| 컨테이너 | 앱과 필요한 모든 것을 묶은 가벼운 패키지로, 공유된 기계에서 실행됩니다. 많은 플랫폼이 앱을 이런 방식으로 배포합니다. |
| 서버리스 | 코드를 올리면 제공업체가 필요할 때 실행합니다. 내가 관리하지 않는 서버에서 돌아갑니다. 서버리스란 무엇인가를 참고하세요. |
‘서버’는 기계와 프로그램을 모두 뜻한다는 점을 기억하세요. “서버가 다운됐다”는 둘 중 무엇을 가리킬 수도 있습니다.
실제 예시: 미용실 예약 앱
작은 미용실 예약 앱에서 서버가 하는 일은 다음과 같습니다.
- 방문자가 사이트를 엽니다. 서버(또는 그 앞의 CDN)가 페이지 파일을 보냅니다.
- 페이지가 서버에
GET /api/slots?date=2026-10-03을 요청합니다. 서버는 데이터베이스에서 빈 시간을 조회해 JSON으로 돌려줍니다. - 방문자가 14:00을 예약합니다. 페이지가
POST /api/bookings를 보냅니다. 서버는 브라우저의 말을 그대로 믿지 않고, 그 시간이 여전히 비어 있는지 확인한 다음 예약을 저장하고201 Created를 돌려줍니다. - 서버가 서버에만 보관된 비밀 키로 이메일 서비스를 호출해 예약 확인 메일을 보냅니다.
서버를 끄면, 페이지는 CDN에서 여전히 열릴 수 있지만 시간을 보여 주거나 예약을 저장할 수 없게 됩니다.
서버가 잘 돌아가려면 필요한 것
- 메모리(RAM)와 CPU. 메모리가 부족하면 부하가 걸릴 때 앱이 죽고, CPU가 부족하면 느려집니다.
- 실행 상태 유지. 꺼진 서버는 응답할 수 없습니다. 일부 플랫폼은 사용되지 않는 앱을 잠재운 뒤 다음 방문 때 깨우는데, 비용은 줄지만 첫 요청이 느려질 수 있습니다.
- 설정과 비밀 값. 환경 변수로 제공합니다.
- 로그. 서버가 무슨 일이 있었는지 기록해 둔 것으로, 문제가 생기면 가장 먼저 확인하는 곳입니다.
- 업데이트와 보안 패치. 관리형 호스팅이라면 이를 대신 처리해 줍니다.
흔한 오해
- “클라우드에는 서버가 없다.” 클라우드는 다른 회사의 서버를 시간 단위나 사용량 단위로 빌려 쓰는 것입니다.
- “서버는 크고 특별한 컴퓨터다.” 어떤 컴퓨터든 서버 역할을 할 수 있습니다. 개발 중에
localhost를 열면 여러분의 노트북도 서버를 실행하고 있는 것입니다. - “버튼이 숨겨져 있으면 사용자는 그 작업을 할 수 없다.” 누구든 서버에 직접 요청을 보낼 수 있습니다. 권한 확인은 페이지가 아니라 서버에서 해야 합니다.
- “서버를 늘리면 느린 문제가 해결된다.” 실제 원인이 느린 데이터베이스 쿼리나 외부 API인 경우가 많습니다. 먼저 병목을 찾으세요.
- “앱을 만들려면 서버를 직접 관리해야 한다.” 관리형 플랫폼은 기계를 대신 운영하고, 여러분은 코드를 배포하기만 하면 됩니다.
AI 빌더에 요청할 내용
- “이 앱에서 어떤 부분이 서버에서 실행되고, 어떤 부분이 브라우저에서 실행되나요?”
- “모든 API 키는 서버에 두고, 환경 변수에서 읽어 주세요.”
- “데이터를 읽거나 바꾸는 모든 요청에 대해 권한 확인을 서버에서 해 주세요.”
- “서버 로그는 어디서 볼 수 있나요? 이 오류에 대해 로그에는 뭐라고 나와 있나요?”
- “이 앱에 서버가 꼭 필요한가요, 아니면 정적 사이트로 만들 수 있나요?”
- “앱이 한동안 쉬었다가 처음 요청이 들어오면 어떻게 되나요?”
Mythex의 서버
Mythex에서는 서버를 설정하거나 관리할 필요가 없습니다. 만드는 동안 앱은 실시간 미리보기를 위한 비공개 클라우드 샌드박스에서 실행됩니다. 게시하면 Mythex가 배포합니다. 정적 프런트엔드는 정적 사이트로, 백엔드(Node, Python, C#, Java 등)는 Dockerfile에서 빌드된 컨테이너로 배포되며, 호스팅을 직접 설정할 필요가 없습니다. Mythex는 배포할 때 기계 사양을 정하는데, 기본값은 CPU 1개와 메모리 512MB이며, 요청하면 더 늘릴 수 있습니다(무료 플랜은 최대 1GB, Pro 플랜은 최대 CPU 2개, 4GB, 기계 3대까지). 게시된 앱은 사용되지 않을 때 잠들고, 다음 방문 때 깨어납니다. 잠든 앱은 컴퓨팅 비용이 들지 않습니다. 자세한 내용은 API 백엔드 및 호스팅 한도 문서에서 확인할 수 있고, 더 넓은 그림은 웹 호스팅이란 무엇인가 가이드에서 볼 수 있습니다.
자주 묻는 질문
서버란 간단히 말해 무엇인가요?
서버는 다른 기기의 요청을 기다렸다가 응답하는 컴퓨터, 또는 그 위에서 실행되는 프로그램입니다. 웹사이트를 열면 브라우저가 서버에 페이지를 요청하고, 서버가 그 페이지를 돌려보냅니다.
서버는 실제 기계인가요, 아니면 소프트웨어인가요?
두 가지 의미로 모두 쓰입니다. ‘서버’는 물리적이거나 가상의 컴퓨터를 가리키기도 하고, 그 위에서 요청을 처리하는 프로그램(예: 웹 서버)을 가리키기도 합니다. 요즘 대부분의 앱은 직접 소유한 하드웨어가 아니라 클라우드 제공업체의 데이터 센터에 있는 가상 머신이나 컨테이너에서 실행됩니다.
모든 웹사이트에 서버가 필요한가요?
네. 방문자에게 파일을 보내 줄 무언가는 항상 필요합니다. 정적 웹사이트는 간단한 파일 서버나 CDN만 있으면 됩니다. 데이터를 저장하거나, 로그인을 처리하거나, 비밀 API 키를 보관하는 앱은 직접 작성한 코드를 실행하는 백엔드 서버도 필요합니다.
localhost는 무엇을 뜻하나요?
localhost는 ‘이 컴퓨터 자체’를 뜻합니다. 개발자가 자신의 컴퓨터에서 앱을 실행하고 http://localhost:3000 같은 주소로 열면, 그 컴퓨터에서만 접근할 수 있습니다. 공개 서버에 배포하기 전까지는 다른 누구도 볼 수 없습니다.