01 / 15
SESSION 27 · Part 6 서버/DB

서버란
무엇인가?

24시간 깨어 있는 디지털 식당 — 클라이언트의 요청을 응답으로 되돌려 주는 존재

02 / 15
🎯

이 세션에서
배우는 것

🔄
클라이언트-서버 모델
요청하는 쪽과 응답하는 쪽의 관계를 설명할 수 있다
🌐
서버의 종류
웹 서버와 애플리케이션 서버의 차이를 구분한다
🔢
포트의 역할
같은 IP에서 서비스를 구분하는 번호를 이해한다
03 / 15
💭

서버
알아야 할까?

브라우저는 혼자서는 아무 데이터도 만들지 못한다.
로그인, 주문, 채팅 — 모든 동적인 기능서버가 뒤에서 움직인다.

AI 시대에도 "서버가 어디 있고, 어떻게 응답하는가" 를 모르면 어떤 서비스도 완성할 수 없다.

04 / 15

클라이언트 서버

항상 켜져 있는 쪽이 서버, 그때그때 요청하는 쪽이 클라이언트.

💻 클라이언트
브라우저 · 앱
→ 요청
🖥️ 서버
Always On
← 응답
💻 클라이언트
화면 갱신

예: 브라우저가 GET /users 를 보내면 서버가 사용자 목록 JSON을 돌려준다.

05 / 15
🔄

클라이언트-서버 —
더 깊게 이해하기

브라우저가 서버에 요청을 보내고 응답받는 과정을 단계별로 살펴보자.

1
클라이언트가 요청 생성
브라우저가 GET /api/users HTTP/1.1 형태의 HTTP 요청 패킷을 만든다. 헤더에 인증토큰 등이 포함된다.
2
DNS → IP 주소 변환
도메인(api.example.com)을 IP(123.45.67.89)로 변환. 이후 TCP 연결(3-way handshake)을 맺는다.
3
서버가 요청 수신·처리
서버는 요청의 URL·메서드·헤더를 분석해 해당 로직을 실행하고 DB에서 데이터를 조회한다.
4
응답 반환
상태코드(200 OK, 404 Not Found 등)와 JSON 데이터를 담아 클라이언트에게 돌려준다.
06 / 15

웹 서버 vs 애플리케이션 서버

같은 "서버"라도 역할이 다르다. 보통 둘이 함께 사용된다.

🌐 웹 서버
정적 파일(HTML, CSS, 이미지) 제공
요청을 받아 그대로 파일 전송
대표: Nginx, Apache
빠르고 가볍다
⚙️ 애플리케이션 서버
비즈니스 로직 처리 · DB 쿼리
요청마다 동적으로 응답 생성
대표: Node.js, Django, Spring
유연하지만 자원 소모가 크다
07 / 15
💬

카카오톡 메시지 —
실제로는 어떻게?

친구에게 "ㅋㅋ" 한 글자를 보낼 때도 서버를 거친다. 그 경로를 따라가보자.

내 폰에서 전송
POST 요청 생성
카카오 서버
메시지 저장·라우팅
상대방 식별
푸시 알림 발송
상대 폰 수신
메시지 표시

핵심: 두 사람이 직접 연결되는 것이 아니라, 항상 서버가 중간에서 중계한다.

08 / 15
🔢

IP가 주소라면,
포트는 입구 번호

같은 서버(IP)에서 여러 서비스를 구분하려면 포트가 필요하다.

🌐
80
HTTP
🔒
443
HTTPS
🛠️
3000
개발용 Node.js
🧪
8080
개발용 대체 HTTP
http://localhost:3000/api/users
      └──── IP ────┘└─포트┘└── 경로 ──┘
09 / 15
📱

실생활에서
이렇게 쓰여요

우리가 매일 사용하는 앱과 서비스 속에 이 개념이 녹아 있다.

💬
카카오톡 서버
메시지를 중계하고 저장하는 서버. 서버가 없다면 상대방이 오프라인일 때 메시지 전달이 불가
▶️
유튜브 서버
영상 파일을 저장하고 스트리밍으로 전송. 수억 개의 영상이 클라우드 서버에 분산 저장
🛍️
쿠팡 서버
주문 처리·재고 확인·결제를 담당하는 서버. 초당 수만 건의 요청을 처리

💡 이 개념이 없다면 로그인·결제·채팅 같은 동적 기능을 구현할 수 없다.

10 / 15
💡

자주 하는
오해 바로잡기

이렇게 생각하기 쉽지만, 실제로는 조금 다릅니다.

❌ 흔한 오해
  • 서버 = 고성능 슈퍼컴퓨터
  • 서버가 다운되면 인터넷 전체가 안 된다
  • 내 노트북은 서버가 될 수 없다
✓ 실제로는
  • 서버는 역할의 개념 — 항상 켜서 요청을 기다리는 모든 컴퓨터
  • 각 서비스는 독립된 서버를 가짐 — 일부가 꺼져도 다른 서비스는 정상 동작
  • localhost:3000으로 내 노트북을 서버로 쓸 수 있다 (개발용)
11 / 15
🍽️

서버는 24시간 식당이다

서버를 물리적 가게에 빗대어 보면 구조가 쉽게 잡힌다.

🍽️ 식당 비유
식당 건물
=
서버 — 항상 열려 있는 물리적 컴퓨터
손님
=
클라이언트 — 언제든 찾아와 주문을 넣는 사람
주소 + 호수
=
IP + 포트 — "어디로, 어느 창구로" 가야 하는지
주방
=
애플리케이션 서버 — 실제로 요리(로직)를 수행
12 / 15
🤖

이걸 알면
AI와 이렇게 대화해요

이 개념을 이해하면 Claude나 ChatGPT를 훨씬 잘 활용할 수 있다.

👤
간단한 서버 만들고 싶어요.
🤖
어떤 언어로 만들고 싶으신가요? Python, Node.js, Java 등 다양한 선택지가 있어요.
👤
Node.js Express로 'Hello World'를 반환하는 GET /api/hello 엔드포인트가 있는 기본 서버 코드 작성해줘.
🤖
const express = require('express'); const app = express(); app.get('/api/hello', (req, res) => res.json({message: 'Hello World'})); app.listen(3000); — 이 5줄로 충분합니다!
13 / 15

이렇게
이해하셨나요?

맞게 이해하셨어요
서버는 요청을 받아 처리하고 응답을 보내는 역할을 하는 항상 켜진 컴퓨터
이렇게는 아니에요
서버 = 클라우드 (클라우드에 서버가 있을 뿐, 서버와 클라우드는 다른 개념)
맞게 이해하셨어요
포트는 같은 IP에서 여러 서비스를 구분하는 번호다 (80=HTTP, 443=HTTPS)
이렇게는 아니에요
서버 하나가 다운되면 인터넷 전체가 동작하지 않는다

💪 서버의 역할을 이해하면 백엔드 개발이 훨씬 직관적으로 느껴질 거예요!

14 / 15
📌

핵심 정리

🔄
클라이언트-서버
요청하는 쪽 · 응답하는 쪽의
명확한 역할 분담
🌐
웹 서버
정적 파일 제공 —
Nginx · Apache
⚙️
앱 서버
동적 로직 처리 —
Node.js · Django
🔢
포트
80, 443, 3000, 8080 —
서비스의 입구
📡
Always On
서버의 본질은
"끊김 없음"이다
🧱
백엔드의 시작
모든 웹 서비스의
뼈대가 된다
15 / 15
🚀

다음 세션
Session 28 · REST API와 데이터 교환

서버가 데이터를 주고받는 표준 규칙을 배운다.
GET / POST / PUT / DELETE, 그리고 JSON으로 세상과 대화하는 법.

💡 기억할 것: 서버는 항상 켜져 있고, 요청을 기다리는 존재다.

슬라이드 목록