스킬캠퍼스
Day 14 · 클라이언트 vs 서버
강의

오늘 끝나면

클라이언트 vs 서버

  • 클라이언트 vs 서버의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 클라이언트이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

누가 무엇을 하나 — 개발 멘탈모델의 핵심 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

개발 · Day 14

클라이언트
vs 서버

클라이언트는 시키는 쪽 / 서버는 만드는 쪽임. 식당으로 치면 손님과 주방임. 개발 지도의 뼈대임.

P.01개발 · Day 14

누가 시키고 누가 만드나

세상 모든 웹·앱은 딱 두 역할로 나뉨.

클라이언트요청하는 쪽임. 내 손에 든 폰·노트북, 그 안의 브라우저임.

서버응답하는 쪽임. 어딘가에서 늘 켜져 있는 컴퓨터임. 시키면 만들어 내줌.

이름은 어려워 보여도 단순함. 시키는 쪽 / 만드는 쪽. 그게 전부임.

요청하는 쪽 · 응답하는 쪽
요청하는 쪽클라이언트브라우저 · 앱📱응답하는 쪽서버늘 켜진 컴퓨터🖥️시킴만들어 줌시키는 쪽 / 만드는 쪽 — 그게 전부
P.02개발 · Day 14

식당으로 외워두기

헷갈리면 식당을 떠올리셈. 한 번에 외워짐.

손님이 클라이언트임. 메뉴를 보고 주문함. 직접 요리는 안 함.

주방이 서버임. 주문을 받아 요리해서 내줌. 재료(데이터)도 거기 있음.

손님은 주방이 어떻게 만드는지 모름. 완성된 음식만 받음. 웹도 똑같음 — 화면만 받지, 서버 속은 안 보임.

요리를 안 함 ≠ 아무것도 안 함. 손님도 할 일이 있음 (다음 장).

손님 ↔ 주방
🙋손님= 클라이언트🍳주방= 서버주문음식손님은 요리법을 모름 — 완성된 음식만 받음웹도 똑같음 — 화면만 받지, 서버 속은 안 보임
P.03개발 · Day 14

서버는 왜 안 꺼지나

내 노트북은 덮으면 꺼짐. 서버는 안 그럼.

누군가 새벽 3시에 그 사이트를 열 수도 있음. 그때 서버가 꺼져 있으면 응답을 못 함.

그래서 서버는 24시간 켜진 채 데이터센터에 박혀 있음. 손님을 항상 기다림.

모양은 그냥 컴퓨터임. 특별한 마법 상자가 아님. 늘 켜져서 응답만 하는 역할을 맡았을 뿐임.

내 컴퓨터 vs 서버
내 노트북💤덮으면 꺼짐필요할 때만 켬서버24시간 켜짐늘 기다림새벽 3시에 누가 열어도 — 서버는 켜져 있어야 응답함마법 상자가 아니라, 안 꺼지는 역할을 맡은 컴퓨터일 뿐
P.04개발 · Day 14

한 번의 왕복, 단계별로

주소를 치고 화면이 뜨기까지, 일은 양쪽을 오감.

손님(클라이언트)이 먼저 시킴 → 주방(서버)이 만들어 보냄 → 다시 손님이 받아서 봄.

단계를 하나씩 눌러 보셈. 그 일을 누가 하는지 그쪽에 이 들어옴.

중요한 건 일하는 주체가 계속 바뀐다는 점임. 한쪽이 다 하는 게 아님.

누가 무엇을 하나 · 직접 밟아 보기
요청-응답 실험실 · 지금 일하는 쪽에 불이 들어옴
손님
클라이언트
요청하는 쪽
브라우저 · 앱
● 지금 일하는 중
주방
서버
응답하는 쪽
늘 켜진 컴퓨터
○ 대기
1 / 6 단계 — 지금 일하는 쪽: 클라이언트 (손님)
주소창에 google.com 침 — 요청 시작
식당으로 치면 → 손님이 메뉴판을 보고 주문을 정함
한 번의 왕복 (요청 → 응답)
손님(클라이언트)이 시키고, 주방(서버)이 만들어 내줌. 늘 이 왕복임
P.05개발 · Day 14

한 화면에 둘이 섞여 있음

실제 쇼핑몰 화면 하나를 쪼개 보면 둘이 같이 일함.

버튼 눌렀을 때 색이 바뀌는 것 — 굳이 주방까지 안 감. 손님이 그 자리에서 처리함.

근데 상품 목록·가격·재고 — 이건 서버에 물어봐야 함. 데이터가 거기 있으니까.

그래서 개발할 때 늘 묻게 됨. "이 일은 클라가 할까, 서버가 할까?" 그 감이 잡히면 절반은 온 거임.

코드 보기 — 손님 일과 주방 일의 갈림
// 클라이언트(손님)가 그 자리에서 하는 일
button.onclick = () => button.classList.toggle("on")

// 서버(주방)에 물어봐야 하는 일
const res = await fetch("/api/products")
const list = await res.json()  // 상품·가격·재고
클라이언트 일 · 서버 일
손님클라버튼 색 바꾸기그 자리서 처리손님클라입력칸 글자 보이기서버 안 감주방서버상품 목록·가격서버에 물어봄주방서버로그인 확인·재고데이터 거기 있음

늘 묻게 됨 — "이 일은 클라가 할까, 서버가 할까?"

3줄 요약

  1. 1누가 무엇을 하나 — 개발 멘탈모델의 핵심
  2. 2클라이언트 vs 서버은 코딩 기본 → 인터넷과 웹 → 프론트/백엔드 → 데이터 → 배포 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

클라이언트

누가 무엇을 하나 — 개발 멘탈모델의 핵심

입력

프로그램이 받아들이는 값이나 사용자 행동

규칙

입력을 처리하는 코드의 절차