📚 중간 테스트 후 약한 부분만 모아서 복습하기
yarn dev vs yarn start는 로컬/서버 차이가 아니다yarn dev는 로컬 서버, yarn start는 실서버
yarn dev는 개발 모드, yarn start는 프로덕션 모드
둘 다 로컬에서도 실행할 수 있고, 서버에서도 실행할 수 있다.
차이는 "어디서 실행하느냐"가 아니라 "어떤 모드로 실행하느냐"이다.
yarn dev | yarn start | |
|---|---|---|
| 빌드 필요? | ❌ 바로 실행 | ✅ yarn build 먼저 |
| 코드 수정 반영 | 즉시 반영 (HMR) | 다시 빌드해야 반영 |
| 에러 메시지 | 친절하고 자세함 | 간략함 |
| 용도 | 개발할 때 | 사용자에게 보여줄 때 |
| 어디서든 실행 가능? | ✅ 로컬도, 서버도 | ✅ 로컬도, 서버도 |
세 가지를 각각 설명했지만, "가장 빠른 것"을 콕 집지 못함
Vercel — 자동 스케일링이라 내가 아무것도 안 해도 알아서 늘려준다
| 대응 속도 | 이유 | |
|---|---|---|
| 자체 서버 | 🐌 며칠~몇 주 | 컴퓨터를 사서 설치해야 함 |
| AWS | ⚡ 몇 분~몇 시간 | 빠르지만 내가 직접 설정 변경해야 함 |
| Vercel | ⚡⚡ 자동 | 아무것도 안 해도 알아서 처리 |
ubuntu는 서버 이름이 아니라 계정 이름ubuntu = 서버 이름
ubuntu = 서버에서 사용할 사용자 계정 이름
하나의 서버에 여러 계정이 있을 수 있다:
root — 최고 관리자ubuntu — AWS에서 기본 생성되는 계정deploy — 배포 전용 계정레스토랑 비유: "주방에 전화해서 주방장 김씨 바꿔주세요"에서 김씨에 해당하는 부분.
ssh -i my-key.pem ubuntu@13.125.200.50
# ^^^^^^
# 서버 이름(X) → 계정 이름(O)
"서버는 이미 켜져 있는데 yarn start는 뭘 켜는 거야?"
"배포가 뭐야? 서버에 파일 올리는 거야, 서버를 켜는 거야?"
서버 컴퓨터가 켜져 있는 것과 앱(Next.js)이 실행되는 것은 별개이다.
| 개념 | 의미 | 레스토랑 비유 |
|---|---|---|
| 서버 컴퓨터 ON | 컴퓨터 전원이 켜져 있음 | 주방 건물이 열려 있음 |
| 배포 | 빌드된 파일을 서버로 옮김 | 손질된 재료를 주방에 갖다 놓음 |
| yarn start | 앱 프로그램을 실행함 | 가스레인지 불 켜고 영업 시작 |
건물이 열려 있어도 → 재료가 없으면 요리 못 함 (배포 안 하면)
재료가 있어도 → 불을 안 켜면 요리 못 함 (start 안 하면)
코드 작성 (로컬)
↓
yarn build (빌드)
↓
빌드된 파일을 서버로 보낸다 ← 여기가 "배포"
↓
SSH로 서버 접속
↓
yarn start -p 5008 ← 여기가 "실행"
↓
사용자 접속 가능!
실무에서는 서버에서
git pull → yarn build → yarn start를 한 번에 하는 경우가 많아서
배포와 실행이 뒤섞여 보이지만, 개념적으로는 다른 단계이다.
| # | 헷갈린 것 | 기억할 것 |
|---|---|---|
| 1 | dev=로컬, start=서버? | dev=개발 모드, start=프로덕션 모드 (둘 다 어디서든 가능) |
| 2 | 트래픽 대응 가장 빠른 것? | Vercel (자동 스케일링) |
| 3 | ubuntu=서버 이름? | ubuntu=계정 이름 (서버 안의 사용자) |
| 4 | 배포=서버 켜기? | 배포=파일을 서버로 옮기기, 실행=yarn start로 앱 켜기 |