초보자를 위한 따라 하기 교안

디자인을 실제 웹 프로젝트로 완성하는 AI 코딩 실전 교안

디자인 시안은 있는데 어디서부터 시작해야 할지 막막한가요? 이 교안은 AI 코딩에 꼭 필요한 Markdown 문법과 핵심 개념을 먼저 익힙니다. 개념을 이해한 뒤 이어지는 설계·도구·배포 교안에서 실제 프로젝트를 완성합니다.

기준일 2026년 7월 20일대상: 처음 AI 코딩 프로젝트를 만드는 학습자기본 기술: HTML · CSS · JavaScript
준비물부터 시작하기

시작 전

먼저 준비할 것

코딩을 먼저 시작하지 마세요. 아래 네 가지가 있어야 AI가 디자인을 추측하지 않고 실제 자료를 기준으로 작업할 수 있습니다.

1. 디자인 시안

Figma 링크, 화면 이미지 또는 디자인 PDF처럼 실제로 비교할 수 있는 자료입니다.

2. 실제 에셋

로고, 사진, 아이콘, 폰트 파일입니다. 없는 파일이나 URL을 AI가 만들게 두지 않습니다.

3. 프로젝트 폴더

새 폴더 또는 기존 코드 폴더입니다. 기존 프로젝트라면 덮어쓰기 전에 구조부터 확인합니다.

4. AI 코딩 도구

Antigravity IDE, Cursor, Codex, Claude Code 중 실제로 사용할 도구를 준비합니다.

이 교안의 사용법

위에서부터 순서대로 읽고, 코드 블록의 복사 버튼을 누른 뒤 대괄호로 표시된 부분을 내 프로젝트 정보로 바꾸세요. 개념과 Markdown을 익힌 뒤에는 이어지는 설계·도구·배포 교안에서 실습합니다.

개념부터 제대로 배우기

먼저 59개 수업으로 판단 기준을 익히세요

아래 과정은 원문의 내용을 줄여 적은 요약본이 아닙니다. 처음 나오는 용어는 쉬운 말로 설명하고, 왜 필요한지와 실제 적용 순서, 자주 생기는 실수, 다음 장으로 넘어가기 전 확인 질문까지 함께 제공합니다. 개념 과정을 읽은 뒤 이어지는 7단계 실습에서 문서와 요청문을 직접 수정하고 복사하세요.

원문 1~7

1부. PRD와 Markdown

이 장의 목표 AI에게 일을 맡기기 전에 무엇을 어떤 문서로 정리해야 하는지 이해합니다.

원문 1

1. 이 교안의 구성

이 교안은 용어 사전이 아니라, 빈 프로젝트에서 문서를 만들고 AI에게 작업을 나누어 요청한 뒤 브라우저에서 결과를 검수하는 순서표입니다. 앞부분은 판단 기준을 배우고, 뒷부분은 바로 복사할 수 있는 문서와 요청문을 완성하도록 구성했습니다.

왜 필요한가

  • 순서를 모르고 바로 코딩을 요청하면 AI가 비어 있는 조건을 임의로 채웁니다.
  • 문서 작성과 구현, 검수를 한 흐름으로 익혀야 다른 프로젝트에도 같은 방법을 재사용할 수 있습니다.

이렇게 적용하세요

  1. 1~7부에서 문서와 도구의 역할을 이해합니다.
  2. 8~11부에서 PRD와 프로젝트 지침을 직접 만듭니다.
  3. 12~13부의 요청문과 확인표로 구현과 검수를 반복합니다.

이런 실수는 피하세요

  • 처음부터 모든 템플릿을 복사한 뒤 내용은 읽지 않는 것
  • 한 번의 요청으로 전체 사이트 완성을 맡기는 것
다음으로 넘어가기 전 확인

지금 내가 배우려는 것은 문서 작성만이 아니라 구현과 검수까지 이어지는 전체 작업 순서라고 설명할 수 있나요?

원문 2

2. 프로젝트의 전제

이 교안은 디자인 시안과 실제 에셋이 있고, 이를 HTML·CSS·JavaScript 프로젝트로 옮기는 상황을 기준으로 합니다. React나 Vue가 필요한 프로젝트라면 문서 구조는 그대로 사용하되 개발 조건만 현재 저장소의 기술 스택에 맞게 바꿉니다.

왜 필요한가

  • 같은 디자인이라도 기술 스택과 기존 코드 구조에 따라 올바른 구현 방법이 달라집니다.
  • 없는 이미지·폰트·API를 AI가 만들어내지 않도록 입력 자료의 범위를 먼저 확정해야 합니다.

이렇게 적용하세요

  1. 기존 프로젝트인지 새 프로젝트인지 구분합니다.
  2. package.json과 폴더 구조에서 실제 기술 스택을 확인합니다.
  3. Figma 링크, 화면 이미지, 로고·사진·아이콘·폰트 파일의 준비 여부를 적습니다.

이런 실수는 피하세요

  • 바닐라 프로젝트에 React 설치를 당연하게 요구하는 것
  • 없는 에셋을 비슷한 외부 URL로 대체하도록 허용하는 것
다음으로 넘어가기 전 확인

현재 프로젝트의 기술 스택과 실제로 제공된 디자인 자료를 한 문단으로 설명할 수 있나요?

원문 3

3. `.md`란 무엇인가

`.md`는 Markdown 문법으로 작성한 일반 텍스트 파일입니다. `#`은 제목, `-`는 목록, 백틱은 코드처럼 사람이 읽을 구조를 간단한 기호로 표시하며 AI도 이 구조를 이용해 지시의 우선순위를 파악합니다.

왜 필요한가

  • 워드프로세서 없이도 코드 저장소 안에서 문서를 함께 관리할 수 있습니다.
  • 제목과 목록을 나누면 긴 요구사항에서 기능, 금지사항, 완료 조건이 서로 섞이지 않습니다.

이렇게 적용하세요

  1. 파일 이름을 `PRD.md`처럼 정확히 저장합니다.
  2. 큰 제목은 하나의 `#`, 하위 항목은 `##`와 `###`로 단계화합니다.
  3. 명령어와 파일명은 백틱으로, 긴 예시는 코드 블록으로 구분합니다.

이런 실수는 피하세요

  • 제목 단계 없이 모든 문장을 긴 문단 하나에 쓰는 것
  • 도구가 인식하는 `AGENTS.md` 같은 대문자 파일명을 임의로 소문자로 바꾸는 것
나쁜 요청

메인 만들고 반응형도 하고 예쁘게 해줘. 오류도 없게 해줘.

좋은 요청

## 홈 화면 - 목적: 사용자가 주요 도구를 선택한다. - 모바일: 360px에서 카드가 한 열로 배치된다. - 완료 조건: 가로 스크롤이 없고 모든 링크가 동작한다.

무엇이 다른가요? 좋은 예는 화면 목적, 반응형 기준, 검증 가능한 완료 조건이 제목과 목록으로 분리되어 있습니다.

다음으로 넘어가기 전 확인

제목·목록·코드 블록을 사용해 요구사항과 예시를 눈으로 구분할 수 있나요?

원문 4

4. YAML Frontmatter란 무엇인가

YAML Frontmatter는 Markdown 파일 맨 위의 `---` 사이에 이름, 설명, 적용 조건 같은 문서 정보를 적는 영역입니다. 모든 Markdown 파일에 필요한 것은 아니며 Skill처럼 도구가 메타데이터를 읽는 형식에서 주로 사용합니다.

왜 필요한가

  • 도구가 문서 본문을 읽기 전에 이 문서의 이름과 사용 목적을 빠르게 판단할 수 있습니다.
  • 정해진 키를 지키면 여러 Skill을 구분하고 알맞은 상황에 불러오기 쉬워집니다.

이렇게 적용하세요

  1. 사용하는 도구의 공식 형식에서 frontmatter 필요 여부를 확인합니다.
  2. 첫 줄부터 `---`로 시작하고 요구된 키만 작성합니다.
  3. 닫는 `---` 다음 줄부터 실제 지침 본문을 작성합니다.

이런 실수는 피하세요

  • 일반 PRD에도 이유 없이 frontmatter를 붙이는 것
  • 지원 여부를 확인하지 않고 임의의 키를 만들어 넣는 것
다음으로 넘어가기 전 확인

이 문서에 frontmatter가 정말 필요한지, 필요하다면 누가 어떤 키를 읽는지 설명할 수 있나요?

원문 5

5. PRD란 무엇인가

PRD는 Product Requirements Document의 약자로, 무엇을 왜 만들고 어디까지 완성할지를 정하는 제품 요구사항 문서입니다. 화면을 그리는 설명서가 아니라 사용자 문제, 기능 범위, 상태, 데이터, 기술 조건, 완료 기준을 함께 고정하는 합의서입니다.

왜 필요한가

  • 사람과 AI가 같은 목표와 범위를 기준으로 판단하게 합니다.
  • 구현 중 새 아이디어가 생겨도 이번 작업에 포함할지 제외할지 결정할 근거가 생깁니다.

이렇게 적용하세요

  1. 사용자와 해결할 문제를 먼저 씁니다.
  2. 포함 기능과 제외 범위를 분리합니다.
  3. 화면별 목적·흐름·상태·데이터를 적고 마지막에 검증 가능한 완료 조건을 둡니다.

이런 실수는 피하세요

  • 색상과 레이아웃만 적고 제품 목적을 생략하는 것
  • 완료 조건을 ‘전체적으로 잘 동작한다’처럼 측정할 수 없게 쓰는 것
다음으로 넘어가기 전 확인

내 PRD만 읽어도 누가 어떤 문제를 해결하기 위해 무엇을 만드는지 알 수 있나요?

원문 6

6. PRD가 없을 때 발생하는 문제

PRD가 없으면 화면은 만들어져도 왜 필요한 화면인지, 어떤 행동이 성공인지, 어디까지 구현해야 하는지가 작업자마다 달라집니다. AI는 빈 조건을 질문하거나 멈추는 대신 흔한 웹 패턴으로 채우는 경우가 많아 결과가 그럴듯하지만 요구와 멀어질 수 있습니다.

왜 필요한가

  • 목적이 불분명하면 디자인의 강조 순서와 기능 우선순위가 뒤섞입니다.
  • 수정 요청마다 기준이 바뀌어 같은 영역을 여러 번 다시 만들게 됩니다.

이렇게 적용하세요

  1. 현재 모호한 요구를 사용자·행동·결과 문장으로 바꿉니다.
  2. 결정되지 않은 내용은 확정 사실과 분리해 질문 목록으로 둡니다.
  3. 새 요구가 생기면 코드를 고치기 전에 PRD 범위부터 갱신합니다.

이런 실수는 피하세요

  • AI가 만든 첫 결과를 요구사항으로 역추적하는 것
  • 서로 충돌하는 요청을 PRD에 그대로 함께 두는 것
나쁜 요청

쇼핑몰 홈페이지를 트렌디하게 만들어 주세요.

좋은 요청

모바일 사용자가 3분 안에 상품을 찾고 장바구니에 담는 쇼핑몰을 만듭니다. 이번 범위는 홈·검색·상품 상세·장바구니이며 결제 연동은 제외합니다.

무엇이 다른가요? 좋은 예는 사용자, 성공 행동, 화면 범위, 제외 기능을 한 번에 고정합니다.

다음으로 넘어가기 전 확인

현재 프로젝트에서 의견이 갈렸을 때 돌아가 확인할 기준 문서가 있나요?

원문 7

7. Figma Make용 PRD와 AI 코딩 도구용 PRD의 차이

Figma Make용 문서는 화면 생성과 시각적 방향을 빠르게 전달하는 데 초점이 있고, AI 코딩 도구용 PRD는 실제 저장소에서 유지될 파일 구조, 데이터, 상태, 접근성, 테스트, 완료 조건까지 요구합니다. 같은 제품 설명을 공유해도 실행 환경에 맞는 정보 밀도가 다릅니다.

왜 필요한가

  • 화면 시안이 좋아 보여도 실제 코드의 라우팅, 저장, 오류 처리, 반응형 조건은 자동으로 확정되지 않습니다.
  • 코딩 도구는 기존 컴포넌트와 패키지를 보존해야 하므로 저장소 규칙이 필요합니다.

이렇게 적용하세요

  1. 공통 제품 목표와 사용자 흐름은 두 문서에 동일하게 둡니다.
  2. 코딩용 PRD에는 기술 스택, 파일 규칙, 데이터와 상태, 검증 명령을 추가합니다.
  3. Figma 결과는 참고 자료로 취급하고 실제 프로젝트 규칙에 맞게 다시 구현하도록 명시합니다.

이런 실수는 피하세요

  • Figma 생성 프롬프트를 그대로 개발 PRD로 사용하는 것
  • 시각 결과만 보고 키보드 사용·로딩·오류 상태를 완료로 간주하는 것
다음으로 넘어가기 전 확인

현재 문서가 화면 아이디어만 설명하는지, 실제 구현과 검수까지 지시하는지 구분할 수 있나요?

원문 8~13

2부. AI 코딩 도구의 문서 구조

이 장의 목표 제품 요구, 프로젝트 규칙, 반복 절차, 현재 상태를 서로 다른 문서에 올바르게 배치합니다.

원문 8

8. PRD 하나만으로 부족한 이유

PRD는 제품이 무엇이어야 하는지를 설명하지만, 도구가 매 작업마다 지켜야 할 코딩 규칙이나 현재 진행 상황까지 모두 담기에는 역할이 너무 넓습니다. 제품 요구, 실행 규칙, 반복 작업법, 진행 기록을 분리하면 각 문서를 언제 갱신해야 하는지가 분명해집니다.

왜 필요한가

  • 자주 바뀌는 진행 상황 때문에 안정적인 제품 요구가 계속 흔들리는 것을 막습니다.
  • 도구별로 읽는 규칙 파일이 달라도 PRD는 하나의 제품 기준으로 공유할 수 있습니다.

이렇게 적용하세요

  1. PRD에는 목적·범위·기능·상태·완료 조건을 둡니다.
  2. 도구 규칙 파일에는 코드 스타일과 작업 원칙을 둡니다.
  3. 반복 절차는 Skill, 현재 진척은 `PROJECT_CONTEXT.md`에 둡니다.

이런 실수는 피하세요

  • 모든 내용을 수천 줄짜리 PRD 하나에 계속 추가하는 것
  • 같은 규칙을 여러 파일에 서로 다른 문장으로 중복하는 것
다음으로 넘어가기 전 확인

새로 적을 문장이 제품 요구인지, 작업 규칙인지, 반복 절차인지, 현재 상태인지 구분할 수 있나요?

원문 9

9. Antigravity 프로젝트 문서

Antigravity에서는 Workspace Rule과 `.agents/rules/` 아래의 규칙 문서로 프로젝트 전반의 작업 원칙을 전달합니다. 실제 지원 위치와 형식은 설치 버전에 따라 달라질 수 있으므로 도구 화면과 공식 안내를 확인한 뒤 현재 프로젝트에서 읽히는 위치를 사용합니다.

왜 필요한가

  • 대화가 바뀌어도 파일명, 기술 스택, 에셋 사용, 검증 방식 같은 기준을 반복해서 전달할 수 있습니다.
  • 프로젝트 전체 규칙과 특정 작업 규칙을 분리해 필요한 범위만 적용할 수 있습니다.

이렇게 적용하세요

  1. 현재 Workspace에서 규칙을 읽는 경로를 확인합니다.
  2. PRD 우선, 기존 코드 보존, 실제 에셋 사용, 검증 결과 보고 규칙을 작성합니다.
  3. 작업 후 규칙이 실제 응답과 변경에 반영됐는지 확인합니다.

이런 실수는 피하세요

  • 확인하지 않은 경로에 규칙 파일을 만들고 적용됐다고 믿는 것
  • 제품 요구를 규칙 파일에 복사해 두 문서를 함께 수정해야 하게 만드는 것
다음으로 넘어가기 전 확인

Antigravity가 실제로 읽는 규칙 위치와 그 안에 둘 내용의 범위를 확인했나요?

원문 10

10. Codex 프로젝트 문서

Codex에서는 보통 `AGENTS.md`에 저장소 작업 규칙을 기록합니다. 이 파일은 해당 디렉터리와 하위 범위에서 코드 수정 방식, 명명 규칙, 테스트 명령, 금지 사항을 알려 주는 작업 계약으로 사용합니다.

왜 필요한가

  • 매 요청마다 같은 규칙을 붙이지 않아도 저장소 안에서 일관된 변경을 유도합니다.
  • 하위 폴더에 더 구체적인 `AGENTS.md`가 있으면 영역별 규칙을 분리할 수 있습니다.

이렇게 적용하세요

  1. 저장소 루트와 작업 디렉터리의 `AGENTS.md`를 먼저 찾습니다.
  2. 기술 스택, 기존 코드 재사용, 명명 규칙, 검증 명령을 실제 저장소와 맞게 씁니다.
  3. 규칙과 현실이 달라졌다면 코드와 문서 중 무엇을 고칠지 먼저 결정합니다.

이런 실수는 피하세요

  • 다른 프로젝트의 `AGENTS.md`를 기술 스택 확인 없이 복사하는 것
  • 실행할 수 없는 테스트 명령을 완료 조건에 넣는 것
다음으로 넘어가기 전 확인

새 작업자가 `AGENTS.md`만 읽고 어떤 파일을 어떻게 수정하고 검증해야 하는지 알 수 있나요?

원문 11

11. Claude Code 프로젝트 문서

Claude Code에서는 `CLAUDE.md`가 프로젝트 지침의 대표 파일입니다. 공통 규칙이 이미 `AGENTS.md`에 있다면 내용을 다시 복사하기보다 참조 관계를 명확히 하고 Claude Code에서만 필요한 계획·검증 규칙을 덧붙입니다.

왜 필요한가

  • 도구마다 같은 기준을 다른 문장으로 유지하다 생기는 충돌을 줄입니다.
  • Claude Code 전용 명령이나 작업 흐름만 별도로 관리할 수 있습니다.

이렇게 적용하세요

  1. 공통 규칙과 Claude 전용 규칙을 나눕니다.
  2. 참조 문서가 실제 환경에서 읽히는지 확인합니다.
  3. 도구가 지원하지 않는 문법이나 명령을 사실처럼 적지 않습니다.

이런 실수는 피하세요

  • `AGENTS.md` 전체를 복제한 뒤 한쪽만 수정하는 것
  • Claude Code가 자동으로 모든 관련 문서를 읽을 것이라고 가정하는 것
다음으로 넘어가기 전 확인

공통 규칙의 원본이 어디인지, Claude Code만의 추가 규칙이 무엇인지 구분되어 있나요?

원문 12

12. 세 도구를 함께 지원하는 구조

여러 AI 코딩 도구를 함께 쓸 때는 PRD를 제품 요구의 단일 원본으로 두고, 공통 개발 규칙도 가능한 한 한 문서에서 관리합니다. 도구별 파일에는 그 도구가 읽는 방법과 필요한 차이만 남겨 중복을 최소화합니다.

왜 필요한가

  • 도구를 바꿀 때마다 제품 목표가 달라지는 것을 막습니다.
  • 규칙을 수정할 때 세 파일을 모두 찾아 고치는 유지보수 비용을 줄입니다.

이렇게 적용하세요

  1. `PRD.md`를 모든 도구가 공유하는 제품 기준으로 정합니다.
  2. 공통 코딩 규칙의 기준 파일을 하나 선택합니다.
  3. 도구별 파일에는 참조 방법과 전용 규칙만 작성하고 서로 충돌하는지 확인합니다.

이런 실수는 피하세요

  • 각 도구용 PRD를 따로 만들어 내용이 달라지는 것
  • 어떤 문서가 최우선인지 쓰지 않아 충돌 시 임의 판단하게 하는 것
다음으로 넘어가기 전 확인

세 도구가 서로 다른 답을 낼 때 무엇을 최우선 기준으로 확인할지 정해져 있나요?

원문 13

13. `SKILL.md`는 작업 일지가 아니다

`SKILL.md`는 특정 종류의 작업을 반복해서 수행하는 절차서입니다. 오늘 무엇을 했는지 기록하는 일지가 아니라, 다음 프로젝트에서도 같은 품질로 재현할 수 있는 입력 조건·순서·검증·금지사항을 담습니다.

왜 필요한가

  • 반복 작업의 누락을 줄이고 작업자나 도구가 바뀌어도 같은 순서를 지킬 수 있습니다.
  • 현재 프로젝트의 변하는 상태와 안정적인 작업 절차를 분리할 수 있습니다.

이렇게 적용하세요

  1. Skill이 언제 사용되는지 목표와 적용 조건을 씁니다.
  2. 확인→계획→구현→검증 순서를 행동 문장으로 적습니다.
  3. 현재 완료 화면이나 남은 버그는 `PROJECT_CONTEXT.md`에 기록합니다.

이런 실수는 피하세요

  • ‘홈 완료, 상세 진행 중’ 같은 상태 기록을 Skill에 넣는 것
  • 특정 프로젝트 파일명만 가득해 다른 작업에 재사용할 수 없게 만드는 것
나쁜 요청

오늘 홈 화면을 만들었고 내일 상세 화면을 만들 예정입니다.

좋은 요청

1. 기존 디자인 토큰과 공통 컴포넌트를 확인한다. 2. 화면 구조를 시맨틱 HTML로 구현한다. 3. 360px·768px·1280px에서 비교 검수한다.

무엇이 다른가요? 나쁜 예는 현재 상태이고, 좋은 예는 반복 가능한 작업 절차입니다.

다음으로 넘어가기 전 확인

이 Skill을 한 달 뒤 다른 프로젝트에 적용해도 작업 순서로 사용할 수 있나요?

원문 14~15

3부. Plugin, MCP, Skill과 라이브러리

이 장의 목표 비슷해 보이는 도구 용어를 구분하고 프로젝트에 꼭 필요한 연결만 선택합니다.

원문 14

14. 용어 구분

Plugin은 여러 기능을 묶어 도구에 추가하는 확장 묶음, MCP는 AI와 외부 서비스가 정보를 주고받는 연결 방식, Skill은 반복 작업 지침, Workflow는 여러 단계를 이어 실행하는 흐름, Library는 프로젝트 코드가 직접 사용하는 기능 모음입니다.

왜 필요한가

  • 용어를 섞으면 연결 설정과 프로젝트 의존성을 구분하지 못해 불필요한 설치가 늘어납니다.
  • 무엇이 AI 도구 쪽 기능이고 무엇이 실제 배포 코드에 포함되는지 알아야 성능과 유지보수 영향을 판단할 수 있습니다.

이렇게 적용하세요

  1. 필요한 일을 ‘정보 연결’, ‘반복 절차’, ‘실제 화면 기능’으로 나눕니다.
  2. 정보 연결은 MCP·Plugin, 반복 절차는 Skill·Workflow, 화면 기능은 Library 후보로 분류합니다.
  3. 설치 전 기존 기능과 공식 문서를 확인합니다.

이런 실수는 피하세요

  • Figma MCP를 설치하면 디자인이 자동으로 완성된다고 생각하는 것
  • AI 도구용 Plugin과 웹사이트에 번들되는 라이브러리를 같은 것으로 보는 것
다음으로 넘어가기 전 확인

추가하려는 도구가 AI 작업 환경에 들어가는지, 실제 웹 코드에 들어가는지 설명할 수 있나요?

원문 15

15. 프로젝트에 필요한 최소 도구

처음부터 많은 도구를 설치하는 것이 아니라 현재 작업에 필요한 정보와 검증 수단만 준비합니다. 디자인 구현이라면 Figma 연결, 코드 변경 이력이라면 GitHub, 실제 화면 검수라면 브라우저 자동화, 코드 정리에는 기존 포매터가 기본 후보입니다.

왜 필요한가

  • 도구가 많을수록 설정 충돌, 권한 문제, 학습 비용이 늘어납니다.
  • 필요한 순간에 목적이 분명한 도구를 추가해야 결과가 어느 도구에서 나왔는지 추적할 수 있습니다.

이렇게 적용하세요

  1. 프로젝트가 요구하는 입력 자료와 완료 검증을 먼저 목록으로 만듭니다.
  2. 기존에 설치된 도구와 패키지로 가능한지 확인합니다.
  3. 부족한 기능만 공식 설치 방법으로 추가하고 연결 여부를 작은 작업으로 시험합니다.

이런 실수는 피하세요

  • 추천 목록을 모두 설치한 뒤 사용하지 않는 것
  • Live Server가 필요한 단순 정적 프로젝트와 이미 개발 서버가 있는 프로젝트를 구분하지 않는 것
다음으로 넘어가기 전 확인

현재 설치하려는 각 도구에 대해 해결할 문제가 한 문장으로 적혀 있나요?

원문 16~21

4부. 표기법과 식별자

이 장의 목표 사람과 코드가 같은 대상을 같은 이름으로 부르도록 명명 규칙을 세웁니다.

원문 16

16. 식별자란 무엇인가

식별자는 코드에서 요소, 값, 함수, 파일을 구분하기 위해 붙이는 이름입니다. `header_logo`, `handleMenuOpen`, `ProductCard`처럼 이름만 보고 대상과 역할을 짐작할 수 있어야 합니다.

왜 필요한가

  • AI가 새 코드를 만들 때 기존 이름과 연결해야 중복 요소와 상태가 생기지 않습니다.
  • 오류가 난 위치를 찾고 수정 범위를 설명하기 쉬워집니다.

이렇게 적용하세요

  1. 대상의 역할을 먼저 한국어로 한 문장으로 정합니다.
  2. 프로젝트가 정한 표기법으로 바꿉니다.
  3. 같은 뜻의 기존 이름이 있는지 검색한 뒤 새 이름을 만듭니다.

이런 실수는 피하세요

  • `box1`, `temp`, `data2`처럼 역할이 없는 이름을 쓰는 것
  • 같은 헤더를 `top`, `gnb`, `header_area`로 제각각 부르는 것
다음으로 넘어가기 전 확인

새 이름만 보고 어떤 대상이며 어디에 쓰이는지 다른 사람이 추측할 수 있나요?

원문 17

17. 자주 사용하는 표기법

snake_case는 단어를 밑줄로, kebab-case는 하이픈으로, camelCase는 첫 단어 뒤의 단어를 대문자로, PascalCase는 모든 단어의 첫 글자를 대문자로 연결합니다. 어떤 표기법이 절대적으로 우월한 것이 아니라 프로젝트와 언어의 규칙을 일관되게 지키는 것이 중요합니다.

왜 필요한가

  • CSS, JavaScript, 컴포넌트 이름을 눈으로 빠르게 구분할 수 있습니다.
  • 검색과 자동 검사에서 같은 역할의 이름을 안정적으로 찾을 수 있습니다.

이렇게 적용하세요

  1. CSS class와 HTML id는 프로젝트 규칙의 `snake_case`를 사용합니다.
  2. JavaScript 변수·함수는 `camelCase`, 컴포넌트·class·type은 `PascalCase`를 사용합니다.
  3. 전역 고정 상수만 `UPPER_SNAKE_CASE`를 사용합니다.

이런 실수는 피하세요

  • 한 HTML에서 `product-card`와 `product_card`를 섞는 것
  • 모든 값을 대문자 상수로 작성해 지역 변수와 구분되지 않게 하는 것
다음으로 넘어가기 전 확인

CSS class, 이벤트 함수, 컴포넌트, 전역 상수의 이름 예시를 각각 하나씩 만들 수 있나요?

원문 18

18. 프로젝트 명명 규칙

명명 규칙은 표기 모양뿐 아니라 상태와 이벤트의 뜻까지 정합니다. 불리언은 `is`, `has`, `can`, `should`, 이벤트 처리 함수는 `handleXxx`, 전달하는 이벤트 속성은 `onXxx`, Hook은 `useXxx`로 시작하면 코드의 역할을 이름으로 드러낼 수 있습니다.

왜 필요한가

  • AI가 기존 코드를 확장할 때 같은 패턴을 재사용하게 합니다.
  • 참·거짓 값과 동작 함수를 일반 데이터와 혼동하는 실수를 줄입니다.

이렇게 적용하세요

  1. 저장소의 기존 이름을 검색해 실제 규칙을 확인합니다.
  2. 규칙 파일에 언어별 예시를 함께 기록합니다.
  3. 새 코드가 규칙과 다르면 기능 구현과 함께 이름을 바로 고칩니다.

이런 실수는 피하세요

  • `menuState`가 boolean인지 문자열인지 알 수 없게 쓰는 것
  • 이벤트 prop과 내부 처리 함수를 모두 `clickMenu`로 쓰는 것
다음으로 넘어가기 전 확인

`isMenuOpen`, `handleMenuToggle`, `onMenuToggle`의 역할 차이를 설명할 수 있나요?

원문 19

19. HTML과 JavaScript 예시

HTML class는 스타일과 구조를 식별하고, JavaScript는 그 요소를 찾거나 상태를 바꿉니다. 예를 들어 `.menu_button`을 찾고 클릭 시 `.site_nav`에 `is_open`을 추가하는 식으로 이름과 동작을 연결합니다.

왜 필요한가

  • HTML·CSS·JavaScript가 서로 다른 이름을 사용해 동작이 끊기는 문제를 막습니다.
  • 상태 class를 보면 현재 화면 상태를 개발자 도구에서 바로 확인할 수 있습니다.

이렇게 적용하세요

  1. 기본 구조 class와 상태 class를 분리합니다.
  2. JavaScript 선택자가 실제 HTML에 존재하는지 확인합니다.
  3. 상태 변경 시 `aria-expanded` 같은 접근성 속성도 함께 갱신합니다.

이런 실수는 피하세요

  • CSS에는 `.is_active`, JavaScript에는 `.active`를 사용하는 것
  • 보이기만 바꾸고 버튼의 확장 상태를 보조 기술에 알리지 않는 것
나쁜 요청

const x = document.querySelector('.a'); x.onclick = () => b.classList.toggle('on');

좋은 요청

const menuButton = document.querySelector('.menu_button'); menuButton.addEventListener('click', handleMenuToggle);

무엇이 다른가요? 좋은 예는 대상과 동작의 의미가 이름에 드러나며 이후 접근성 상태를 함께 처리하기 쉽습니다.

다음으로 넘어가기 전 확인

하나의 버튼 동작에 필요한 HTML class, 상태 class, 이벤트 함수 이름을 연결해 적을 수 있나요?

원문 20

20. `data-*` 속성

`data-*`는 HTML 요소에 JavaScript가 읽을 수 있는 프로젝트 전용 정보를 저장하는 표준 속성입니다. `data-category='camping'`처럼 화면에 보이지 않는 분류나 식별 값을 마크업과 함께 둘 때 사용합니다.

왜 필요한가

  • 스타일용 class에 데이터 의미까지 억지로 넣지 않아도 됩니다.
  • 필터, 탭, 모달 대상처럼 요소와 연결된 작은 값을 명시적으로 전달할 수 있습니다.

이렇게 적용하세요

  1. 값이 스타일 상태인지 데이터인지 먼저 구분합니다.
  2. HTML에는 `data-product-id`, JavaScript에서는 `dataset.productId`로 읽습니다.
  3. 민감 정보나 큰 JSON은 `data-*`에 넣지 않습니다.

이런 실수는 피하세요

  • 비밀번호나 비공개 API 키를 넣는 것
  • 단순 활성 상태를 `data-active`와 `is_active` 양쪽에 중복 저장하는 것
다음으로 넘어가기 전 확인

추가하려는 값이 class가 아니라 `data-*`에 있어야 하는 이유를 설명할 수 있나요?

원문 21

21. 외부 라이브러리 class

Swiper의 `.swiper-slide`처럼 외부 라이브러리가 동작을 위해 요구하는 class는 프로젝트 명명 규칙과 별개로 원형을 유지합니다. 프로젝트 스타일이 필요하면 `.hero_slider` 같은 자체 class를 같은 요소에 추가합니다.

왜 필요한가

  • 필수 class를 바꾸면 라이브러리가 요소를 찾지 못해 동작하지 않습니다.
  • 외부 규칙과 프로젝트 규칙을 분리하면 라이브러리를 제거하거나 교체하기 쉽습니다.

이렇게 적용하세요

  1. 공식 문서에서 필수 마크업과 class를 확인합니다.
  2. 필수 class는 변경하지 않고 프로젝트 class를 함께 추가합니다.
  3. CSS 선택자에서 외부 class만 과도하게 덮어쓰지 않습니다.

이런 실수는 피하세요

  • `.swiper-wrapper`를 snake_case로 바꾸는 것
  • 모든 디자인 스타일을 외부 class에 직접 넣어 다른 슬라이더까지 영향을 주는 것
다음으로 넘어가기 전 확인

현재 class가 프로젝트 소유인지 라이브러리가 요구하는 이름인지 구분되어 있나요?

원문 22~23

5부. HTML, CSS, JavaScript 개발 조건

이 장의 목표 기술 스택과 폴더 구조를 AI가 임의로 바꾸지 못하도록 구현 조건을 명확히 씁니다.

원문 22

22. 바닐라 JavaScript란 무엇인가

바닐라 JavaScript는 React·Vue 같은 UI 프레임워크 없이 브라우저가 기본 제공하는 HTML, CSS, JavaScript 기능으로 구현하는 방식을 뜻합니다. 라이브러리를 전혀 쓰지 않는다는 뜻은 아니지만, 기능 하나 때문에 전체 프레임워크를 도입하지 않습니다.

왜 필요한가

  • 작은 소개 사이트나 퍼블리싱 프로젝트에서 빌드 복잡도와 의존성을 줄일 수 있습니다.
  • 현재 프로젝트가 바닐라인데 AI가 익숙한 React 구조로 재작성하는 것을 막습니다.

이렇게 적용하세요

  1. 기존 파일과 `package.json`에서 실제 스택을 확인합니다.
  2. PRD와 규칙에 HTML·CSS·JavaScript 유지 조건을 적습니다.
  3. 복잡한 상태 관리가 실제로 필요한지 검토한 뒤 스택 변경을 별도 결정합니다.

이런 실수는 피하세요

  • 바닐라라는 이유로 코드 구조와 모듈 분리를 포기하는 것
  • AI 예시가 React라는 이유만으로 프로젝트 전체를 React로 변환하는 것
다음으로 넘어가기 전 확인

이 프로젝트가 바닐라로 충분한 이유와 프레임워크가 필요해지는 조건을 구분할 수 있나요?

원문 23

23. 권장 폴더 구조

폴더 구조는 HTML, 스타일, 스크립트, 이미지, 폰트처럼 파일의 역할과 소유 위치를 보여 주는 지도입니다. 정답 구조를 새로 만드는 것보다 기존 프로젝트의 구조를 먼저 따르고, 새 프로젝트일 때만 단순한 기준 구조를 정합니다.

왜 필요한가

  • AI가 파일을 임의 위치에 중복 생성하거나 상대 경로를 틀리는 문제를 줄입니다.
  • 에셋과 코드의 실제 경로를 PRD와 요청문에서 정확히 가리킬 수 있습니다.

이렇게 적용하세요

  1. 현재 폴더를 먼저 확인하고 공통 파일 위치를 찾습니다.
  2. 새 프로젝트라면 `assets/images`, `assets/icons`, `assets/fonts`, `css`, `js`처럼 역할별로 최소 분리합니다.
  3. 화면이 늘어나면 공통 코드와 화면 전용 코드를 구분하되 빈 폴더를 미리 만들지 않습니다.

이런 실수는 피하세요

  • 프로젝트 확인 없이 익숙한 구조로 전면 이동하는 것
  • 같은 로고를 여러 화면 폴더에 복제하는 것
다음으로 넘어가기 전 확인

새 파일을 어디에 둘지 기존 구조와 재사용 범위로 설명할 수 있나요?

원문 24~32

6부. Figma MCP

이 장의 목표 Figma 정보를 정확히 읽되 결과 코드를 현재 프로젝트 방식으로 옮기고 실제 화면과 비교합니다.

원문 24

24. MCP란 무엇인가

MCP는 AI 도구가 Figma, 문서, 데이터베이스 같은 외부 시스템의 정보와 기능을 정해진 방식으로 사용할 수 있게 연결하는 규격입니다. 대화창에 이미지를 붙이는 것보다 구조화된 데이터와 도구 기능을 직접 요청할 수 있다는 점이 다릅니다.

왜 필요한가

  • AI가 파일 구조, 노드 정보, 변수, 에셋을 추측하지 않고 확인할 수 있습니다.
  • 연결된 서비스가 제공하는 범위와 권한을 명확히 구분할 수 있습니다.

이렇게 적용하세요

  1. 사용 중인 AI 도구에서 MCP 지원 여부를 확인합니다.
  2. 공식 연결 방법으로 서버와 권한을 설정합니다.
  3. 작은 읽기 요청으로 연결 성공과 접근 범위를 확인합니다.

이런 실수는 피하세요

  • MCP 연결만 하면 모든 파일에 자동 접근한다고 생각하는 것
  • 쓰기 권한이 필요한지 검토하지 않고 넓은 권한을 허용하는 것
다음으로 넘어가기 전 확인

현재 MCP가 어느 서비스의 어떤 정보를 읽거나 변경할 수 있는지 알고 있나요?

원문 25

25. Figma MCP가 하는 일

Figma MCP는 선택한 파일이나 노드의 구조, 텍스트, 색상, 간격, 변수, 컴포넌트 정보와 제공 가능한 에셋을 AI가 확인하도록 돕습니다. 이를 통해 ‘비슷하게’가 아니라 확인된 값에 근거한 구현 계획을 만들 수 있습니다.

왜 필요한가

  • 스크린샷만으로 알기 어려운 정확한 텍스트와 반복 구조를 확인할 수 있습니다.
  • 디자인 변수와 컴포넌트를 실제 CSS 토큰과 공통 컴포넌트 후보로 연결할 수 있습니다.

이렇게 적용하세요

  1. 구현할 프레임과 연결된 화면 범위를 확인합니다.
  2. 메타데이터와 디자인 컨텍스트로 구조를 읽습니다.
  3. 스크린샷과 변수, 에셋을 함께 확인해 코드 값과 시각 결과를 교차 검증합니다.

이런 실수는 피하세요

  • 노드 하나만 보고 전체 반응형 규칙을 확정하는 것
  • Figma에서 확인한 값이 현재 저장소 토큰보다 항상 우선한다고 가정하는 것
다음으로 넘어가기 전 확인

구조 정보, 실제 화면, 변수, 에셋 중 아직 확인하지 않은 항목이 무엇인가요?

원문 26

26. Figma MCP가 하지 않는 일

Figma MCP는 디자인 정보를 전달하지만 제품 요구를 결정하거나 완성된 브라우저 동작을 보증하지 않습니다. 로딩·오류·빈 상태, 키보드 조작, 데이터 저장, 실제 API, 작은 화면의 재배치처럼 시안에 없는 조건은 PRD와 구현 검수에서 별도로 정해야 합니다.

왜 필요한가

  • 디자인 파일에 보이는 한 장면과 실제 제품의 모든 상태는 다릅니다.
  • 생성된 코드가 시각적으로 비슷해도 기존 저장소 규칙과 접근성을 위반할 수 있습니다.

이렇게 적용하세요

  1. Figma에서 확인된 사실과 PRD에서 결정할 내용을 분리합니다.
  2. 없는 상태와 반응형 동작은 추정하지 말고 질문하거나 규칙으로 확정합니다.
  3. 구현 후 반드시 실제 브라우저와 원본 화면을 비교합니다.

이런 실수는 피하세요

  • Figma에 없는 모바일 화면을 데스크톱 축소판으로 자동 결정하는 것
  • MCP가 만든 코드이므로 테스트가 필요 없다고 생각하는 것
다음으로 넘어가기 전 확인

디자인 파일만으로 결정할 수 없는 제품 상태를 세 가지 이상 적을 수 있나요?

원문 27

27. 결과가 React처럼 보이는 이유

Figma 연동 도구가 전달하는 예시는 디자인 구조를 설명하기 위해 React나 유틸리티 class 형태를 사용할 수 있습니다. 이것은 현재 프로젝트의 기술 스택을 바꾸라는 뜻이 아니라, 레이어 구조와 값, 에셋 연결을 이해하기 위한 참고 표현입니다.

왜 필요한가

  • 도구가 보여 준 코드 형식과 실제 구현 형식을 구분해야 기존 프로젝트를 보존할 수 있습니다.
  • 시각 정보는 재사용하되 불필요한 패키지와 컴포넌트 구조를 그대로 가져오지 않게 합니다.

이렇게 적용하세요

  1. 예시에서 화면 계층, 텍스트, 값, 에셋만 추출합니다.
  2. 현재 프로젝트의 HTML·CSS·JavaScript 구조에 맞게 다시 작성합니다.
  3. 동일한 시각 결과와 동작이 나오는지 브라우저에서 비교합니다.

이런 실수는 피하세요

  • 예시 코드가 React라서 새 React 프로젝트를 만드는 것
  • 유틸리티 class를 프로젝트 CSS 규칙 확인 없이 복사하는 것
다음으로 넘어가기 전 확인

Figma 예시에서 가져올 정보와 가져오지 않을 구현 형식을 구분할 수 있나요?

원문 28

28. Figma MCP 연결

연결 방법은 Codex 앱·CLI, Claude Code의 Plugin·수동 설정처럼 사용하는 도구와 버전에 따라 다릅니다. 특정 명령을 외우기보다 공식 안내에서 현재 설치 방식과 인증 상태를 확인하고 연결 후 실제 파일 읽기로 검증해야 합니다.

왜 필요한가

  • 도구 업데이트로 설정 화면과 명령이 달라질 수 있습니다.
  • 연결 표시만 보고 실제 파일 권한과 선택 범위를 확인하지 않으면 작업 중 실패합니다.

이렇게 적용하세요

  1. 사용하는 AI 도구의 공식 Figma MCP 안내를 엽니다.
  2. 필요한 계정 인증과 파일 권한을 최소 범위로 설정합니다.
  3. 대상 파일의 작은 프레임을 읽어 이름과 구조가 맞는지 확인합니다.

이런 실수는 피하세요

  • 예전 블로그의 명령을 현재 버전에 그대로 실행하는 것
  • 개인 파일 전체 권한을 이유 없이 허용하는 것
다음으로 넘어가기 전 확인

연결 성공을 아이콘 표시가 아니라 실제 대상 프레임 읽기로 확인했나요?

원문 29

29. Antigravity와 Figma MCP

Antigravity에서 Figma MCP를 사용할 때도 핵심은 연결 자체보다 작업 순서입니다. 먼저 프로젝트 규칙과 PRD를 읽고, 그다음 대상 Figma 프레임을 확인해야 디자인 정보가 현재 기술 스택과 범위 안에서 해석됩니다.

왜 필요한가

  • 디자인부터 읽으면 AI가 저장소 제약을 모르고 새로운 구조를 제안할 수 있습니다.
  • PRD의 화면 범위와 Figma의 선택 범위가 다를 때 먼저 충돌을 발견할 수 있습니다.

이렇게 적용하세요

  1. Workspace Rule과 PRD의 우선순위를 확인합니다.
  2. Figma 링크와 구현 대상 노드를 명시합니다.
  3. 분석 보고를 먼저 받고 확인된 범위만 구현하도록 요청합니다.

이런 실수는 피하세요

  • ‘이 Figma를 구현해 줘’만 보내는 것
  • 분석 결과를 읽지 않고 바로 전체 파일 수정을 승인하는 것
다음으로 넘어가기 전 확인

Antigravity의 첫 요청에 저장소 확인, PRD 확인, Figma 범위, 결과 보고 형식이 포함되어 있나요?

원문 30

30. Figma MCP 주요 도구

주요 기능은 파일·노드 구조를 보는 metadata, 화면을 보는 screenshot, 스타일 값을 보는 variables, 구현 맥락을 얻는 design context, 실제 파일을 얻는 assets로 나눠 이해할 수 있습니다. 이름은 연동 환경에 따라 다를 수 있지만 확인 목적은 같습니다.

왜 필요한가

  • 한 종류의 정보만 보고 생기는 추정을 줄입니다.
  • 스크린샷과 에셋의 차이를 알면 화면 전체를 이미지로 붙이는 잘못된 구현을 막을 수 있습니다.

이렇게 적용하세요

  1. metadata로 화면과 레이어 범위를 좁힙니다.
  2. screenshot으로 실제 시각 결과를 확인합니다.
  3. variables와 context로 값과 구조를 읽고 assets로 필요한 원본 파일만 가져옵니다.

이런 실수는 피하세요

  • 스크린샷을 웹 화면 배경 이미지로 사용해 구현을 대신하는 것
  • 모든 에셋을 내려받아 사용 여부 없이 프로젝트에 넣는 것
다음으로 넘어가기 전 확인

지금 필요한 것이 구조, 시각 비교, 정확한 값, 원본 에셋 중 무엇인지 정했나요?

원문 31

31. Figma MCP 디자인 구현 순서

안전한 구현 순서는 프로젝트 확인→Figma 범위 확인→디자인 분석→토큰과 공통 구조 결정→한 화면 구현→브라우저 비교→나머지 화면 확장입니다. 분석과 구현을 분리하면 잘못된 가정을 코드 전체에 퍼뜨리기 전에 수정할 수 있습니다.

왜 필요한가

  • 첫 화면에서 공통 간격과 컴포넌트 규칙을 검증한 뒤 재사용할 수 있습니다.
  • 화면을 한꺼번에 만들 때 발생하는 대규모 되돌리기를 줄입니다.

이렇게 적용하세요

  1. 코드 변경 없이 저장소와 Figma를 분석하게 합니다.
  2. 확인된 사실·추정·질문을 분리한 계획을 검토합니다.
  3. 공통 구조와 대표 화면 하나를 구현하고 비교한 뒤 승인된 패턴으로 확장합니다.

이런 실수는 피하세요

  • 분석과 전체 구현을 한 요청에 묶는 것
  • Figma 캡처와 비교하지 않고 코드가 빌드된 것만으로 완료하는 것
나쁜 요청

Figma 링크 보고 사이트 전체를 똑같이 만들어 줘.

좋은 요청

먼저 코드 수정 없이 저장소와 Figma 프레임을 분석하세요. 확인한 사실, 추정, 재사용할 기존 컴포넌트, 화면별 구현 순서와 검증 방법을 보고한 뒤 승인을 기다리세요.

무엇이 다른가요? 좋은 요청은 분석과 구현을 분리하고, 추정을 드러내며, 다음 단계의 승인 지점을 만듭니다.

다음으로 넘어가기 전 확인

다음 구현 단계로 넘어가기 전에 현재 단계의 결과를 무엇으로 확인할지 정했나요?

원문 32

32. Figma 파일 구조

Figma의 Page, Frame, Section, Component, Instance, Variant는 화면과 재사용 구조를 표현합니다. 이름과 계층이 잘 정리되어 있을수록 AI가 어떤 프레임이 실제 화면이고 어떤 요소가 반복 컴포넌트인지 정확히 이해합니다.

왜 필요한가

  • 레이어 이름이 `Frame 123`뿐이면 화면 범위와 에셋 역할을 추측하게 됩니다.
  • 컴포넌트와 Variant를 확인하면 코드의 공통 컴포넌트와 상태 설계를 더 정확히 만들 수 있습니다.

이렇게 적용하세요

  1. Page와 Section에서 제품 영역을 확인합니다.
  2. Frame 이름으로 데스크톱·모바일과 화면 종류를 구분합니다.
  3. Component·Instance·Variant의 반복과 상태를 코드 재사용 후보로 기록합니다.

이런 실수는 피하세요

  • 레이어 순서만 보고 DOM 순서를 확정하는 것
  • Instance 하나의 임시 수정값을 전체 컴포넌트 규칙으로 해석하는 것
다음으로 넘어가기 전 확인

대상 프레임, 반복 컴포넌트, 상태 Variant, 실제 에셋이 각각 어디인지 찾았나요?

원문 33~44

7부. 인터랙션 라이브러리

이 장의 목표 효과의 이름보다 사용자 경험과 프로젝트 조건을 기준으로 필요한 라이브러리만 선택합니다.

원문 33

33. 인터랙션 라이브러리란 무엇인가

인터랙션 라이브러리는 애니메이션, 스크롤, 슬라이더, 화면 전환, 3D처럼 브라우저 기본 코드로 반복 구현하기 복잡한 동작을 제공하는 코드 모음입니다. 디자인을 화려하게 만드는 장식이 아니라 명확한 요구를 안정적으로 구현하기 위한 선택지입니다.

왜 필요한가

  • 검증된 시간 계산과 브라우저 차이 처리를 재사용할 수 있습니다.
  • 반대로 단순 효과에는 라이브러리가 오히려 파일 크기와 유지보수 부담을 늘릴 수 있습니다.

이렇게 적용하세요

  1. 디자인에 필요한 동작을 문장으로 먼저 정의합니다.
  2. CSS와 기본 JavaScript로 가능한지 확인합니다.
  3. 부족할 때만 현재 프로젝트와 호환되는 라이브러리를 공식 문서로 검토합니다.

이런 실수는 피하세요

  • 라이브러리를 먼저 고른 뒤 쓸 효과를 찾는 것
  • 접근성과 모션 감소 설정 없이 자동 재생 효과를 추가하는 것
다음으로 넘어가기 전 확인

선택하려는 라이브러리가 해결하는 구체적인 화면 요구를 설명할 수 있나요?

원문 34

34. 권장 라이브러리 조합

기본 조합은 가능한 한 HTML·CSS·JavaScript만 사용하고, 요구가 있을 때 GSAP·ScrollTrigger·Lenis·Swiper 등을 하나씩 추가하는 방식입니다. 여러 라이브러리가 같은 스크롤이나 애니메이션 시간을 제어하면 충돌할 수 있으므로 조합 자체도 설계 대상입니다.

왜 필요한가

  • 필요한 기능만 추가하면 초기 로딩과 디버깅 범위를 줄일 수 있습니다.
  • 각 도구의 책임이 분명하면 한 라이브러리를 제거해도 전체 동작이 무너지지 않습니다.

이렇게 적용하세요

  1. 기본 레이아웃과 상태 전환은 CSS와 JavaScript로 완성합니다.
  2. 복잡한 타임라인에는 GSAP, 스크롤 연결에는 ScrollTrigger처럼 역할을 하나씩 배정합니다.
  3. 부드러운 스크롤을 추가한다면 스크롤 기반 애니메이션과 동기화 방법을 함께 검증합니다.

이런 실수는 피하세요

  • GSAP와 Anime.js로 같은 요소를 동시에 움직이는 것
  • Swiper가 필요한 카드 목록에 별도의 드래그 라이브러리를 겹쳐 쓰는 것
다음으로 넘어가기 전 확인

각 라이브러리의 책임이 겹치지 않고, 제거했을 때 영향 범위를 알 수 있나요?

원문 35

35. GSAP

GSAP는 여러 요소의 움직임과 시간을 정밀하게 연결하는 애니메이션 라이브러리입니다. 순차 등장, 복잡한 타임라인, 중간 취소와 재생처럼 CSS 전환만으로 관리하기 어려운 모션에 적합합니다.

왜 필요한가

  • 여러 애니메이션의 시작 시점과 지속 시간을 하나의 타임라인으로 관리할 수 있습니다.
  • 단순 hover나 색상 전환까지 GSAP로 만들면 코드가 불필요하게 복잡해집니다.

이렇게 적용하세요

  1. 공식 배포 방식에서 프로젝트에 맞는 설치 또는 import 방법을 확인합니다.
  2. 초기 상태를 CSS와 충돌하지 않게 정하고 작은 타임라인부터 만듭니다.
  3. 컴포넌트가 제거될 때 애니메이션과 이벤트를 정리하고 모션 감소 설정을 반영합니다.

이런 실수는 피하세요

  • 존재하지 않는 선택자에 애니메이션을 실행하는 것
  • 레이아웃 속성을 매 프레임 바꿔 화면 떨림과 성능 저하를 만드는 것
다음으로 넘어가기 전 확인

이 모션이 CSS보다 GSAP 타임라인을 써야 할 만큼 순서와 제어가 복잡한가요?

원문 36

36. ScrollTrigger

ScrollTrigger는 스크롤 위치를 기준으로 GSAP 애니메이션을 시작·종료·고정·진행시키는 플러그인입니다. 단순히 화면에 들어왔을 때 한 번 나타나는 효과보다 스크롤 진행률과 모션이 실제로 연결될 때 가치가 큽니다.

왜 필요한가

  • 복잡한 스크롤 위치 계산과 갱신을 직접 작성하는 부담을 줄입니다.
  • 잘못 사용하면 긴 고정 구간과 과도한 움직임으로 콘텐츠 탐색을 방해합니다.

이렇게 적용하세요

  1. trigger, start, end, scrub, pin이 각각 필요한지 결정합니다.
  2. 이미지와 폰트 로딩 후 위치 계산이 맞는지 확인합니다.
  3. 모바일 높이 변화와 모션 감소 환경에서 대체 동작을 검증합니다.

이런 실수는 피하세요

  • 모든 섹션을 pin 처리해 일반 스크롤을 막는 것
  • Lenis 같은 별도 스크롤 엔진과 갱신을 연결하지 않는 것
다음으로 넘어가기 전 확인

사용자가 스크롤을 빨리 넘겨도 콘텐츠를 놓치거나 화면이 갇히지 않나요?

원문 37

37. Lenis

Lenis는 스크롤 입력과 화면 이동 사이를 부드럽게 보간하는 스크롤 라이브러리입니다. 프로젝트가 명시적으로 부드러운 스크롤 감각을 요구할 때 검토하며, 내부 스크롤 영역과 키보드·접근성 동작을 먼저 보존해야 합니다.

왜 필요한가

  • 제품 전체의 스크롤 감각을 일정하게 만들 수 있습니다.
  • 기본 스크롤을 바꾸므로 링크 이동, 모달, 중첩 스크롤, 모바일 브라우저와 충돌할 위험이 있습니다.

이렇게 적용하세요

  1. 기본 브라우저 스크롤로 디자인 요구를 충족하는지 먼저 봅니다.
  2. 도입한다면 애니메이션 프레임 루프와 ScrollTrigger 갱신을 공식 방식으로 연결합니다.
  3. textarea, 모달, 코드 영역 같은 내부 스크롤을 Lenis가 가로채지 않는지 확인합니다.

이런 실수는 피하세요

  • 부드러워 보인다는 이유만으로 모든 프로젝트에 기본 설치하는 것
  • 접근성의 모션 감소 설정과 키보드 PageDown 동작을 확인하지 않는 것
다음으로 넘어가기 전 확인

Lenis가 없을 때 해결되지 않는 제품 요구가 있고, 내부 스크롤 영역이 모두 정상인가요?

원문 38

38. Swiper

Swiper는 터치와 마우스 드래그를 지원하는 슬라이더·캐러셀 라이브러리입니다. 여러 카드나 이미지를 한정된 공간에서 순서대로 탐색해야 할 때 사용하며, 단순 가로 목록은 CSS 스크롤만으로 충분할 수 있습니다.

왜 필요한가

  • 터치 제스처, 페이지 표시, 반복, 반응형 슬라이드 수를 안정적으로 제공합니다.
  • 캐러셀은 숨겨진 콘텐츠를 발견하기 어렵게 할 수 있으므로 정보 구조상 필요한지 검토해야 합니다.

이렇게 적용하세요

  1. 슬라이드가 필요한 이유와 한 화면에 보일 개수를 정합니다.
  2. 공식 필수 class를 유지하고 프로젝트 class를 함께 사용합니다.
  3. 이전·다음 버튼, 현재 위치, 키보드 조작, 모바일 드래그를 검증합니다.

이런 실수는 피하세요

  • 외부 class를 프로젝트 규칙에 맞춘다고 이름을 바꾸는 것
  • 자동 재생만 제공하고 정지나 직접 탐색 방법을 두지 않는 것
다음으로 넘어가기 전 확인

슬라이더가 없어도 사용자가 모든 콘텐츠에 접근할 수 있고 현재 위치를 알 수 있나요?

원문 39

39. SplitText와 SplitType

SplitText와 SplitType은 문장을 글자·단어·줄 단위 요소로 나누어 개별 애니메이션을 적용하도록 돕습니다. SplitText는 GSAP 생태계의 기능이고 SplitType은 별도 대안이므로 라이선스와 현재 사용 조건을 각각 확인해야 합니다.

왜 필요한가

  • 제목의 순차 등장처럼 직접 span을 수십 개 만들기 어려운 효과를 구현할 수 있습니다.
  • 텍스트를 잘못 분해하면 스크린 리더 읽기, 줄바꿈, 복사, 검색에 문제가 생깁니다.

이렇게 적용하세요

  1. 분할 전 원본 텍스트가 시맨틱하게 존재하도록 합니다.
  2. 필요한 제목에만 적용하고 접근성 트리에 중복 텍스트가 생기지 않게 처리합니다.
  3. 리사이즈 후 줄 단위 분할을 다시 계산하고 제거 시 원문을 복원합니다.

이런 실수는 피하세요

  • 본문 전체를 글자 단위로 분해하는 것
  • 유료·라이선스 조건을 확인하지 않고 배포하는 것
다음으로 넘어가기 전 확인

애니메이션이 꺼져도 원문을 자연스럽게 읽고 선택할 수 있나요?

원문 40

40. Lottie

Lottie는 After Effects 등에서 내보낸 JSON 애니메이션을 웹에서 재생하는 방식입니다. 직접 그릴 수 있는 단순 아이콘 효과가 아니라 실제 승인된 Lottie JSON 에셋이 제공되었을 때 적합합니다.

왜 필요한가

  • 복잡한 벡터 애니메이션을 영상보다 가볍고 해상도 독립적으로 표현할 수 있습니다.
  • JSON이 크거나 레이어 효과가 복잡하면 성능과 브라우저 호환 문제가 생길 수 있습니다.

이렇게 적용하세요

  1. 실제 JSON 파일과 사용 권한을 확인합니다.
  2. 반복·자동 재생·재생 시점을 제품 요구에 맞게 정합니다.
  3. 로딩 실패 대체 화면, 모션 감소, 화면 밖 재생 중지를 검증합니다.

이런 실수는 피하세요

  • 제공되지 않은 JSON URL을 임의로 만들어 넣는 것
  • 장식 애니메이션을 계속 재생해 배터리와 집중을 소모하는 것
다음으로 넘어가기 전 확인

실제 에셋, 실패 대체, 재생 조건, 모션 감소 동작이 모두 정해져 있나요?

원문 41

41. Motion과 Anime.js

Motion과 Anime.js는 일반적인 UI·DOM 애니메이션을 구현하는 선택지입니다. 프로젝트에 이미 사용하는 도구가 있거나 GSAP보다 가벼운 범위가 필요할 때 비교하며, 최신 API와 지원 환경은 공식 문서에서 확인합니다.

왜 필요한가

  • 요구에 맞는 작은 API로 상태 전환과 요소 모션을 구성할 수 있습니다.
  • 비슷한 목적의 라이브러리를 여러 개 넣으면 번들, 문법, 타이밍 관리가 분산됩니다.

이렇게 적용하세요

  1. 기존 의존성과 현재 구현을 먼저 검색합니다.
  2. 필요한 기능과 번들·브라우저 조건을 공식 문서로 비교합니다.
  3. 하나를 선택해 작은 상호작용으로 검증한 뒤 범위를 넓힙니다.

이런 실수는 피하세요

  • 유행하는 라이브러리를 기존 GSAP 프로젝트에 추가하는 것
  • 문서 버전이 다른 예제 코드를 섞어 사용하는 것
다음으로 넘어가기 전 확인

기존 도구를 재사용하지 않고 새 애니메이션 라이브러리를 추가해야 하는 이유가 있나요?

원문 42

42. Barba.js

Barba.js는 여러 HTML 문서 사이의 이동을 전체 새로고침처럼 보이지 않게 연결하고 전환 효과를 관리하는 라이브러리입니다. 라우터가 이미 있는 프레임워크 프로젝트나 단일 페이지에는 같은 목적의 기능이 겹칠 수 있습니다.

왜 필요한가

  • 전통적인 다중 페이지 사이트에서도 부드러운 페이지 전환을 설계할 수 있습니다.
  • 스크립트 재초기화, 브라우저 뒤로 가기, 스크롤 위치, 분석 도구가 복잡해질 수 있습니다.

이렇게 적용하세요

  1. 프로젝트가 실제 다중 HTML 문서 구조인지 확인합니다.
  2. 전환 없이도 모든 링크와 페이지가 먼저 정상 동작하게 만듭니다.
  3. 페이지 진입·이탈 시 이벤트와 라이브러리 인스턴스를 정리하고 뒤로 가기를 검증합니다.

이런 실수는 피하세요

  • Next.js 같은 기존 라우터 위에 같은 목적의 전환을 중복 설치하는 것
  • JavaScript 실패 시 페이지 링크까지 사용할 수 없게 만드는 것
다음으로 넘어가기 전 확인

전환 효과를 제거해도 모든 URL, 뒤로 가기, 스크롤 위치가 정상적으로 동작하나요?

원문 43

43. Three.js

Three.js는 WebGL을 쉽게 다루도록 돕는 3D 그래픽 라이브러리입니다. 3D 모델, 공간, 카메라, 조명, 셰이더가 제품 경험의 핵심일 때 사용하며 평면 디자인을 더 화려하게 보이게 하려는 목적만으로 도입하지 않습니다.

왜 필요한가

  • 브라우저에서 복잡한 3D 장면과 상호작용을 구현할 수 있습니다.
  • 모델 용량, GPU 부하, 모바일 발열, 대체 콘텐츠, 입력 방식까지 별도 설계가 필요합니다.

이렇게 적용하세요

  1. 3D가 해결하는 사용자 목표와 제공 모델을 확인합니다.
  2. 작은 장면으로 기기 성능과 로딩 시간을 측정합니다.
  3. 저사양·WebGL 미지원·모션 감소 환경의 정적 대체 화면을 준비합니다.

이런 실수는 피하세요

  • 2D 카드 배경을 위해 거대한 3D 엔진을 추가하는 것
  • 모바일 성능과 접근 가능한 대체 설명을 생략하는 것
다음으로 넘어가기 전 확인

3D가 콘텐츠 이해나 조작에 꼭 필요하며, 사용할 수 없는 환경의 대체 화면이 있나요?

원문 44

44. 인터랙션 선택표

선택표는 효과 이름이 아니라 요구의 복잡도, 입력 방식, 접근성, 성능, 기존 의존성을 기준으로 구현 수단을 고르는 표입니다. CSS→기본 JavaScript→기존 라이브러리→새 라이브러리 순으로 가장 작은 도구를 선택합니다.

왜 필요한가

  • 팀 취향이 아니라 반복 가능한 근거로 기술 선택을 설명할 수 있습니다.
  • 불필요한 의존성 추가와 비슷한 도구의 중복을 막습니다.

이렇게 적용하세요

  1. 동작, 시작 조건, 종료 조건, 사용자 입력을 적습니다.
  2. CSS와 기본 API로 가능한지 먼저 평가합니다.
  3. 접근성·성능·라이선스·기존 스택을 통과한 후보 하나만 선택합니다.

이런 실수는 피하세요

  • ‘고급스러워 보여서 GSAP’처럼 느낌만으로 선택하는 것
  • 선택 결과는 적고 검증 기준과 제거 조건은 적지 않는 것
나쁜 요청

애니메이션은 GSAP, Lenis, Swiper, Three.js를 전부 사용합니다.

좋은 요청

카드 hover는 CSS, 메뉴 열림은 기본 JavaScript를 사용합니다. 스크롤 연동 타임라인에만 GSAP과 ScrollTrigger를 사용하며 3D 요구가 없으므로 Three.js는 제외합니다.

무엇이 다른가요? 좋은 예는 동작별로 가장 작은 도구를 선택하고 제외 이유까지 기록합니다.

다음으로 넘어가기 전 확인

라이브러리 이름을 빼고도 필요한 동작과 선택 이유를 설명할 수 있나요?

원문 45~46

8부. PRD 작성 방법

이 장의 목표 빈 문서에서 시작해 AI가 실행하고 사람이 검수할 수 있는 PRD를 순서대로 완성합니다.

원문 45

45. PRD 작성 순서

PRD는 제품 개요부터 바로 기능 목록을 늘어놓는 문서가 아닙니다. 문제와 사용자를 먼저 정하고, 목표와 제외 범위, 화면 목적과 흐름, 상태와 데이터, 개발 조건, 완료 조건 순서로 좁혀 가야 뒤 항목의 판단 기준이 생깁니다.

왜 필요한가

  • 기능이 사용자 문제를 해결하는지 항목마다 확인할 수 있습니다.
  • 제외 범위와 완료 조건이 있어 구현 중 범위가 끝없이 늘어나는 것을 막습니다.

이렇게 적용하세요

  1. 제품 개요·문제·목표 사용자를 한 문단씩 씁니다.
  2. 제품 목표와 이번에 하지 않을 일을 목록으로 분리합니다.
  3. 화면 목적→사용자 흐름→상태·데이터→개발 조건→완료 조건을 채웁니다.

이런 실수는 피하세요

  • 디자인 색상부터 적고 사용자 문제를 마지막에 끼워 넣는 것
  • 제외 범위를 ‘추후 결정’으로 모두 비워 두는 것
다음으로 넘어가기 전 확인

각 핵심 기능이 어떤 사용자 문제와 제품 목표에 연결되는지 추적할 수 있나요?

원문 46

46. PRD 기본 템플릿

기본 템플릿은 제품 개요부터 변경 기록까지 빠뜨리기 쉬운 질문을 미리 배치한 작성 틀입니다. 모든 제목을 무조건 채우는 양식이 아니라 프로젝트에 없는 항목은 이유와 함께 제외하고, 필요한 상태와 검증 항목은 구체적으로 확장합니다.

왜 필요한가

  • 처음 작성하는 사람도 상태, 접근성, 반응형, 완료 조건을 놓치지 않습니다.
  • 프로젝트마다 같은 순서로 검토할 수 있어 AI 요청과 리뷰가 빨라집니다.

이렇게 적용하세요

  1. 아래 실습 영역의 `PRD.md` 템플릿을 현재 내용으로 수정합니다.
  2. 대괄호 자리표시자를 전부 검색해 실제 값으로 바꿉니다.
  3. 화면별로 목적·진입·행동·상태·완료 조건이 있는지 다시 읽습니다.

이런 실수는 피하세요

  • 해당하지 않는 항목을 빈 제목으로 남기는 것
  • 완료 조건에 구현할 기능을 다시 반복하고 검증 방법은 쓰지 않는 것
나쁜 요청

## 홈 메인 페이지를 예쁘게 만든다.

좋은 요청

## 홈 - 목적: 처음 방문한 사용자가 10초 안에 서비스와 주요 행동을 이해한다. - 핵심 행동: ‘캠핑장 찾기’ 버튼으로 검색 화면에 이동한다. - 완료 조건: 360px에서도 버튼과 핵심 설명이 첫 화면에 보인다.

무엇이 다른가요? 좋은 예는 화면 목적, 행동, 검증 가능한 결과를 분리합니다.

다음으로 넘어가기 전 확인

템플릿의 모든 자리표시자가 실제 값으로 바뀌었고 각 완료 조건을 직접 시험할 수 있나요?

원문 47

9부. 완성형 PRD 예시

이 장의 목표 빈칸 템플릿이 실제 프로젝트 정보로 바뀌면 어느 정도까지 구체적이어야 하는지 확인합니다.

원문 47

47. 캠핑캠픽 PRD

캠핑캠픽 예시는 캠핑장 탐색 서비스를 가정해 제품 개요, 문제, 사용자, 화면, 흐름, 상태, 저장 키, 기술 조건, 라이브러리, 반응형, 접근성, 완료 조건이 서로 연결된 모습을 보여 줍니다. 예시의 이름과 기능을 복사하는 것이 아니라 정보의 구체성과 연결 방식을 참고합니다.

왜 필요한가

  • 빈 템플릿만 볼 때 생기는 ‘어디까지 자세히 써야 하나’라는 질문에 기준을 제공합니다.
  • 기능 요구가 상태·저장·검증 문장으로 이어지는 방식을 확인할 수 있습니다.

이렇게 적용하세요

  1. 아래 완성 예시에서 한 기능을 골라 문제·흐름·상태·완료 조건 연결을 따라갑니다.
  2. 자신의 프로젝트에서 같은 연결을 한 기능에 먼저 작성합니다.
  3. 예시의 고유 이름과 값을 그대로 남기지 않았는지 검색합니다.

이런 실수는 피하세요

  • 캠핑 서비스의 화면과 저장 키를 다른 프로젝트에 그대로 복사하는 것
  • 완성 예시를 정답 양식으로 보고 프로젝트에 불필요한 기능까지 추가하는 것
다음으로 넘어가기 전 확인

내 프로젝트의 핵심 기능 하나를 사용자 문제부터 검증 방법까지 끊기지 않게 설명할 수 있나요?

원문 48~51

10부. 프로젝트 지침 파일 예시

이 장의 목표 제품 요구와 겹치지 않으면서 각 AI 도구가 반복해서 지킬 실행 규칙을 작성합니다.

원문 48

48. `AGENTS.md`

`AGENTS.md`에는 Codex가 작업 전 확인할 파일, 기존 코드 보존 원칙, 명명 규칙, HTML·CSS·JavaScript 작성 기준, Figma와 에셋 사용, 검증 명령, 결과 보고 방식을 적습니다. 실제 저장소와 맞지 않는 일반론은 제거합니다.

왜 필요한가

  • 반복되는 코드 품질 요구를 매 요청에 다시 쓰지 않아도 됩니다.
  • AI가 관련 없는 리팩터링이나 패키지 추가를 하기 전에 제한을 확인하게 합니다.

이렇게 적용하세요

  1. 현재 저장소의 설정과 명령을 먼저 확인합니다.
  2. 반드시 지킬 규칙을 짧은 행동 문장으로 작성합니다.
  3. 아래 템플릿의 기술 스택과 경로를 실제 프로젝트 값으로 교체합니다.

이런 실수는 피하세요

  • 다른 저장소의 패키지 매니저와 명령을 그대로 복사하는 것
  • PRD의 제품 기능을 전부 다시 적는 것
다음으로 넘어가기 전 확인

`AGENTS.md`의 모든 명령과 경로가 현재 저장소에 실제로 존재하나요?

원문 49

49. `CLAUDE.md`

`CLAUDE.md`는 Claude Code가 프로젝트에서 지켜야 할 규칙을 전달합니다. 공통 규칙이 다른 문서에 있다면 그 관계를 명시하고, Claude Code에서 필요한 계획 작성, 파일 확인, 검증 보고 같은 추가 절차만 둡니다.

왜 필요한가

  • 도구 전용 행동을 공통 제품 요구와 분리할 수 있습니다.
  • 같은 규칙의 복제본이 서로 달라지는 문제를 줄입니다.

이렇게 적용하세요

  1. 공통 기준 문서를 먼저 정합니다.
  2. Claude Code에서만 필요한 규칙이 실제로 있는지 확인합니다.
  3. 참조가 동작하지 않는 환경이라면 중복 대신 짧은 핵심 규칙으로 유지합니다.

이런 실수는 피하세요

  • 지원 여부를 확인하지 않은 참조 문법을 사용하는 것
  • 도구 이름만 바꾼 동일 문서를 여러 개 만드는 것
다음으로 넘어가기 전 확인

이 파일에서 공통 규칙을 제외하면 Claude Code만을 위한 내용이 분명하게 남나요?

원문 50

50. Antigravity Rule

Antigravity Rule은 Workspace에서 반복 적용할 개발 원칙을 적는 지침입니다. PRD와 기존 프로젝트 구조를 우선하고, 실제 에셋만 사용하며, 수정 전에 계획을 제시하고, 완료 후 상태 문서를 갱신하도록 구성합니다.

왜 필요한가

  • 디자인 생성 중심 요청에서도 저장소 보존과 검증 절차를 놓치지 않게 합니다.
  • 화면 구현과 문서 갱신의 순서를 고정할 수 있습니다.

이렇게 적용하세요

  1. 현재 Antigravity가 읽는 규칙 위치를 확인합니다.
  2. 프로젝트 공통 규칙을 넣고 특정 화면의 임시 요구는 PRD에 둡니다.
  3. 작업 결과에서 규칙 적용 여부를 파일 변경과 검증 보고로 확인합니다.

이런 실수는 피하세요

  • Rule이 적용되는지 시험하지 않고 모든 요청이 지켜질 것이라 믿는 것
  • 현재 화면의 완료 상태를 영구 규칙으로 작성하는 것
다음으로 넘어가기 전 확인

규칙 파일이 읽히는 위치, 우선순위, 적용 결과를 모두 확인했나요?

원문 51

51. `PROJECT_CONTEXT.md`

`PROJECT_CONTEXT.md`는 현재까지 완료된 기능, 진행 중 작업, 확정된 UX 정책, 사용 라이브러리, 저장 키, 알려진 문제, 다음 작업, 마지막 검증 결과를 기록하는 인수인계 문서입니다. 제품의 장기 목표보다 지금 이어서 일하는 데 필요한 사실을 담습니다.

왜 필요한가

  • 새 대화나 다른 도구가 이전 작업을 다시 조사하는 시간을 줄입니다.
  • 완료했다고 생각한 기능과 실제 검증된 기능을 구분할 수 있습니다.

이렇게 적용하세요

  1. 구현 완료·진행 중·알려진 문제를 분리합니다.
  2. 검증 명령과 실제 결과, 확인하지 못한 부분을 날짜와 함께 적습니다.
  3. 작업이 끝날 때마다 바뀐 사실만 갱신하고 오래된 계획은 정리합니다.

이런 실수는 피하세요

  • 성공하지 않은 테스트를 통과했다고 기록하는 것
  • 작업 일지를 모두 쌓아 현재 상태를 찾기 어렵게 만드는 것
다음으로 넘어가기 전 확인

다른 사람이 이 문서만 읽고 다음 작업을 중복 없이 시작할 수 있나요?

원문 52~54

11부. Skill 예시

이 장의 목표 반복되는 구현 절차를 목적별 Skill로 분리하고 현재 프로젝트에서도 재사용할 수 있게 씁니다.

원문 52

52. 바닐라 웹 구현 Skill

바닐라 웹 구현 Skill은 기존 HTML·CSS·JavaScript 구조 확인부터 시맨틱 마크업, 공통 스타일 재사용, 상태 구현, 반응형과 접근성 검수까지의 반복 절차를 담습니다. 특정 화면의 문구가 아니라 어떤 바닐라 프로젝트에서도 적용할 판단을 기록합니다.

왜 필요한가

  • AI가 익숙한 프레임워크로 임의 전환하는 것을 막습니다.
  • 화면마다 공통 구조 확인과 검수 단계를 빠뜨리지 않습니다.

이렇게 적용하세요

  1. 적용 조건과 목표를 작성합니다.
  2. 확인→구조→스타일→동작→검증 순서로 작업 단계를 씁니다.
  3. 프레임워크 도입, 가짜 에셋, 관련 없는 재작성 같은 금지사항을 명시합니다.

이런 실수는 피하세요

  • 완성할 화면 목록을 Skill 안에 고정하는 것
  • ‘잘 구현한다’처럼 행동을 알 수 없는 단계만 쓰는 것
다음으로 넘어가기 전 확인

이 Skill의 각 단계가 실제 파일 확인이나 검증 행동으로 이어지나요?

원문 53

53. 인터랙션 구현 Skill

인터랙션 구현 Skill은 디자인에 표시된 동작을 찾아 요구를 문장으로 바꾸고, 가장 단순한 기술을 선택해 구현하며, 입력 방식·상태 정리·모션 감소를 검증하는 절차입니다. 라이브러리 목록이 아니라 선택 과정이 핵심입니다.

왜 필요한가

  • 화면마다 효과를 과도하게 추가하는 것을 막습니다.
  • 마우스뿐 아니라 키보드, 터치, 스크롤, 모션 감소 환경을 함께 확인합니다.

이렇게 적용하세요

  1. 동작의 시작·진행·종료 상태를 분석합니다.
  2. CSS→기본 JavaScript→기존 라이브러리→새 라이브러리 순으로 선택합니다.
  3. 빠른 반복 입력, 화면 이탈, 리사이즈, 모션 감소에서 정리 동작을 검증합니다.

이런 실수는 피하세요

  • 디자인에 없는 스크롤 효과를 임의로 추가하는 것
  • 동작만 확인하고 이벤트와 애니메이션 인스턴스를 정리하지 않는 것
다음으로 넘어가기 전 확인

인터랙션을 제거해도 핵심 기능을 사용할 수 있고 모든 입력 방식에서 상태가 일치하나요?

원문 54

54. Figma MCP 구현 Skill

Figma MCP 구현 Skill은 대상 프레임과 프로젝트 규칙을 확인하고 metadata·screenshot·variables·context·assets를 필요한 순서로 읽은 뒤 현재 스택으로 구현하고 브라우저에서 비교하는 절차입니다.

왜 필요한가

  • Figma 정보 조회와 코드 생성을 한 번에 섞어 생기는 추정을 줄입니다.
  • 스크린샷 복제나 예시 코드 붙여넣기가 아니라 재사용 가능한 프로젝트 구조로 옮기게 합니다.

이렇게 적용하세요

  1. PRD와 저장소 규칙, 대상 노드를 먼저 확인합니다.
  2. 확인한 사실과 추정을 구분한 분석표를 작성합니다.
  3. 대표 화면을 구현하고 캡처 비교를 통과한 패턴만 나머지 화면에 확장합니다.

이런 실수는 피하세요

  • Figma에서 보이지 않는 기능과 에셋을 임의 생성하는 것
  • 도구가 출력한 React 코드를 바닐라 프로젝트에 그대로 넣는 것
다음으로 넘어가기 전 확인

Skill의 마지막 단계가 실제 브라우저 캡처와 디자인 비교까지 포함하나요?

원문 55~56

12부. 작업 요청문

이 장의 목표 AI에게 범위와 순서, 금지사항, 검증 결과를 빠뜨리지 않는 실행 가능한 요청을 보냅니다.

원문 55

55. 일반 작업 요청문

일반 작업 요청문은 PRD와 규칙 확인, 수정할 범위, 유지할 부분, 구현 순서, 검증 방법, 결과 보고 형식을 한 번에 전달하는 짧은 실행 지시입니다. PRD 전체를 다시 붙이는 대신 기준 문서를 먼저 읽도록 지시합니다.

왜 필요한가

  • AI가 요청 한 문장만 보고 범위를 추정하거나 관련 없는 파일을 고치는 것을 줄입니다.
  • 완료 보고에 변경 파일과 검증 결과가 남아 다음 수정의 근거가 됩니다.

이렇게 적용하세요

  1. 먼저 읽을 문서와 파일을 정확히 적습니다.
  2. 이번 요청에서 바꿀 것과 바꾸지 않을 것을 구분합니다.
  3. 실행할 검증과 결과 보고 항목을 명시하고 한 단계씩 요청합니다.

이런 실수는 피하세요

  • ‘전체적으로 알아서 고쳐 줘’처럼 수정 범위를 비워 두는 것
  • 검증하지 못한 부분을 보고하지 않게 하는 것
나쁜 요청

사이트 다 만들어 줘. 디자인도 알아서 하고 오류 없게 해줘.

좋은 요청

먼저 `PRD.md`와 `AGENTS.md`, 기존 공통 컴포넌트를 읽으세요. 이번 작업은 홈 화면의 구조와 반응형까지만 구현하고 인터랙션은 제외합니다. 360px·768px·1280px에서 가로 넘침을 확인하고 변경 파일과 결과를 보고하세요.

무엇이 다른가요? 좋은 요청은 기준 문서, 이번 범위, 제외 범위, 검증 크기, 보고 형식을 모두 제공합니다.

다음으로 넘어가기 전 확인

요청문만 읽어도 시작 조건, 수정 범위, 금지사항, 완료 증거를 알 수 있나요?

원문 56

56. Figma MCP 작업 요청문

Figma MCP 작업 요청문은 일반 요청의 구조에 Figma 파일·프레임 범위, 먼저 조회할 정보, 에셋 사용 원칙, 분석 후 승인 지점을 추가합니다. ‘똑같이’라는 표현 대신 무엇을 비교하고 어떤 차이를 허용하지 않는지 적습니다.

왜 필요한가

  • 잘못된 프레임이나 화면 전체를 구현하는 범위 오류를 막습니다.
  • Figma에서 확인한 사실과 저장소에서 지켜야 할 규칙을 함께 적용합니다.

이렇게 적용하세요

  1. Figma 링크와 대상 프레임 이름·노드 범위를 적습니다.
  2. metadata·screenshot·variables·assets 확인 후 분석만 보고하도록 1차 요청합니다.
  3. 승인 뒤 대표 화면을 구현하고 동일 크기 캡처로 비교하게 합니다.

이런 실수는 피하세요

  • 링크만 보내고 구현 화면과 상태 범위를 적지 않는 것
  • 분석 단계 없이 바로 모든 화면 수정을 허용하는 것
나쁜 요청

이 Figma 그대로 코딩해 줘: [링크]

좋은 요청

[Figma 링크]의 `Home/Desktop`과 `Home/Mobile` 프레임만 대상으로 합니다. 코드 수정 전에 구조·변수·에셋과 기존 컴포넌트 재사용 계획을 보고하세요. 승인 후 홈만 구현하고 같은 크기의 브라우저 캡처로 비교하세요.

무엇이 다른가요? 좋은 요청은 대상 프레임과 단계별 승인, 기존 코드 재사용, 시각 검수 방법을 고정합니다.

다음으로 넘어가기 전 확인

Figma 요청에 대상 범위, 사실과 추정의 분리, 실제 에셋, 비교 검수 단계가 포함되어 있나요?

원문 57~59

13부. 최종 확인

이 장의 목표 문서와 구현이 모두 같은 목표를 가리키는지 확인하고 검증 근거를 남깁니다.

원문 57

57. PRD 확인표

PRD 확인표는 문장이 많아 보이는지를 보는 것이 아니라 제품 목표부터 완료 조건까지 빈 연결이 없는지 검사합니다. 사용자 문제, 포함·제외 범위, 화면 목적, 흐름, 상태, 데이터, 기술 조건, 접근성, 반응형, 검증 방법을 차례로 확인합니다.

왜 필요한가

  • 구현을 시작한 뒤 발견하면 비용이 큰 누락을 문서 단계에서 찾습니다.
  • AI가 질문해야 할 미확정 항목과 바로 실행할 확정 항목을 구분합니다.

이렇게 적용하세요

  1. 대괄호 자리표시자와 빈 제목을 검색합니다.
  2. 각 기능을 문제→화면→상태→완료 조건으로 추적합니다.
  3. 충돌·추정·확인 불가 항목을 해결하거나 명시적으로 보류합니다.

이런 실수는 피하세요

  • 목차가 모두 있다는 이유로 내용을 검토하지 않는 것
  • 실행할 수 없는 완료 조건을 그대로 통과 처리하는 것
다음으로 넘어가기 전 확인

PRD에서 아직 사람이 결정해야 할 항목과 AI가 바로 실행할 항목이 분리되어 있나요?

원문 58

58. 라이브러리 확인표

라이브러리 확인표는 필요성, 기존 의존성, 공식 문서, 라이선스, 번들 영향, 브라우저 지원, 접근성, 제거와 정리 방법을 확인합니다. 설치 성공이 아니라 프로젝트에서 안전하게 유지할 수 있는지가 기준입니다.

왜 필요한가

  • 외부 코드가 늘어날수록 보안 업데이트와 호환성 책임도 늘어납니다.
  • 효과 구현 후 성능과 입력 접근성이 나빠지는 것을 배포 전에 찾을 수 있습니다.

이렇게 적용하세요

  1. 해결할 요구와 라이브러리 없이 어려운 이유를 적습니다.
  2. 이미 설치된 대안과 공식 사용법·라이선스를 확인합니다.
  3. 모바일 성능, 모션 감소, 키보드, 정리 동작을 실제 화면에서 시험합니다.

이런 실수는 피하세요

  • CDN 예제가 동작하면 배포 조건도 모두 충족했다고 생각하는 것
  • 사용하지 않는 라이브러리와 초기화 코드를 남기는 것
다음으로 넘어가기 전 확인

각 라이브러리를 유지해야 하는 이유와 제거했을 때 대체 방법을 설명할 수 있나요?

원문 59

59. 전체 정리

완성 과정은 문서 작성→도구와 자료 연결→디자인 분석→작은 단위 구현→브라우저 검수→문서 갱신의 반복입니다. AI가 코드를 많이 만든 것이 완료가 아니라, PRD의 목표와 디자인, 실제 동작, 검증 결과가 서로 일치할 때 프로젝트가 완료됩니다.

왜 필요한가

  • 문서와 코드, 디자인과 브라우저 사이의 차이를 마지막에 한 번 더 연결합니다.
  • 다음 작업자가 검증된 상태에서 이어서 작업할 수 있습니다.

이렇게 적용하세요

  1. PRD와 규칙 파일의 완료 조건을 다시 읽습니다.
  2. 빌드·테스트와 실제 화면·키보드·반응형 검수를 실행합니다.
  3. 변경 파일, 통과 결과, 남은 문제를 `PROJECT_CONTEXT.md`와 최종 보고에 기록합니다.

이런 실수는 피하세요

  • 빌드 성공만으로 디자인과 기능 검수를 생략하는 것
  • 확인하지 못한 외부 데이터나 화면을 성공했다고 보고하는 것
나쁜 요청

작업 완료했습니다. 잘 동작합니다.

좋은 요청

홈과 검색 화면을 구현했습니다. `npm run build`와 360px·768px·1280px 가로 넘침 검사는 통과했습니다. 외부 API의 오류 응답은 계정 권한이 없어 확인하지 못했습니다.

무엇이 다른가요? 좋은 보고는 변경 범위, 실행한 검증, 통과 결과, 확인하지 못한 부분을 분리합니다.

다음으로 넘어가기 전 확인

완료라고 말할 때 문서, 코드, 실제 화면, 자동 검증의 근거를 각각 제시할 수 있나요?

1단계

1단계. Markdown과 프로젝트 문서 이해하기

Markdown은 일반 텍스트에 간단한 기호를 더해 제목, 목록, 표, 코드처럼 문서 구조를 표현하는 작성 방식입니다. 파일 확장자는 .md입니다. 메모장이나 코드 편집기로 만들 수 있고, AI 코딩 도구는 제목과 목록 구조를 읽어 지시의 우선순위를 파악합니다.

1
정의

처음 보는 용어가 무엇인지 한 문장으로 이해합니다.

2
이유

이 파일이 없으면 AI의 결과가 왜 흔들리는지 확인합니다.

3
위치

어느 폴더에 어떤 이름으로 저장하는지 그대로 따라 합니다.

4
작성

템플릿을 복사하고 대괄호 부분을 내 프로젝트 정보로 바꿉니다.

5
사용

AI 도구에 언제 무엇을 요청해야 하는지 순서대로 실행합니다.

6
확인

체크리스트로 빠뜨린 내용과 실제 동작을 검수합니다.

가장 먼저 익힐 문법

  • #, ##, ###는 큰 제목부터 작은 제목 순서입니다.
  • -는 순서 없는 목록, 1.은 순서 있는 목록입니다.
  • 별표 두 개로 감싸면 중요한 문장을 굵게 표시합니다.
  • 짧은 파일명이나 코드는 인라인 코드로 표시합니다.
  • 긴 코드는 세 개의 백틱으로 감싼 코드 블록에 적습니다.
Markdown 기본 문법README.md
파일명 대문자를 지키세요

AGENTS.md, CLAUDE.md, SKILL.md, PRD.md처럼 도구가 약속한 파일명은 대문자를 그대로 사용합니다. Windows에서는 비슷해 보여도 배포 서버에서는 다른 파일로 처리될 수 있습니다.

여기까지 확인하세요
  • .md 확장자의 의미를 설명할 수 있습니다.
  • 제목, 목록, 강조, 코드, 링크를 작성할 수 있습니다.
  • 도구가 정한 파일명의 대문자를 그대로 사용할 수 있습니다.

2단계

2단계. 다음 과정으로 이어서 배우기

Markdown 문법과 개념을 익혔다면, 이제 실제로 설계 문서를 만들고 도구로 화면을 구현할 차례입니다. 아래 교안이 이 과정을 이어서 안내합니다. 순서대로 따라 하면 디자인만 있는 상태에서 사이트 배포까지 갈 수 있습니다.

이 교안의 역할

여기서 익힌 Markdown과 개념이 모든 과정의 기초입니다

좋은 문서는 AI와 사람이 같은 목표, 같은 범위, 같은 완료 기준을 보고 작업하게 합니다. 개념을 이해했다면 위 교안에서 실제 프로젝트를 만들어 보세요.

설계 문서부터 시작하기
디자인 프로젝트를 완성하는 AI 코딩 실전 교안 | 복붙랩