PES
KO English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

알림을 켜는 방법

이 브라우저 또는 주소에서는 알림을 사용할 수 없습니다. 지원되는 브라우저로 보안 연결된 PES 사이트에 접속해 주세요.

알림이 차단되어 있으면 브라우저 설정에서 허용해 주세요.

  1. 주소 표시줄 옆의 사이트 설정 또는 브라우저의 사이트 설정을 열고, 이 사이트의 알림을 허용으로 바꾸세요.
  2. 기기 설정에서 브라우저 알림을 허용하고 방해 금지 또는 집중 모드를 확인하세요.
  3. PES로 돌아와 페이지를 새로고침한 뒤 벨을 눌러 알림을 켜세요.

iPhone 또는 iPad에서는 PES를 홈 화면에 추가하고 거기에서 연 뒤 알림을 허용하세요.

나의 학습 진도
  1. 인공지능 사용법
  2. 터미널 명령어
  3. 인공지능 심화
  4. 바이브코딩
  5. 인공지능 자격증 준비 중
  6. 키보드
바이브코딩 전체 보기
바이브코딩

웹 클라이언트

서버에게 무언가를 달라고 하는 모든 것.

Chrome 도 웹 클라이언트이고, curl 한 줄도 웹 클라이언트입니다. 이 장에서는 HTTP 요청을 손으로 직접 써 보고, 그것을 쉘 스크립트로 감싸고, curl 을 제대로 익힌 다음, Chrome 개발자 도구를 열어 똑같은 글이 오가는 것을 눈으로 확인합니다.

터미널로 웹 클라이언트 만들기

HTTP 가 글자일 뿐이라는 것을 가장 빨리 믿는 방법은 요청을 직접 쳐 보는 것입니다. 앞 주제의 쉘 웹서버를 띄워 놓고, 터미널을 하나 더 열어 손으로 말을 걸어 보세요.

nc 로 요청을 손으로 쓰기

netcat 은 포트에 연결해 여러분이 친 글자를 그대로 선에 흘려보냅니다. 두 줄을 치고 엔터를 두 번 누르면 서버가 답합니다 — 방금 브라우저의 일을 손으로 한 것입니다.

terminal
# connect, then type the two lines below and press Enter once more
nc localhost 8084

GET / HTTP/1.1
Host: localhost

# or send it all at once (printf's \r\n is HTTP's line break)
printf 'GET / HTTP/1.1\r\nHost: localhost\r\n\r\n' | nc localhost 8084
  • 끝의 빈 줄이 중요합니다. 요청이 끝났다고 서버에게 알리는 표시이고, 그래서 엔터를 한 번 더 누릅니다.
  • HTTP 는 줄 끝마다 캐리지리턴과 줄바꿈을 요구합니다. 손으로 쳐도 되는 것은 대개의 서버가 너그럽기 때문이고, printf 판은 규격이 요구하는 그대로를 보냅니다.
  • Host 줄은 HTTP/1.1 이 반드시 요구합니다. 진짜 사이트에 이것 없이 보내면 페이지 대신 오류가 돌아오는 것이 보통입니다.

스크립트로 감싸기

요청이 printf 한 줄이 되고 나면, 다시 쓸 수 있는 클라이언트는 몇 줄이면 됩니다. 아래 스크립트는 호스트 · 포트 · 경로를 받아 요청을 보내고, 헤더와 본문을 갈라 보여 줍니다.

client.sh
#!/bin/bash
# usage: bash client.sh localhost 8084 /

HOST=${1:-localhost}
PORT=${2:-8084}
PATH_=${3:-/}

printf 'GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n' "$PATH_" "$HOST" \
  | nc "$HOST" "$PORT" \
  | tr -d '\r' \
  | awk 'BODY { print; next } /^$/ { BODY = 1; next } { print "[header] " $0 }'

tr 은 HTTP 가 줄 끝마다 남기는 캐리지리턴을 걷어 내고, awk 는 빈 줄을 만날 때까지를 헤더로 표시합니다 — 그 뒤는 전부 본문입니다. 브라우저가 화면을 그리기 전에 하는 것과 똑같은 나눔입니다.

양쪽을 함께 돌려 보세요

한 터미널에 쉘 웹서버를, 다른 터미널에 이 클라이언트를 띄우면 여러분이 직접 쓴 대화의 양쪽 끝을 모두 갖게 됩니다. 서버의 응답을 고치면 클라이언트가 곧바로 알아봅니다 — 사이에 아무것도 없기 때문입니다.

쉘 웹서버로 돌아가기

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 단계를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

가이드라인

인공지능

인공지능 자격증

공부

바이브코딩

게임 개발

연습

튜터

채팅

게시판

만들기

소통

더보기

용어 사전

모르는 말을 골라 보세요. 쉬운 설명과 관련 용어를 볼 수 있어요.

찾는 용어가 아직 없어요.

용어를 고르면 설명이 보여요.