풀스택 개인 학습 목표 트래커 - 바이브코딩 레시피
입문 PHP + JavaScript Laravel + React AI: Claude

풀스택 개인 학습 목표 트래커

리포지토리명 personal-learning-goal-tracker
조회수 62 1건 제출

문제 설명

📚 풀스택 개인 학습 목표 트래커

배우고 싶은 기술이나 과목의 학습 목표를 설정하고, 진행 상황을 체크하며 성취감을 얻을 수 있는 웹 애플리케이션입니다. Laravel 12.x로 RESTful API 백엔드를 구축하고, React 19로 인터랙티브한 프론트엔드를 만드는 풀스택 프로젝트입니다.

✅ 필수 기능

  • 학습 목표 추가/수정/삭제 (CRUD)
  • 각 목표별 진행률 입력 (0~100%)
  • 목표 상태 필터링 (전체/진행중/완료)
  • 진행률 바를 통한 시각적 표시
  • SQLite 데이터베이스 사용
  • Laravel API + React 프론트엔드 분리 구조

🎁 선택 추가 기능 (보너스)

  • 목표별 카테고리 태그 (프로그래밍, 언어, 디자인 등)
  • 완료된 목표 개수 통계 표시
  • 목표 달성 시 축하 애니메이션
  • 다크모드 지원
  • 목표별 메모 필드 추가

제약 조건

  • • Laravel 12.x 백엔드 API 서버 사용 (구버전 금지)
  • • React 19 프론트엔드 (Vite 번들러) 사용
  • • SQLite 데이터베이스 사용 (설치 간편)
  • • Tailwind CSS로 스타일링
  • • fetch 또는 axios로 API 통신
  • • 복잡한 상태관리 라이브러리 사용 금지 (useState만 사용)
  • • RESTful API 설계 원칙 준수 (GET, POST, PUT, DELETE)
  • • 프론트엔드와 백엔드는 별도 폴더로 분리

프롬프트 레시피

아래 프롬프트를 순서대로 AI에게 보내면 됩니다. 복사 버튼을 눌러 바로 사용하세요.

1
Step 1
mkdir personal-learning-goal-tracker && cd personal-learning-goal-tracker

이 폴더에서 프로젝트를 시작합니다.

# Laravel 12.x API 백엔드 설정

1. `backend` 폴더에 Laravel 12.x 프로젝트를 생성해주세요.
2. SQLite 데이터베이스를 사용하도록 `.env` 파일을 설정해주세요.
3. `goals` 테이블을 위한 마이그레이션 파일을 생성하고, 다음 필드를 포함해주세요:
   - id (자동 생성)
   - title (string, 필수) - 학습 목표 제목
   - description (text, nullable) - 상세 설명
   - progress (integer, 기본값 0) - 진행률 (0~100)
   - is_completed (boolean, 기본값 false) - 완료 여부
   - created_at, updated_at (타임스탬프)
4. 마이그레이션을 실행하여 테이블을 생성해주세요.
5. `Goal` 모델을 생성하고, fillable 속성을 설정해주세요.
6. CORS 설정을 추가하여 프론트엔드(localhost:5173)에서 API 접근이 가능하도록 해주세요.

기대 결과: Laravel 백엔드 프로젝트가 `backend` 폴더에 생성되고, SQLite 데이터베이스와 goals 테이블이 준비됩니다. Goal 모델이 생성되고 CORS 설정이 완료되어 React에서 API 호출이 가능한 상태가 됩니다.

2
Step 2
# Laravel API 라우트 및 컨트롤러 구현

1. `GoalController`를 생성하고 다음 RESTful API 메서드를 구현해주세요:
   - `index()` - 모든 학습 목표 조회 (GET /api/goals)
   - `store(Request $request)` - 새 학습 목표 생성 (POST /api/goals)
     - title 필수 검증
     - progress는 0~100 범위 검증
   - `update(Request $request, $id)` - 학습 목표 수정 (PUT /api/goals/{id})
     - progress 업데이트 시 100이면 is_completed를 true로 자동 설정
   - `destroy($id)` - 학습 목표 삭제 (DELETE /api/goals/{id})

2. `routes/api.php`에 위 컨트롤러를 연결하는 라우트를 정의해주세요.

3. 각 API는 JSON 형식으로 응답하도록 해주세요.

4. Laravel 개발 서버를 `php artisan serve` 명령으로 실행하여 API 테스트가 가능하도록 해주세요.

기대 결과: GoalController가 생성되고 CRUD API 엔드포인트가 구현됩니다. Postman이나 curl로 API 테스트가 가능한 상태가 되며, 데이터 검증 로직이 포함됩니다.

3
Step 3
# React 19 프론트엔드 프로젝트 설정

1. 프로젝트 루트에 `frontend` 폴더를 만들고, Vite + React 19 프로젝트를 생성해주세요.
2. Tailwind CSS를 설치하고 설정해주세요.
3. `src/App.jsx`를 메인 컴포넌트로 만들고, 다음 UI 레이아웃을 구현해주세요:
   - 상단에 "📚 학습 목표 트래커" 제목
   - 새 목표 추가 폼 (제목 입력, 설명 입력, 추가 버튼)
   - 목표 목록 표시 영역
4. `useState`를 사용하여 다음 상태를 관리해주세요:
   - goals (배열) - 학습 목표 목록
   - newTitle (문자열) - 새 목표 제목 입력값
   - newDescription (문자열) - 새 목표 설명 입력값
5. 아직 API 연동은 하지 말고, 빈 배열 상태로 UI만 구현해주세요.
6. Tailwind CSS로 깔끔하고 현대적인 디자인을 적용해주세요.

기대 결과: React 프론트엔드 프로젝트가 `frontend` 폴더에 생성되고, 기본 UI 레이아웃이 완성됩니다. 입력 폼과 목록 표시 영역이 있지만 아직 데이터는 없는 상태입니다.

4
Step 4
# React와 Laravel API 연동

1. `useEffect` 훅을 사용하여 컴포넌트 마운트 시 Laravel API(http://localhost:8000/api/goals)에서 학습 목표 목록을 가져와 상태에 저장해주세요.

2. 새 목표 추가 기능을 구현해주세요:
   - 폼 제출 시 POST /api/goals로 데이터 전송
   - 성공 시 목록을 다시 불러오고 입력 필드 초기화

3. 각 목표 항목에 다음 UI를 추가해주세요:
   - 제목과 설명 표시
   - 진행률 바 (0~100% 시각화)
   - 진행률 입력 슬라이더 (0~100 범위)
   - 슬라이더 변경 시 PUT /api/goals/{id}로 업데이트
   - 삭제 버튼 (DELETE /api/goals/{id})

4. 진행률이 100%인 목표는 초록색 배경이나 체크 아이콘으로 시각적 구분을 해주세요.

5. 로딩 상태와 에러 처리를 추가해주세요.

6. `npm run dev`로 개발 서버를 실행하여 전체 기능이 동작하는지 확인해주세요.

기대 결과: React 프론트엔드가 Laravel API와 완전히 연동됩니다. 학습 목표를 추가, 조회, 수정(진행률 업데이트), 삭제할 수 있으며, 진행률이 시각적으로 표시됩니다. 100% 완료된 목표는 시각적으로 구분되어 표시됩니다.

제출된 작품 (1)

로그인 후 제출

학습 목표를 체계적으로 관리하고 진행 상황을 추적할 수 있는 풀스택 웹 애플리케이션

조회수 55 댓글수 0 추천수 0

댓글 (0)

로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!