Laravel 간단 명함 관리 시스템 - 바이브코딩 레시피
입문 PHP Laravel AI: Claude

Laravel 간단 명함 관리 시스템

리포지토리명 business-card-manager-laravel
조회수 74 0건 제출

문제 설명

프로젝트 개요

네트워킹 행사나 미팅에서 받은 명함을 디지털로 관리하는 간단한 웹 애플리케이션입니다. Laravel 13.x와 Blade 템플릿을 사용하여 명함 정보를 등록하고, 목록을 보고, 수정/삭제할 수 있는 CRUD 시스템을 구축합니다.

필수 기능

  • 명함 등록: 이름, 회사명, 직책, 이메일, 전화번호, 메모를 입력하여 새 명함 추가
  • 명함 목록: 등록된 모든 명함을 카드 형태로 보기 좋게 표시
  • 명함 상세: 개별 명함의 전체 정보 확인
  • 명함 수정: 기존 명함 정보 업데이트
  • 명함 삭제: 불필요한 명함 제거
  • 검색 기능: 이름이나 회사명으로 명함 검색
  • SQLite 데이터베이스: 간단한 로컬 DB로 데이터 저장
  • Tailwind CSS: 깔끔하고 현대적인 UI 디자인

보너스 기능

  • 회사별로 명함 그룹핑하여 보기
  • 즐겨찾기 기능 (중요한 명함 표시)
  • 명함 색상 태그 (카테고리 구분)
  • 최근 추가된 명함 순으로 정렬
  • 반응형 디자인으로 모바일에서도 편리하게 사용

제약 조건

  • • Laravel 13.x 사용 (최신 버전)
  • • Blade 템플릿 엔진으로 뷰 작성 (React, Vue 등 SPA 프레임워크 사용 금지)
  • • Tailwind CSS로 스타일링
  • • SQLite 데이터베이스 사용
  • • Laravel의 기본 라우팅, 컨트롤러, 모델, 마이그레이션 활용
  • • Blade 컴포넌트를 활용한 재사용 가능한 UI 구성
  • • 폼 유효성 검사 포함 (Laravel Validation)
  • • RESTful 라우팅 규칙 준수

프롬프트 레시피

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

1
Step 1
mkdir business-card-manager-laravel && cd business-card-manager-laravel

이 폴더에서 Laravel 13.x 프로젝트를 생성합니다.

다음 작업을 수행해주세요:

1. Laravel 13.x 최신 버전으로 새 프로젝트 생성
2. SQLite 데이터베이스 설정 (.env 파일에서 DB_CONNECTION=sqlite 설정)
3. database/database.sqlite 파일 생성
4. Tailwind CSS 설치 및 설정 (Vite 빌드 도구 사용)
5. 기본 레이아웃 Blade 템플릿 생성 (resources/views/layouts/app.blade.php)
   - Tailwind CSS 포함
   - 네비게이션 바 (홈, 명함 목록, 새 명함 추가 링크)
   - 메인 콘텐츠 영역 (@yield('content'))
   - 깔끔하고 현대적인 디자인

프로젝트가 정상적으로 실행되는지 확인하고, 기본 레이아웃이 브라우저에서 제대로 보이는지 테스트해주세요.

기대 결과: Laravel 13.x 프로젝트가 생성되고, SQLite 데이터베이스가 설정되며, Tailwind CSS가 적용된 기본 레이아웃 템플릿이 완성됩니다. php artisan serve로 서버를 실행하면 네비게이션이 있는 기본 페이지가 표시됩니다.

2
Step 2
명함 데이터를 저장할 데이터베이스 구조를 만들어주세요.

다음 작업을 수행해주세요:

1. BusinessCard 모델 생성 (app/Models/BusinessCard.php)
2. business_cards 테이블 마이그레이션 파일 생성
   - id (primary key)
   - name (string, 필수) - 이름
   - company (string, 필수) - 회사명
   - position (string, nullable) - 직책
   - email (string, nullable) - 이메일
   - phone (string, nullable) - 전화번호
   - memo (text, nullable) - 메모
   - timestamps (created_at, updated_at)
3. 마이그레이션 실행하여 테이블 생성
4. BusinessCard 모델에 $fillable 속성 설정 (mass assignment 보호)

마이그레이션이 성공적으로 실행되었는지 확인해주세요.

기대 결과: BusinessCard 모델과 business_cards 테이블이 생성됩니다. 마이그레이션이 성공적으로 실행되어 SQLite 데이터베이스에 테이블 구조가 만들어집니다.

3
Step 3
명함 관리를 위한 컨트롤러와 기본 라우팅을 설정해주세요.

다음 작업을 수행해주세요:

1. BusinessCardController 생성 (app/Http/Controllers/BusinessCardController.php)
2. RESTful 라우팅 설정 (routes/web.php)
   - GET / : 홈페이지 (환영 메시지)
   - GET /cards : 명함 목록 (index)
   - GET /cards/create : 새 명함 등록 폼 (create)
   - POST /cards : 명함 저장 (store)
   - GET /cards/{id} : 명함 상세 보기 (show)
   - GET /cards/{id}/edit : 명함 수정 폼 (edit)
   - PUT /cards/{id} : 명함 업데이트 (update)
   - DELETE /cards/{id} : 명함 삭제 (destroy)
3. 컨트롤러에 각 메서드의 기본 구조 작성 (아직 구현은 하지 않고 뷰만 리턴)
4. 홈페이지 뷰 생성 (resources/views/welcome.blade.php)
   - 프로젝트 소개
   - "명함 목록 보기" 버튼

라우팅이 제대로 설정되었는지 php artisan route:list로 확인해주세요.

기대 결과: BusinessCardController가 생성되고, RESTful 라우팅이 설정됩니다. 홈페이지에서 명함 관리 시스템 소개와 명함 목록으로 가는 링크가 표시됩니다.

4
Step 4
명함 등록 및 목록 보기 기능을 구현해주세요.

다음 작업을 수행해주세요:

1. 명함 등록 폼 뷰 생성 (resources/views/cards/create.blade.php)
   - 이름, 회사명, 직책, 이메일, 전화번호, 메모 입력 필드
   - Tailwind CSS로 깔끔한 폼 디자인
   - 필수 항목 표시 (이름, 회사명)
   - 취소 버튼 (목록으로 돌아가기)
2. BusinessCardController의 create 메서드 구현 (폼 표시)
3. BusinessCardController의 store 메서드 구현
   - 폼 유효성 검사 (name, company는 필수)
   - 데이터베이스에 저장
   - 성공 메시지와 함께 목록 페이지로 리다이렉트
4. 명함 목록 뷰 생성 (resources/views/cards/index.blade.php)
   - 모든 명함을 카드 형태로 그리드 레이아웃으로 표시
   - 각 카드에 이름, 회사명, 직책 표시
   - 상세보기, 수정, 삭제 버튼
   - "새 명함 추가" 버튼
   - 명함이 없을 때 안내 메시지
5. BusinessCardController의 index 메서드 구현 (모든 명함 조회)

명함을 등록하고 목록에서 확인할 수 있는지 테스트해주세요.

기대 결과: 명함 등록 폼이 작동하고, 입력한 명함이 데이터베이스에 저장됩니다. 명함 목록 페이지에서 등록된 명함들이 카드 형태로 깔끔하게 표시됩니다.

5
Step 5
명함 상세 보기, 수정, 삭제 기능을 완성해주세요.

다음 작업을 수행해주세요:

1. 명함 상세 보기 뷰 생성 (resources/views/cards/show.blade.php)
   - 모든 명함 정보를 보기 좋게 표시
   - 이메일은 클릭하면 mailto: 링크로
   - 전화번호는 클릭하면 tel: 링크로
   - 수정, 삭제, 목록으로 돌아가기 버튼
2. BusinessCardController의 show 메서드 구현
3. 명함 수정 폼 뷰 생성 (resources/views/cards/edit.blade.php)
   - create.blade.php와 유사하지만 기존 데이터가 채워진 상태
   - PUT 메서드 사용 (@method('PUT'))
4. BusinessCardController의 edit 메서드 구현 (수정 폼 표시)
5. BusinessCardController의 update 메서드 구현
   - 폼 유효성 검사
   - 데이터베이스 업데이트
   - 성공 메시지와 함께 상세 페이지로 리다이렉트
6. BusinessCardController의 destroy 메서드 구현
   - 명함 삭제
   - 삭제 확인 JavaScript ("정말 삭제하시겠습니까?")
   - 성공 메시지와 함께 목록 페이지로 리다이렉트
7. Flash 메시지 표시 기능 추가 (레이아웃에 session 메시지 표시)

모든 CRUD 기능이 정상적으로 작동하는지 테스트해주세요.

기대 결과: 명함의 상세 정보를 볼 수 있고, 수정 및 삭제가 정상적으로 작동합니다. 작업 완료 시 적절한 성공 메시지가 표시됩니다. 완전한 CRUD 시스템이 완성됩니다.

6
Step 6
검색 기능과 UI 개선을 추가해주세요.

다음 작업을 수행해주세요:

1. 명함 목록 페이지에 검색 폼 추가
   - 이름 또는 회사명으로 검색할 수 있는 입력 필드
   - 검색 버튼
   - 검색 중일 때 "검색 결과" 표시 및 "전체 보기" 버튼
2. BusinessCardController의 index 메서드에 검색 로직 추가
   - query parameter로 검색어 받기
   - name 또는 company 필드에서 부분 일치 검색 (LIKE)
3. Blade 컴포넌트 생성으로 코드 재사용성 향상
   - resources/views/components/card-item.blade.php (명함 카드 컴포넌트)
   - resources/views/components/form-input.blade.php (폼 입력 필드 컴포넌트)
4. 반응형 디자인 개선
   - 모바일에서도 잘 보이도록 그리드 레이아웃 조정
   - 버튼 크기 및 간격 최적화
5. 빈 상태(Empty State) 개선
   - 명함이 없을 때 일러스트레이션 또는 안내 메시지
   - 검색 결과가 없을 때 "결과 없음" 메시지
6. 명함 개수 표시 (목록 상단에 "총 N개의 명함")

검색 기능이 정상적으로 작동하고, 전체적인 UI가 개선되었는지 확인해주세요.

기대 결과: 명함을 이름이나 회사명으로 검색할 수 있습니다. Blade 컴포넌트를 활용하여 코드가 깔끔해지고, 반응형 디자인으로 모바일에서도 사용하기 편리합니다. 완성도 높은 명함 관리 시스템이 완성됩니다.

제출된 작품 (0)

로그인 후 제출

아직 제출된 작품이 없습니다. 첫 번째 도전자가 되어보세요!

댓글 (0)

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