Day 6 — 서버란 무엇인가? (AWS, Vercel, 자체 서버)

짱효·2026년 4월 24일

📚 2년차 프론트엔드 개발자의 12주 기초 챌린지
Week 2: 배포 환경 이해하기 (Day 6-10)


🍳 레스토랑 비유로 시작하기

Week 1에서 레시피를 만들고(개발), 재료를 손질해서 세팅하고(빌드), 손님에게 서빙하는(배포) 과정을 배웠다.

그런데 그 요리를 어디서 만드나? 당연히 주방(Kitchen)이 있어야 한다.
이 주방이 바로 서버다.

주방에도 종류가 있다:

  • 내 건물에 직접 주방을 만든다 → 자체 서버 (On-premise)
  • 공유 주방을 빌린다 → AWS 같은 클라우드 서버
  • 배달 전문 키친을 쓴다 (주방 관리는 전부 알아서 해줌) → Vercel 같은 서버리스 플랫폼

1. 서버의 본질: "항상 켜져 있는 컴퓨터"

서버 = 24시간 켜져 있으면서, 요청이 오면 응답해주는 컴퓨터

내 컴퓨터에서 yarn start를 실행하면 localhost:5008에서 사이트가 뜬다.
그 순간 내 컴퓨터가 서버 역할을 하고 있는 것이다.

다만 집에서 컴퓨터를 끄면 사이트도 죽는다.
그래서 24시간 안 꺼지는 컴퓨터가 필요한 것이다.

서버가 하는 일:

  • 사용자의 요청(request)을 받는다 (예: "메인 페이지 보여줘")
  • 요청에 맞는 파일이나 데이터를 찾아서 돌려준다 (HTML, CSS, JS, API 응답)
  • 이걸 24시간 365일 한다

2. 세 가지 서버 유형 비교

🏠 자체 서버 (On-premise)

직접 컴퓨터를 사서, 직접 설치하고, 직접 관리하는 방식.
건물을 사서 주방을 직접 만드는 것.

  • ✅ 모든 걸 내 마음대로 제어 가능
  • ✅ 월 사용료 없음 (초기 비용은 큼)
  • ❌ 고장 나면 내가 고쳐야 함
  • ❌ 트래픽 급증 시 대응 어려움 (컴퓨터를 사서 추가해야 하니까)
  • ❌ 서버 관리 전문 인력 필요

☁️ 클라우드 서버 (AWS, GCP, NCP 등)

남의 컴퓨터를 빌려 쓰는 방식.
공유 주방을 월세로 빌리는 것.

AWS의 EC2 = "가상 컴퓨터 한 대를 빌려주는 서비스"

  • ✅ 컴퓨터를 안 사도 됨
  • ✅ 트래픽 늘면 스펙 올릴 수 있음 (스케일링)
  • ✅ 서버 하드웨어 관리 불필요
  • ❌ 매달 비용 발생
  • ❌ OS/Node.js/Nginx 등 소프트웨어 설치는 내가 해야 함

⚡ 서버리스 플랫폼 (Vercel, Netlify 등)

서버 관리를 아예 안 하는 방식.
배달 전문 클라우드 키친. 레시피(코드)만 넘기면 다 알아서 해줌.

  • ✅ git push만 하면 자동 빌드 + 배포
  • ✅ 서버 관리 불필요
  • ✅ 자동 스케일링
  • ❌ 세밀한 서버 제어 어려움
  • ❌ 무료 범위 넘으면 비용 증가

3. 내 프로젝트는 어떤 방식?

"dev": "next dev -p 4040"
"build": "next build"
"start": "next start -p 5008"
"devStart": "next start -p 5007"

포트를 직접 지정하고, startdevStart를 나눠서 쓰고 있다.

→ 이건 자체 서버 또는 클라우드 서버(AWS EC2 등)에서 직접 Node.js를 돌리는 환경이다.

Vercel 같은 서버리스 플랫폼에서는 포트 번호를 직접 지정할 필요가 없기 때문이다.

devStart가 따로 있다는 건, 같은 서버에서 프로덕션용(5008)개발 확인용(5007)을 동시에 돌리는 구조일 수 있다.


4. 배포 → 서버에서 켜기, 전체 흐름

로컬에서 코드 작성
    ↓
yarn build (빌드 → .next 폴더 생성)
    ↓
빌드된 파일을 서버 컴퓨터로 보낸다 (= 배포)
    ↓
서버에서 yarn start -p 5008 (= 켜기)
    ↓
사용자가 접속 가능! 🎉

배포 = 파일을 서버에 올리는 것이고, 서버에서 실행(start)해야 비로소 사용자가 접속할 수 있다.

Vercel은 이 "켜는" 과정까지 자동이고, 직접 서버를 관리하는 환경에서는 누군가가 서버에 접속해서 직접 켜야 한다.


5. 스케일링 용어 정리

트래픽이 갑자기 늘었을 때:

  • 스케일 업 (Scale Up) — 서버 한 대의 스펙을 올린다 (CPU, 메모리 추가). 작은 주방을 큰 주방으로 바꾸는 것.
  • 스케일 아웃 (Scale Out) — 같은 서버를 여러 대로 늘린다. 주방을 하나 더 여는 것.
자체 서버AWSVercel
스케일 업부품 교체 (시간 오래 걸림)클릭 몇 번으로 가능자동
스케일 아웃컴퓨터 추가 구매 필요클릭 몇 번으로 가능자동
급한 대응❌ 어렵다✅ 빠르다✅ 알아서 된다

📌 오늘의 핵심 정리

  1. 서버 = 24시간 켜져 있으면서 요청에 응답하는 컴퓨터
  2. 자체 서버 → 완전한 제어권, 관리 부담 큼
  3. 클라우드(AWS) → 빌려 쓴다, 스케일링 가능, 설정은 직접
  4. 서버리스(Vercel) → 코드만 넘기면 끝, 편하지만 세밀한 제어 어려움
  5. 배포 = 파일을 서버에 올리는 것, 그 다음 서버에서 start 해야 작동
  6. 내 프로젝트 → 포트 직접 지정 + start/devStart 분리 = 직접 서버 관리 환경

🔮 다음 시간 (Day 7): SSH란? 서버 접속 해보기
"멀리 있는 서버 컴퓨터를 어떻게 조작하는가?"

profile
✨🌏확장해 나가는 프론트엔드 개발자입니다✏️

0개의 댓글