📚 2년차 프론트엔드 개발자의 12주 기초 챌린지
Week 2: 배포 환경 이해하기 (Day 6-10)
Week 1에서 레시피를 만들고(개발), 재료를 손질해서 세팅하고(빌드), 손님에게 서빙하는(배포) 과정을 배웠다.
그런데 그 요리를 어디서 만드나? 당연히 주방(Kitchen)이 있어야 한다.
이 주방이 바로 서버다.
주방에도 종류가 있다:
서버 = 24시간 켜져 있으면서, 요청이 오면 응답해주는 컴퓨터
내 컴퓨터에서 yarn start를 실행하면 localhost:5008에서 사이트가 뜬다.
그 순간 내 컴퓨터가 서버 역할을 하고 있는 것이다.
다만 집에서 컴퓨터를 끄면 사이트도 죽는다.
그래서 24시간 안 꺼지는 컴퓨터가 필요한 것이다.
서버가 하는 일:
직접 컴퓨터를 사서, 직접 설치하고, 직접 관리하는 방식.
건물을 사서 주방을 직접 만드는 것.
남의 컴퓨터를 빌려 쓰는 방식.
공유 주방을 월세로 빌리는 것.
AWS의 EC2 = "가상 컴퓨터 한 대를 빌려주는 서비스"
서버 관리를 아예 안 하는 방식.
배달 전문 클라우드 키친. 레시피(코드)만 넘기면 다 알아서 해줌.
"dev": "next dev -p 4040"
"build": "next build"
"start": "next start -p 5008"
"devStart": "next start -p 5007"
포트를 직접 지정하고, start와 devStart를 나눠서 쓰고 있다.
→ 이건 자체 서버 또는 클라우드 서버(AWS EC2 등)에서 직접 Node.js를 돌리는 환경이다.
Vercel 같은 서버리스 플랫폼에서는 포트 번호를 직접 지정할 필요가 없기 때문이다.
devStart가 따로 있다는 건, 같은 서버에서 프로덕션용(5008)과 개발 확인용(5007)을 동시에 돌리는 구조일 수 있다.
로컬에서 코드 작성
↓
yarn build (빌드 → .next 폴더 생성)
↓
빌드된 파일을 서버 컴퓨터로 보낸다 (= 배포)
↓
서버에서 yarn start -p 5008 (= 켜기)
↓
사용자가 접속 가능! 🎉
배포 = 파일을 서버에 올리는 것이고, 서버에서 실행(start)해야 비로소 사용자가 접속할 수 있다.
Vercel은 이 "켜는" 과정까지 자동이고, 직접 서버를 관리하는 환경에서는 누군가가 서버에 접속해서 직접 켜야 한다.
트래픽이 갑자기 늘었을 때:
| 자체 서버 | AWS | Vercel | |
|---|---|---|---|
| 스케일 업 | 부품 교체 (시간 오래 걸림) | 클릭 몇 번으로 가능 | 자동 |
| 스케일 아웃 | 컴퓨터 추가 구매 필요 | 클릭 몇 번으로 가능 | 자동 |
| 급한 대응 | ❌ 어렵다 | ✅ 빠르다 | ✅ 알아서 된다 |
🔮 다음 시간 (Day 7): SSH란? 서버 접속 해보기
"멀리 있는 서버 컴퓨터를 어떻게 조작하는가?"