오늘 끝나면
클라이언트 vs 서버
- ✓클라이언트 vs 서버의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 클라이언트이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
누가 무엇을 하나 — 개발 멘탈모델의 핵심 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
개발 · Day 14
클라이언트
vs 서버
클라이언트는 시키는 쪽이고 서버는 만드는 쪽이다. 식당으로 치면 손님과 주방이다. 개발 지도의 뼈대가 되는 구분이다.
누가 시키고 누가 만드나
웹과 앱은 두 역할로 나뉜다.
클라이언트는 요청하는 쪽이다. 폰과 노트북, 그 안의 브라우저나 앱이 여기에 해당한다.
서버는 응답하는 쪽이다. 늘 켜져 있는 컴퓨터로, 시키면 만들어서 내준다.
식당으로 외워두기
식당으로 외워두면 헷갈리지 않는다.
손님이 클라이언트다. 메뉴를 보고 주문한다. 직접 요리는 하지 않는다.
주방이 서버다. 주문을 받아 요리해서 내준다. 재료(데이터)도 거기에 있다.
손님은 주방이 어떻게 만드는지 모른다. 완성된 음식만 받는다. 웹도 똑같다. 화면만 받을 뿐 서버 속은 보이지 않는다.
서버는 왜 안 꺼지나
내 노트북은 덮으면 꺼진다. 서버는 그렇지 않다.
누군가 새벽 3시에 사이트를 열 때 서버가 꺼져 있으면 응답하지 못한다.
그래서 서버는 24시간 켜진 채 데이터센터에서 손님을 기다린다. 마법 상자가 아니라, 늘 켜져서 응답만 하는 역할을 맡은 컴퓨터다.
한 번의 왕복, 단계별로
주소를 치고 화면이 뜨기까지, 일은 양쪽을 오간다.
손님(클라이언트)이 먼저 시키고, 주방(서버)이 만들어 보내면, 다시 손님이 받아서 본다.
중요한 건 일하는 주체가 계속 바뀐다는 점이다. 한쪽이 다 하는 게 아니다.
한 화면에 둘이 섞여 있음
쇼핑몰 화면 하나를 쪼개 보면 둘이 같이 일한다.
버튼을 눌렀을 때 색이 바뀌는 것은 주방까지 가지 않는다. 손님이 그 자리에서 처리한다.
반면 상품 목록과 가격, 재고는 서버에 물어봐야 한다. 데이터가 거기에 있기 때문이다.
그래서 개발할 때 늘 묻게 된다. "이 일은 클라가 할까, 서버가 할까?"
코드 보기, 손님 일과 주방 일의 갈림
// 클라이언트(손님)가 그 자리에서 하는 일
button.onclick = () => button.classList.toggle("on")
// 서버(주방)에 물어봐야 하는 일
const res = await fetch("/api/products")
const list = await res.json() // 상품·가격·재고늘 묻게 된다. "이 일은 클라가 할까, 서버가 할까?"