통합 요약노트

Ch.8 웹 개발 상식

웹 서비스의 구조와 보안 기초를 이해합니다.

이 챕터의 내용

1

프론트엔드와 백엔드 — 3계층 아키텍처

웹의 3계층 구조를 이해하면 AI에게 '프론트엔드 코드'와 '백엔드 코드'를 정확히 구분해서 요청할 수 있습니다.

웹 서비스는 보통 3개 층으로 나뉩니다. 각 층이 맡은 역할이 다르고, 서로 협력해서 하나의 서비스를 만듭니다.

비유하면 레스토랑과 같습니다. 홀(프론트엔드) — 손님이 보는 공간, 메뉴판과 테이블 주방(백엔드) — 실제 요리하는 곳, 손님은 볼 수 없음 냉장고(데이터베이스) — 재료를 보관하는 곳

Next.js의 특별함: 프론트엔드와 백엔드를 한 프로젝트에서 처리할 수 있습니다. 이런 프레임워크를 풀스택 프레임워크라고 부릅니다. 페이지도 만들고, API도 만들 수 있어서 바이브코더에게 특히 유리합니다.

  • 웹 서비스 = 프론트엔드(화면) + 백엔드(로직) + DB(저장)
  • 레스토랑 비유: 홀 = 프론트, 주방 = 백엔드, 냉장고 = DB
  • Next.js는 풀스택 프레임워크 — 프론트와 백엔드를 한 곳에서
  • AI에게 프론트/백엔드 구분해서 요청하면 정확도 향상
상세 노트 보기arrow_forward
2

배포 — localhost에서 인터넷으로

배포 과정을 이해하면 내 프로젝트를 세상에 공개하고, 환경별 설정을 올바르게 관리할 수 있습니다.

localhost = 내 컴퓨터에서만 접근 가능한 주소입니다. 다른 사람이 내 웹사이트를 보려면 배포가 필요합니다.

비유하면, 집에서 만든 요리(localhost)를 다른 사람에게 먹이려면 포장해서 배달(배포)해야 합니다. 아무리 맛있어도 집 밖으로 나가지 않으면 나만 먹을 수 있습니다.

배포 = 내 코드를 인터넷 서버에 올려서 누구나 접근 가능하게 만드는 것

  • localhost = 내 컴퓨터 전용, 배포 = 인터넷 공개
  • Vercel: GitHub push → 자동 빌드 → 배포 → URL 발급
  • 환경 3단계: 개발(dev) → 스테이징(staging) → 프로덕션(prod)
  • 환경변수는 반드시 환경별로 분리 관리
상세 노트 보기arrow_forward
3

보안 기초 — XSS와 Injection, .env 관리

웹 보안의 기본 위협과 방어법을 알면 AI가 만든 코드의 보안 허점을 발견하고 수정을 요청할 수 있습니다.

보안은 "작동한다 ≠ 안전하다"입니다. AI가 만든 코드도 예외가 아닙니다.

비유하면 자물쇠 없는 집입니다. 도둑이 안 들어온 건 운이 좋았을 뿐, 문이 잠겨있는 건 아닙니다. 웹 보안도 마찬가지로, 공격이 없었다고 안전한 게 아닙니다.

가장 흔한 웹 보안 위협 2가지: XSS와 SQL Injection

  • XSS = 스크립트 삽입 공격 → React 이스케이프로 방어
  • SQL Injection = SQL 변조 공격 → ORM/Prepared Statement로 방어
  • .env 3원칙: .env에 보관, .gitignore에 추가, 유출 시 즉시 재발급
  • AI 코드도 보안 점검 필수 — 작동 ≠ 안전
상세 노트 보기arrow_forward
4

흔한 에러들 — CORS, 404, 500 해결법

흔한 에러 3가지의 원인과 해결법을 익히면 당황하지 않고 AI에게 정확한 단서를 전달할 수 있습니다.

에러는 적이 아니라 단서입니다. 에러 메시지를 읽으면 원인과 해결책이 보입니다. 무시하거나 두려워하지 말고, 메시지를 꼼꼼히 읽는 습관이 중요합니다.

에러 메시지 = AI에게 전달할 최고의 단서

CORS 에러 — 개발자가 가장 혼란스러워하는 에러입니다. 처음 만나면 무슨 소리인지 전혀 모르지만, 원리는 간단합니다.

  • CORS = 브라우저 보안 정책 → 서버 헤더 추가 또는 프록시로 해결
  • 404 = 경로 없음(URL 확인), 500 = 서버 버그(로그 확인)
  • 에러 전달 공식: 메시지 전문 + 동작 설명 + 기대 동작
  • 에러는 적이 아니라 단서 — 메시지를 읽는 습관이 핵심
상세 노트 보기arrow_forward

key

핵심 용어 모음

프론트엔드

사용자가 보고 클릭하는 화면. React, Next.js 등으로 제작

백엔드

비즈니스 로직 처리, 인증, 데이터 가공. Node.js, Python 등으로 제작

데이터베이스

데이터를 영구 저장하고 조회. PostgreSQL, Supabase 등 사용

개발 (dev)

내 컴퓨터. 자유롭게 실험하고 수정하는 환경

스테이징 (staging)

배포 전 테스트 환경. 프로덕션과 동일한 조건에서 검증

프로덕션 (prod)

실제 사용자가 접근하는 환경. 안정성이 최우선

1. API 키는 .env 파일에

코드에 직접 쓰지 않기. 실수로 공개되면 악용 가능

2. .gitignore에 .env 추가

Git에 절대 올리지 않기. 한 번 올라가면 히스토리에 영구 기록

3. 실수로 올렸으면 키 즉시 재발급

Git 히스토리에 남아있으므로 삭제만으론 부족. 키 자체를 교체해야 안전

404 Not Found

요청한 페이지/API가 없음. URL 오타, 파일 누락이 원인. 경로를 확인하세요

500 Internal Server Error

서버 코드에 버그. null 참조, DB 연결 실패 등이 원인. 서버 로그를 확인하세요

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 코스 시작하기