-- 1~4단계까지는 잘 하다가.. 마지막 5단계에서 버튼 동작이 작동되지 않아 4번 정도 수정을 하였네요
(gemini가 수정을 하면서... 실수하지 않겠다고 다짐까지 하네요..ㅋ)
2. gemini로 프롬프트 생성 후 앱 만들떄의 단점
-- gemini로 생성된 프롬프트는 책의 예제보다 허접하다 보니... 만들어진 앱도 허접하네요.
-- 바이블 코딩도 역쉬 프롬프트의 힘을 느낍니다.
1. Gemini Prompt로 만든 앱
모바일 버전
데스크탑 버전
2. 도서의 Prompt로 만든 앱
# 사용된 프롬프트
Claude prompt
Gemini prompt
Step 1: 기본 구조 및 핵심 기능 구현
할 일 관리 앱의 기본 구조를 만들어줘.
요구사항: 1. index.html, style.css, script.js 세 개의 파일로 구성 2. HTML 구조: - 앱 제목 "My Tasks" - 할 일 입력창 (input + 추가 버튼) - 할 일 목록을 표시할 컨테이너 3. JavaScript 기능: - 할 일 추가 (Enter 키와 버튼 클릭 모두 지원) - 할 일 삭제 (각 항목에 X 버튼) - 체크박스로 완료/미완료 토글 - 완료 시 취소선 스타일 적용 4. localStorage에 데이터 저장: - 추가/삭제/완료 상태 변경 시 자동 저장 - 페이지 새로고침 시 데이터 유지 5. 기본 CSS 스타일링: - 깔끔한 카드 형태의 레이아웃 - 중앙 정렬, 최대 너비 600px - 호버 효과와 트랜지션
각 할 일은 { id, text, completed, createdAt } 구조로 저장해줘.
1단계: 프로젝트 기초 구조 및 UI 레이아웃 수립 목적: 기본적인 HTML 구조와 현대적인 CSS 스타일링을 완성합니다. 프롬프트: "순수 자바스크립트(Vanilla JS)를 사용하여 '데일리 할 일 관리 앱'을 만들려고 해. 우선 HTML과 CSS를 작성해 줘.
레이아웃: 상단에 제목과 현재 날짜가 나오는 Header, 그 아래 진행률을 보여주는 Progress Bar, 할 일을 입력하는 Input 영역, 그리고 목록이 표시되는 List 영역이 필요해.
요구사항: 1. 카테고리 기능: - 3가지 카테고리: 업무(work), 개인(personal), 공부(study) - 할 일 추가 시 카테고리 선택 드롭다운 - 각 할 일 항목에 카테고리 색상 태그 표시 - 카테고리 필터 버튼 (전체/업무/개인/공부) 2. UI 개선: - 카테고리별 색상: 업무(파란색 #4A90E2), 개인(초록색 #27AE60), 공부(보라색 #8E44AD) - 필터 버튼을 상단에 배치 - 선택된 필터 버튼 강조 표시 - 할 일 항목에 생성 시간 표시 (예: "2시간 전") 3. 데이터 구조 업데이트: - category 필드 추가 - 필터 상태도 localStorage에 저장
완료된 항목은 목록 하단으로 자동 정렬되도록 구현해줘.
2단계: 할 일 추가 및 삭제 기능 구현 (CRUD 기초) 목적: 메모리상에서 데이터를 추가하고 삭제하며 화면에 렌더링하는 핵심 로직을 만듭니다. 프롬프트: "이제 자바스크립트 로직을 추가하자.
입력 기능: 텍스트 입력창과 카테고리 선택(업무, 개인, 공부) 드롭다운을 통해 할 일을 추가하는 기능을 만들어 줘.
요구사항: 1. 진행률 대시보드: - 앱 상단에 통계 섹션 추가 - 전체 진행률: "5/10 완료 (50%)" 형식 + 프로그레스 바 - 카테고리별 미니 진행률 표시 (각 카테고리 완료/전체) - 오늘 추가된 할 일 개수 표시 2. 인라인 수정 기능: - 할 일 텍스트 더블클릭 시 편집 모드 - input 필드로 변경되어 수정 가능 - Enter로 저장, ESC로 취소 - 편집 중 카테고리도 변경 가능한 select 박스 3. UI 애니메이션: - 진행률 바 부드러운 전환 효과 - 항목 추가/삭제 시 페이드 애니메이션 - 완료 체크 시 슬라이드 애니메이션
대시보드는 실시간으로 업데이트되어야 해.
3단계: 완료 체크 및 카테고리 스타일 적용 목적: 할 일의 상태를 관리하고 시각적인 피드백을 강화합니다. 프롬프트: "할 일의 상태 관리 기능을 고도화해 줘.
완료 체크: 체크박스나 아이템 클릭 시 완료 상태(completed)를 토글할 수 있게 해 줘. 완료된 항목은 텍스트에 취소선이 생기고 색상이 흐려져야 해.
요구사항: 1. 다크 모드: - 우측 상단에 다크/라이트 모드 토글 스위치 - 다크 모드 색상: 배경(#1A1A1A), 카드(#2D2D2D), 텍스트(#E0E0E0) - 선택한 테마 localStorage에 저장 - 부드러운 전환 애니메이션 2. 추가 기능: - "완료된 항목 모두 삭제" 버튼 (확인 다이얼로그 포함) - 할 일 검색 기능 (실시간 필터링) - 남은 할 일 개수 배지 표시 - 빈 상태 메시지 ("할 일이 없습니다. 추가해보세요!") 3. 키보드 단축키: - Alt+N: 새 할 일 입력창 포커스 - Alt+1,2,3,4: 카테고리 필터 전환 - Alt+D: 다크 모드 토글 4. 반응형 디자인: - 모바일 (max-width: 480px) 최적화 - 터치 친화적인 버튼 크기
모든 인터랙션에 적절한 피드백을 제공해줘.
4단계: LocalStorage 연동 및 데이터 지속성 확보 목적: 브라우저를 새로고침해도 데이터가 유지되도록 저장소 기능을 연결합니다. 프롬프트: "앱의 데이터를 브라우저에 저장해서 새로고침해도 유지되도록 해 줘.
저장: 할 일을 추가, 삭제, 상태 변경할 때마다 localStorage에 현재 할 일 목록을 JSON 형태로 저장해 줘.
로드:페이지가처음로드될때 localStorage에서데이터를읽어와서목록을복구해줘.
••날짜정보:앱상단에오늘날짜가한국어형식(예: 2024년 5월 20일월요일)으로실시간또는로드시점에표시되게해줘."
step 5
앱을 최종 완성하고 사용성을 극대화해줘.
요구사항: 1. 데이터 내보내기/가져오기: - JSON 형식으로 데이터 내보내기 버튼 - 파일 업로드로 데이터 가져오기 - 가져오기 전 현재 데이터 백업 확인 2. 정렬 옵션: - 생성일순, 카테고리순, 완료 상태순 정렬 - 정렬 상태 저장 - 드래그 앤 드롭으로 수동 정렬 (sortable) 3. 성능 최적화: - 100개 이상 항목에서도 부드러운 성능 - 디바운싱 적용 (검색, 저장) - 효율적인 DOM 조작 4. 접근성 개선: - ARIA 레이블 추가 - 포커스 관리 - 스크린 리더 지원 5. 추가 개선사항: - 할 일 중복 확인 경고 - 최근 삭제 항목 복구 (Undo) 기능 - 오늘의 격언 랜덤 표시 - 완료율에 따른 응원 메시지
모든 엣지 케이스를 처리하고 에러 핸들링을 추가해줘. 코드에 상세한 주석을 달아줘.
5단계: 진행률 대시보드 및 UX 디테일 강화 목적: 진행률 바를 활성화하고 애니메이션 및 사용성을 개선합니다. 프롬프트: "마지막으로 앱의 완성도를 높여 보자.
진행률 바: 상단 Progress Section에 '전체 할 일 대비 완료된 할 일'의 비율을 계산해서 프로그레스 바와 퍼센트(%) 수치로 보여 줘. 상태가 바뀔 때마다 부드럽게 업데이트되어야 해.
••애니메이션:할일을추가하거나삭제할때부드러운페이드인/아웃효과를추가해줘.
Ch 04. 클로드 코드 실전 활용
[1단계] 기획 및 프로젝트 준비 (Claude Web → Claude Code)
클로드 웹(Claude Web)에서 체계적인 기획(PRD)을 세우고, 이를 클로드 코드(Claude Code)에서 실행 가능한 단위로 변환하는 워크플로우를 학습합니다.
• 레슨 (Lesson)
◦ 워크플로우 이해: 클로드 웹에서는 프롬프트를 설계하고, 클로드 코드에서는 이를 실행하는 이원화된 프로세스를 이해합니다.
◦ PRD 기반 프롬프트: 할 일 관리 앱(Todo App)의 주요 기능(10~20개 할 일 관리, 추가/삭제 등)을 정의하고, 이를 바탕으로 PRD(제품 요구 사항 문서)를 작성하는 법을 배웁니다.
◦ 단계별 변환: 작성된 PRD를 한 번에 실행하지 않고, 클로드 코드용 '5단계 핵심 프롬프트'로 변환하여 단계적으로 지시하는 전략을 익힙니다.
• 실습 (Practice)
◦ 클로드 웹에 접속하여 "할 일 관리 앱 PRD를 작성해 줘"라고 요청한 뒤, 결과물을 다시 "클로드 코드용 5단계 프롬프트로 변환해 줘"라고 요청하여 텍스트를 확보합니다.
◦ 바탕화면의 바이브 코딩 폴더 내에 Study02라는 새 폴더를 만들고, 해당 위치에서 터미널을 열어 클로드 코드를 실행합니다.