www.aiacademykim.co.kr
T1 웹 작동 기초 · 05강 · 비개발자 사고법 시즌1

🍲 리액트는 국밥집 주방이다

코드는 AI가 짠다. 나는 국밥집 사장이다 — 육수·조리법·옵션만 알면 콕 집어 시킨다.

왜 “국밥집 주방”으로 배우나

손님 올 때마다 육수를 새로 우리는 가게 vs 새벽에 한 냄비 우려두고 떠내는 가게.

🎬 콜드오픈 그 장면 — 창업주가 ‘손님마다 새로 우리던 육수’를 새벽 ‘한 솥’으로 바꾼 결정.

🎬 0부 · Shorts
🐌 매번 새로 우림 = 느리고 실수↑ ⚡ 우려놓고 떠냄 = 빠르고 일정
📖 결과 읽기
이 페이지가 빠르고 일정하면 = 미리 준비해둔 재료(육수·조리법)를 떠다 쓰는 구조다.
🐌 옛날 가게 · 시간 0초 · 실수 0 ⚡ 리액트 주방 · 시간 0초 · 실수 0

🐌 옛날 가게 (HTML/CSS/JS만)

손님마다 육수를 처음부터 새로 우림 — 순차로 하나씩, 답답하게.

🍳
육수 준비 안 됨 — 주문마다 처음부터

⚡ 리액트 주방

새벽에 한 냄비 우려둠 — 주문 들어오면 그릇이 척 즉시.

🍲
🍲 육수 준비 완료 — 떠다 내기만
옛날 가게 2분 30초·실수 2  /  리액트 주방 10초·실수 0 ※ 시각 강조용 예시 수치입니다(실제 벤치마크 아님). 미리 준비해 떠다 쓰면 반복 작업이 줄어든다는 ‘구조적 이점’을 보여주려는 것.

리액트 한 줄 정의 — “한 번 우려서 계속 떠낸다”

손님은 결과만 말한다 — “국밥 하나요”. 과정(불 세기·우리는 시간)은 주방이 알아서.

🎬 1부 · Shorts
🍲 한 번 우림(준비) → 계속 떠냄(반복) 🗣️ 결과만 말함 = 선언형
📖 결과 읽기
이 페이지는 준비된 재료를 조립해 ‘결과만’ 보여주는구나 — 과정은 안 보인다.
🍲

육수 준비됨 — 떠내기만 하면 됨

⬆️ 아래 주문 말풍선을 눌러보세요

❌ 만약 명령형이면…

결과가 아니라 ‘과정’을 일일이 지시하는 옛날 방식

  • 1) 불 켜기
  • 2) 사골 넣기
  • 3) 3시간 끓이기
  • 4) 간 보기
  • 5) 그릇에 담기

컴포넌트 = 국밥 한 그릇의 표준 조리법

조리법(컴포넌트) 한 줄만 고치면 → 9그릇이 한꺼번에 바뀐다.

🎬 콜드오픈 그 장면 — 아버지가 아들에게 전수한 ‘국밥 차려내는 조리법’이 바로 이것.

🎬 2부 · Shorts ★핵심
📋 조리법 = 컴포넌트 🔁 한 곳 고치면 전부 바뀜
📖 결과 읽기
화면에 똑같은 모양이 반복되면 = 같은 조리법(컴포넌트)을 재사용한 거다.
📋 조리법(컴포넌트) 1개 = 배식대 9그릇을 한 손에

📋 이게 조리법입니다 — GukbapBowl

국밥 그릇 조리법 (component)

🍲
🍚
🌿
국밥 그릇
🥣 그릇 색
🔘 그릇 모양
🌿 고명 표시

이 조리법 = 작은 조리법들의 조립 (마우스 올려보기)

🍲 육수 담기 🍚 밥 담기 🌿 고명 얹기

┈┈ 이 조리법 1개 ┈┈▶ 저 9그릇 (전부 같은 조리법)

조리법은 작은 조리법들의 조립 — 칩에 마우스를 올리면 그 부분이 빛나요.

🖥 실제 화면에선 이렇게 — 가상 배달의민족

국밥집 비유에서 본 조리법(=컴포넌트)이 진짜 웹화면에선 이렇게 보여요. 아래 메뉴 카드 6개는 따로따로 만든 게 아니라, 카드 조리법 1개를 6번 찍어낸 겁니다.

📋 카드 조리법(컴포넌트) 한 곳만 고치기
아래 스위치 하나만 눌러 보세요. 조리법 한 줄만 바꿔도 메뉴 카드 6개가 동시에 똑같이 바뀝니다.
① 카드 색  흰색 → 연베이지
② '인기' 배지  끔 → 켬
③ 별점 표시  끔 → 켬
④ 할인가 빨간 표시  끔 → 켬
🛵 배달의민족
🍲
돼지국밥 명가
⭐ 4.8 (2,317) · 30~40분 · 배달비 1,000원
🔩 똑같이 생긴 카드가 반복되면 = 컴포넌트(조리법) 하나의 재사용. 한 곳만 고치면 전부 바뀐다.

Props = 그릇별 주문 옵션 / State = 냄비 속 육수

조리법은 그대로. 그릇별 옵션(props)만 다르게 내려주면 다른 국밥. 육수(state)는 따로 살아있다.

🎬 콜드오픈 그 장면 — 아내의 ‘테이블 양념 세트’가 옵션(props), 매일 끓이는 ‘육수’가 state.

🎬 3부 · Shorts
🥢 옵션 = Props 🍲 육수 = State ⬇️ 주방(위)→그릇(아래) 단방향
📖 결과 읽기
그릇마다 내용이 다르면 = 옵션(props). 버튼 눌러 숫자·재고가 바뀌면 = 육수(state)를 새로 간 맞춘 것.
같은 조리법 + 다른 옵션(props) = 다른 국밥  ·  육수(state)는 옵션이 아니라 살아있는 원천

🥢 이 그릇에 뭘 줄까요? (props)

props = 조리법에 그릇별로 내려주는 옵션(고기 양·파·밥·다대기).

주방 (위)⬇️그릇 (아래) — 정보는 위→아래로만

옵션(props)은 주방에서 정해 내려줘요. 손님이 받은 뒤엔 못 바꿔요.

결과 그릇 1개 (조리법 모양·테두리는 고정)

🍲
🥩
🍚
기본 국밥

🍲 육수 냄비 (state)

🍲
오늘 육수 = 보통

이건 옵션이 아니라 따로 살아있는 육수예요. 바꾸면 어떻게 되는지는 4부에서 봅니다.

⚡ 빠른 주문 — 칩을 누르면 옵션(props) 4개가 한 번에 주입됩니다

🖥 실제 화면에선 이렇게 — 가상 쇼핑몰

국밥집에서 "옵션은 주방이 정하고 손님이 못 바꾼다, 그릇 안 육수는 계속 변한다"고 했죠. 진짜 배달앱이 정확히 그래요 — 아래 화면을 직접 눌러 보세요.

🥢 다른 내용 = props 🛒 변하는 숫자 = state
📍 우리 동네 맛집 지백이네 배달 🛒 0 state
오늘의 메뉴 — 카드 모양은 똑같고, 안 내용만 달라요
🔒 주방(서버)이 정한 값이라 손님 화면에서는 못 바꿔요. props는 위 → 아래로 한 방향, 고정이에요.
✅ 다른 내용 = props(주황·고정), 변하는 숫자 = state(청록·살아있음).

리렌더링 = 육수 간을 다시 맞추면 그 뒤 그릇이 다 바뀐다

육수(state) 간만 다시 맞추면 → 그 육수를 쓰는 화면은 주방이 알아서 다시 차린다.

🎬 콜드오픈 그 장면 — 부산 2호점, 육수에 ‘소금 한 스푼’ 넣자 그 솥 모든 그릇이 자동으로.

🎬 4부 · Shorts
🍲 육수 = State 🔥 간 다시 맞춤 = 리렌더링 ✨ 바뀐 그릇만 깜빡 = diff
📖 결과 읽기
화면 전체가 아니라 일부만 깜빡 바뀌면 = 주방이 바뀐 그릇만 골라 다시 낸 것(리렌더).

🍲 육수 냄비 (state 값 상자)

🍲
오늘 판매 = 0그릇
육수 농도 = 보통
① 육수(state) 바뀜
   ⬇
② 주방이 화면 다시 차림(리렌더)
   ⬇
③ 바뀐 그릇만 깜빡(diff)
0그릇오늘 판매
🔥 오늘 인기 국밥집 육수 : 보통
숫자를 내가 손으로 안 고쳤어요. 육수(값)만 바꿨더니 화면이 알아서 따라왔죠.

🧯 여기는 어려우면 그냥 넘어가도 돼요

꼭 챙길 한 가지 : 육수(값)만 바꾸면, 화면은 리액트가 알아서 다시 차려줘요. 내가 화면을 손으로 안 고쳐도 됩니다. 딱 이거 하나면 충분해요.

아래는 ‘조금 더’ 궁금한 분만 보세요 — 안 봐도 수업엔 전혀 지장 없어요.

🍲 비유 : 못 무르는 국밥

🍲 ➡️ 🙅

이미 손님상에 나간 국밥은 못 무른다 — 국밥 비유는 딱 여기까지예요.

⚙️ 실제 : 바뀐 부분만 살짝

🍲🍲🍲 → ✨ → 🍲🍜🍲

리액트는 화면을 통째로 새로 안 그리고 바뀐 부분만 콕 집어 바꿔요. 그래서 빨라요. (어떻게 그렇게 하는지는 안 외워도 OK — 리액트가 알아서 해요.)

🖥 실제 화면에선 이렇게 — 가상 SNS·쇼핑

국밥집에서 육수 간만 다시 맞추면 그 육수 쓰는 그릇만 다시 차려지듯, 웹화면도 값(state)만 바꾸면 그 부분만 알아서 다시 그려집니다. 버튼을 눌러 보세요.

맛집그램 🔍 ✉️
🧑‍🍳
국밥장인_지백
📍 우리동네 국밥집
🍚
❤️ 좋아요 128
오늘의 뜨끈한 국밥 🔥 새벽부터 우려낸 육수 한 그릇. #국밥 #맛집 #든든
🍜
든든 국밥 밀키트
재고 12개 남음
🛒 장바구니
0
내가 마지막에 바꾼 값 : 좋아요 장바구니 재고
아직 안 누름 — 버튼을 눌러 보세요
못 박기 : 값(state)만 바꾸면 → 화면의 그 부분만 알아서 다시 그려진다(리렌더). 내가 화면 글자를 손으로 안 고쳐도 된다.

주방 구조 읽기 (코드 없이 종합)

완성 화면을 주방 구조로 읽기 — 조리법 경계 긋고, 증상이 옵션 문제인지 육수 문제인지 가린다.

🎬 5부 · Shorts
🔲 조리법 경계 = 컴포넌트 🥢 증상 진단 = props / 🍲 state
📖 결과 읽기
증상을 주방 부위로 말할 수 있으면 = AI에게 콕 집어 시킬 수 있다.
📋 Header ×1 🍲 새벽 국밥집 오늘 판매 42그릇
📋 GukbapBowl
🍲
국밥
고기 보통 · 파 O
9,000원
📋 GukbapBowl
🍲
곱빼기 국밥
고기 곱빼기 · 파 O
11,000원
📋 GukbapBowl
🍲
얼큰이 국밥
고기 보통 · 다대기
9,500원
❤️ 좋아요 128 · 🛒 담기

반복되는 국밥 카드 3개 = 같은 조리법(GukbapBowl) 재사용. 헤더는 따로 1개.

🩺 증상 진단 미니 퀴즈

1 / 3 문항

진단 완료!

3 / 3

이제 AI한테 이렇게 말할 수 있어요 →

📋 콕 집어 시키는 진단 문장
이 페이지에서 반복되는 국밥 카드는 조리법(컴포넌트) 하나로 묶여 있는지 봐줘. 좋아요 숫자가 안 올라가는 건 그 값(state)이 안 바뀌어서 화면이 다시 안 차려지는 것 같아 — 거기를 고쳐줘.

주방 용어 사전 (겁먹지 않기)

무서운 단어 펼쳐보기 — 결국 다 ‘냄비 새로 들이고 관리하는 도구’라는 느낌만.

🎬 6부 · Shorts
🃏 카드 클릭 = 뒤집기 느낌만 챙기세요 — 문법은 AI가 짭니다
📖 결과 읽기
AI가 useState·useEffect를 말해도 ‘냄비 들이고 뒷일 맡기는 도구구나’ 하면 충분 — 문법은 AI가 짠다.
🪝
Hook
눌러서 뒤집기

🪝 냄비 거는 고리

냄비·도구를 주방에 걸어두는 고리. 필요한 도구를 리액트에 걸어 쓰는 장치라는 느낌만.

느낌만 챙기세요

🍲
useState
눌러서 뒤집기

🍲 새 냄비 들이기

새 냄비(육수=state) 하나 들여놓기. ‘이 값을 살아있게 관리할게요’ 선언. 4부의 육수가 이거예요.

느낌만 챙기세요

📝
useEffect
눌러서 뒤집기

📝 ‘끝나면 저것도 해줘’ 메모

‘이 일 끝나면 저것도 해줘’ 메모. 육수 바뀌면 단골에게 문자 보내기처럼, 뭔가 바뀐 뒤 따라붙는 뒷일을 맡기는 도구라는 느낌만.

느낌만 챙기세요

🧂
라이브러리 vs 프레임워크
눌러서 뒤집기

🧂 만능 육수 베이스 vs 가게 통째

리액트=만능 육수 베이스(라이브러리) — 내가 필요할 때 떠다 씀. 프레임워크=가게 통째 패키지 — 동선·메뉴판까지 다 정해줌. 리액트는 앞쪽 느낌.

※ 정확한 경계는 강의 범위 밖 — 오늘은 ‘리액트=요리 도구(라이브러리) 느낌’까지만.

🤔
언제 과한가
눌러서 뒤집기

🛖 포장마차엔 과해요

메뉴 한 줄짜리 포장마차(작은 정적 한 장 페이지)엔 국밥집 주방이 과해요. 자주 바뀌고 복잡한 화면일수록 리액트가 빛나요.

느낌만 챙기세요

🛖 언제 국밥집까지 안 차려도 되나

버튼을 눌러 상황 예시를 바꿔보세요.

🛖

포장마차로 충분

작은 한 장 페이지 — 거의 안 바뀌고 단순함. 리액트(국밥집 주방)는 오히려 과합니다.

예 : 회사 소개 한 장, 행사 안내 포스터 페이지, 메뉴판 한 장

🍲

국밥집 주방 필요

자주 바뀌고 복잡한 화면 — 살아있는 값(state)·반복 카드(컴포넌트)가 많을수록 리액트가 빛납니다.

예 : 주문·장바구니 쇼핑몰, 실시간 판매 대시보드, 좋아요·댓글 많은 피드

🖥 실제 화면에선 이렇게 — 라이브 미니 데모

무서운 단어들, 실제론 이렇게 단순하게 작동해요. 문법은 AI가 짜고, 우리는 '아 이게 그 도구구나' 느낌만 챙기면 됩니다.

🍚 국밥 주문 담기 useState + useEffect
🍲 0그릇
👉 useState = 이 숫자를 기억하는 '냄비'를 하나 들인 것. 버튼 눌러도 값을 까먹지 않고 계속 기억하죠.
useEffect 수량이 바뀌면 자동으로 따라붙는 뒷일
합계 (그릇당 8,000원) ₩0
📨 주방 자동 알림 로그
  • 아직 주문이 없어요. '국밥 담기'를 눌러보세요.
👉 useEffect = 수량이 바뀐 뒤 따라붙는 뒷일(합계 갱신·주방 알림)을 자동 처리. 내가 일일이 안 시켜도 알아서 따라와요.
🧰 도구 고르기 라이브러리 vs 프레임워크
🟢 useState = 값 기억 · useEffect = 바뀌면 자동 뒷일 · 라이브러리 = 도구 골라쓰기. 느낌만 챙기면 끝.
외부강사 김지백 · AI 교육자료
← 강의 목록 🏠 홈