๐ŸŽจ ์ผ๋Ÿฌ์ŠคํŠธ ์ž‘๊ฐ€ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ถ - ํฌํŠธํด๋ฆฌ์˜ค & ์ž‘์—… ์Šคํƒ€์ผ ์†Œ๊ฐœ ํŽ˜์ด์ง€ - ๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ ๋ ˆ์‹œํ”ผ
์ž…๋ฌธ PHP Laravel AI: Claude

๐ŸŽจ ์ผ๋Ÿฌ์ŠคํŠธ ์ž‘๊ฐ€ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ถ - ํฌํŠธํด๋ฆฌ์˜ค & ์ž‘์—… ์Šคํƒ€์ผ ์†Œ๊ฐœ ํŽ˜์ด์ง€

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ช… illustrator-style-guidebook
์กฐํšŒ์ˆ˜ 130 0๊ฑด ์ œ์ถœ

๋ฌธ์ œ ์„ค๋ช…

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ผ๋Ÿฌ์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์ž์‹ ์˜ ์ž‘์—… ์Šคํƒ€์ผ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์†Œ๊ฐœํ•˜๋Š” ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ถ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋„˜์–ด, ์ž‘๊ฐ€์˜ ๊ทธ๋ฆผ ์Šคํƒ€์ผ(๋ผ์ธ ๋“œ๋กœ์ž‰, ์ˆ˜์ฑ„ํ™”, ๋””์ง€ํ„ธ ํŽ˜์ธํŒ… ๋“ฑ), ์ฃผ๋กœ ๋‹ค๋ฃจ๋Š” ์ฃผ์ œ(์ธ๋ฌผ, ํ’๊ฒฝ, ์บ๋ฆญํ„ฐ ๋“ฑ), ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ, ์ž‘์—… ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•œ๋ˆˆ์— ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋‚˜ ํ˜‘์—… ํŒŒํŠธ๋„ˆ๊ฐ€ ๋ฐฉ๋ฌธํ–ˆ์„ ๋•Œ "์ด ์ž‘๊ฐ€๋Š” ์ด๋Ÿฐ ์Šคํƒ€์ผ๋กœ ์ž‘์—…ํ•˜๋Š”๊ตฌ๋‚˜"๋ฅผ ์ฆ‰์‹œ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ๊ฐ์ ์œผ๋กœ ์ •๋ฆฌ๋œ ๊ฐ€์ด๋“œ๋ถ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ๊ธฐ๋Šฅ

โœ… ๋ฉ”์ธ ํŽ˜์ด์ง€: ์ž‘๊ฐ€ ์†Œ๊ฐœ, ๋Œ€ํ‘œ ์ž‘ํ’ˆ 3~5๊ฐœ ์นด๋“œ ํ˜•ํƒœ๋กœ ์ง„์—ด
โœ… ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€: ์ž‘์—… ์Šคํƒ€์ผ๋ณ„ ์„น์…˜(๋ผ์ธ์•„ํŠธ, ์ปฌ๋Ÿฌ ์ผ๋Ÿฌ์ŠคํŠธ, ์บ๋ฆญํ„ฐ ๋””์ž์ธ ๋“ฑ) ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž‘ํ’ˆ ๋‚˜์—ด
โœ… ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ์„น์…˜: ์ž‘๊ฐ€๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ปฌ๋Ÿฌ ์กฐํ•ฉ์„ ํŒ”๋ ˆํŠธ ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™” (Hex ์ฝ”๋“œ ํฌํ•จ)
โœ… ์ž‘์—… ํ”„๋กœ์„ธ์Šค ํƒ€์ž„๋ผ์ธ: ์Šค์ผ€์น˜ โ†’ ๋ฐ‘๊ทธ๋ฆผ โ†’ ์ฑ„์ƒ‰ โ†’ ์™„์„ฑ ๋‹จ๊ณ„๋ฅผ ์ด๋ฏธ์ง€์™€ ํ•จ๊ป˜ ์„ค๋ช…
โœ… ๋ฌธ์˜ ํผ: ํ˜‘์—… ์ œ์•ˆ์ด๋‚˜ ์ปค๋ฏธ์…˜ ๋ฌธ์˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ํผ (์ด๋ฆ„, ์ด๋ฉ”์ผ, ๋ฉ”์‹œ์ง€)
โœ… ๋ฐ˜์‘ํ˜• ๋””์ž์ธ: ๋ชจ๋ฐ”์ผ์—์„œ๋„ ์ž‘ํ’ˆ์ด ๊น”๋”ํ•˜๊ฒŒ ๋ณด์ด๋„๋ก Tailwind CSS ๊ทธ๋ฆฌ๋“œ ํ™œ์šฉ

๋ณด๋„ˆ์Šค ๊ธฐ๋Šฅ (์„ ํƒ)

๐ŸŽ ์ž‘ํ’ˆ ์นด๋“œ hover ์‹œ ํ™•๋Œ€/๊ทธ๋ฆผ์ž ํšจ๊ณผ
๐ŸŽ ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ํด๋ฆญ ์‹œ Hex ์ฝ”๋“œ ํด๋ฆฝ๋ณด๋“œ ๋ณต์‚ฌ
๐ŸŽ ๋‹คํฌ ๋ชจ๋“œ ์ง€์› (Tailwind dark: ํด๋ž˜์Šค ํ™œ์šฉ)
๐ŸŽ ์ž‘ํ’ˆ ์ƒ์„ธ ๋ชจ๋‹ฌ (ํด๋ฆญ ์‹œ ํฐ ์ด๋ฏธ์ง€ + ์„ค๋ช… ํŒ์—…)
๐ŸŽ ์ž‘์—… ํ”„๋กœ์„ธ์Šค์— before/after ์Šฌ๋ผ์ด๋” ์ถ”๊ฐ€

๊ธฐ์ˆ  ์Šคํƒ

  • ๋ฐฑ์—”๋“œ: Laravel 13.x (Blade ํ…œํ”Œ๋ฆฟ)
  • ํ”„๋ก ํŠธ์—”๋“œ: Tailwind CSS
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: SQLite (๊ฐ„๋‹จํ•œ ์ž‘ํ’ˆ/๋ฌธ์˜ ์ €์žฅ)
  • ์ด๋ฏธ์ง€: ๋กœ์ปฌ storage ๋˜๋Š” public ํด๋”์— ์—…๋กœ๋“œ

ํ•™์Šต ๋ชฉํ‘œ

  • Laravel Blade ์ปดํฌ๋„ŒํŠธ์™€ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ ์ดํ•ด
  • Tailwind CSS ๊ทธ๋ฆฌ๋“œ/ํ”Œ๋ ‰์Šค๋ฐ•์Šค๋กœ ๊ฐค๋Ÿฌ๋ฆฌ UI ๊ตฌํ˜„
  • ๊ฐ„๋‹จํ•œ ํผ ์ฒ˜๋ฆฌ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ (CRUD ๊ธฐ์ดˆ)
  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์›์น™ ์ ์šฉ

์ œ์•ฝ ์กฐ๊ฑด

  • โ€ข Laravel 13.x + Blade ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ (React/Vue ๊ธˆ์ง€)
  • โ€ข Tailwind CSS๋กœ ๋ชจ๋“  ์Šคํƒ€์ผ๋ง ์ฒ˜๋ฆฌ
  • โ€ข SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ (MySQL/PostgreSQL ์„ค์ • ๋ถˆํ•„์š”)
  • โ€ข ์ด๋ฏธ์ง€๋Š” public/images ํด๋”์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ placeholder ์ด๋ฏธ์ง€ ์‚ฌ์šฉ
  • โ€ข ๋ฌธ์˜ ํผ์€ DB์— ์ €์žฅ๋งŒ ํ•˜๊ณ  ์ด๋ฉ”์ผ ๋ฐœ์†ก์€ ์„ ํƒ ์‚ฌํ•ญ
  • โ€ข ์ž‘ํ’ˆ์€ ์ตœ์†Œ 6๊ฐœ ์ด์ƒ ์‹œ๋“œ ๋ฐ์ดํ„ฐ๋กœ ์ค€๋น„
  • โ€ข ๋ชจ๋ฐ”์ผ ๋ฐ˜์‘ํ˜• ํ•„์ˆ˜ (Tailwind์˜ sm:/md:/lg: ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ํ™œ์šฉ)

ํ”„๋กฌํ”„ํŠธ ๋ ˆ์‹œํ”ผ

์•„๋ž˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ AI์—๊ฒŒ ๋ณด๋‚ด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ณต์‚ฌ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”.

1
Step 1
mkdir illustrator-style-guidebook && cd illustrator-style-guidebook

์ด ํด๋”์—์„œ Laravel 13.x ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

# ์ผ๋Ÿฌ์ŠคํŠธ ์ž‘๊ฐ€ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ถ - ์ดˆ๊ธฐ ์„ค์ •

Laravel 13.x ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ธฐ๋ณธ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜์„ธ์š”.

## ์š”๊ตฌ์‚ฌํ•ญ

1. Laravel 13.x ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
2. SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ • (.env ํŒŒ์ผ์—์„œ DB_CONNECTION=sqlite)
3. Tailwind CSS ์„ค์น˜ ๋ฐ ์„ค์ • (Laravel Mix ๋˜๋Š” Vite ์‚ฌ์šฉ)
4. ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ Blade ํŒŒ์ผ ์ƒ์„ฑ (resources/views/layouts/app.blade.php)
   - ํ—ค๋”: ์ž‘๊ฐ€๋ช… ๋กœ๊ณ , ๋„ค๋น„๊ฒŒ์ด์…˜ (Home, Style Guide, Process, Contact)
   - ํ‘ธํ„ฐ: ์†Œ์…œ ๋ฏธ๋””์–ด ๋งํฌ (Instagram, Behance ๋“ฑ)
   - Tailwind CSS CDN ๋˜๋Š” ๋นŒ๋“œ๋œ CSS ํŒŒ์ผ ์—ฐ๊ฒฐ
5. ํ™ˆ ๋ผ์šฐํŠธ ์„ค์ • (routes/web.php์—์„œ '/' ๊ฒฝ๋กœ๋ฅผ welcome ํŽ˜์ด์ง€ ๋Œ€์‹  home์œผ๋กœ ๋ณ€๊ฒฝ)

## ๋””์ž์ธ ๊ฐ€์ด๋“œ

- ์ „์ฒด์ ์œผ๋กœ ๋ฐ๊ณ  ๊น”๋”ํ•œ ๊ฐค๋Ÿฌ๋ฆฌ ๋А๋‚Œ
- ํ—ค๋”๋Š” ํˆฌ๋ช… ๋ฐฐ๊ฒฝ ๋˜๋Š” ํฐ์ƒ‰, ์Šคํฌ๋กค ์‹œ ๊ทธ๋ฆผ์ž ์ถ”๊ฐ€
- ํฐํŠธ: Tailwind ๊ธฐ๋ณธ ํฐํŠธ ๋˜๋Š” Google Fonts (Poppins, Inter ์ถ”์ฒœ)
- ์ƒ‰์ƒ: ํŒŒ์Šคํ…” ํ†ค ๋˜๋Š” ์ž‘๊ฐ€ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์ปฌ๋Ÿฌ ํ™œ์šฉ

์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด `php artisan serve`๋กœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  http://localhost:8000 ์ ‘์† ์‹œ ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ์ด ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: Laravel ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , Tailwind CSS๊ฐ€ ์„ค์ •๋˜๋ฉฐ, ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ Blade ํŒŒ์ผ(ํ—ค๋”/ํ‘ธํ„ฐ ํฌํ•จ)์ด ์ค€๋น„๋ฉ๋‹ˆ๋‹ค. ํ™ˆ ๋ผ์šฐํŠธ ์ ‘์† ์‹œ ๋„ค๋น„๊ฒŒ์ด์…˜์ด ์žˆ๋Š” ๋นˆ ํŽ˜์ด์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

2
Step 2
# ์ž‘ํ’ˆ(Artwork) ๋ชจ๋ธ ๋ฐ ์‹œ๋“œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ

์ž‘๊ฐ€์˜ ์ž‘ํ’ˆ์„ ๊ด€๋ฆฌํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

## ์š”๊ตฌ์‚ฌํ•ญ

1. Artwork ๋ชจ๋ธ ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ƒ์„ฑ
   - `php artisan make:model Artwork -m`
   - ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ:
     - title (string): ์ž‘ํ’ˆ ์ œ๋ชฉ
     - style (string): ์Šคํƒ€์ผ ์นดํ…Œ๊ณ ๋ฆฌ (์˜ˆ: 'line-art', 'watercolor', 'character-design')
     - image_path (string): ์ด๋ฏธ์ง€ ํŒŒ์ผ ๊ฒฝ๋กœ
     - description (text, nullable): ์ž‘ํ’ˆ ์„ค๋ช…
     - hex_colors (json, nullable): ์ž‘ํ’ˆ์— ์‚ฌ์šฉ๋œ ์ฃผ์š” ์ƒ‰์ƒ Hex ์ฝ”๋“œ ๋ฐฐ์—ด
     - is_featured (boolean, default false): ๋ฉ”์ธ ํŽ˜์ด์ง€ ๋Œ€ํ‘œ ์ž‘ํ’ˆ ์—ฌ๋ถ€
     - created_at, updated_at

2. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰
   - `php artisan migrate`

3. Seeder ์ƒ์„ฑ ๋ฐ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
   - `php artisan make:seeder ArtworkSeeder`
   - ์ตœ์†Œ 8๊ฐœ ์ž‘ํ’ˆ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
   - ์Šคํƒ€์ผ์€ 'line-art', 'watercolor', 'digital-painting', 'character-design' ์ค‘ ๊ณจ๊ณ ๋ฃจ ๋ถ„๋ฐฐ
   - is_featured๋Š” 3๊ฐœ ์ž‘ํ’ˆ๋งŒ true๋กœ ์„ค์ •
   - hex_colors๋Š” ์˜ˆ์‹œ: ["#FF6B6B", "#4ECDC4", "#FFE66D"]
   - image_path๋Š” placeholder ์ด๋ฏธ์ง€ ์‚ฌ์šฉ (์˜ˆ: https://via.placeholder.com/600x400)

4. DatabaseSeeder์—์„œ ArtworkSeeder ํ˜ธ์ถœ ์„ค์ •

5. ์‹œ๋“œ ์‹คํ–‰
   - `php artisan db:seed`

์™„๋ฃŒ ํ›„ `php artisan tinker`์—์„œ `Artwork::count()`๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋“ค์–ด๊ฐ”๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: Artwork ๋ชจ๋ธ๊ณผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์ƒ์„ฑ๋˜๊ณ , 8๊ฐœ ์ด์ƒ์˜ ์ƒ˜ํ”Œ ์ž‘ํ’ˆ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘ํ’ˆ์€ ์Šคํƒ€์ผ, ์ด๋ฏธ์ง€, ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

3
Step 3
# ๋ฉ”์ธ ํŽ˜์ด์ง€ ๋ฐ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€ ๊ตฌํ˜„

์ž‘ํ’ˆ์„ ๋ณด์—ฌ์ฃผ๋Š” ํ•ต์‹ฌ ํŽ˜์ด์ง€ 2๊ฐœ๋ฅผ ๋งŒ๋“œ์„ธ์š”.

## ์š”๊ตฌ์‚ฌํ•ญ

### 1. HomeController ์ƒ์„ฑ ๋ฐ ๋ผ์šฐํŠธ ์„ค์ •

- `php artisan make:controller HomeController`
- HomeController์— index ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€
  - is_featured=true์ธ ์ž‘ํ’ˆ 3๊ฐœ ์กฐํšŒํ•˜์—ฌ ๋ทฐ์— ์ „๋‹ฌ
- routes/web.php์—์„œ '/' ๊ฒฝ๋กœ๋ฅผ HomeController@index๋กœ ์—ฐ๊ฒฐ

### 2. ๋ฉ”์ธ ํŽ˜์ด์ง€ (resources/views/home.blade.php)

๋ ˆ์ด์•„์›ƒ:
- ํžˆ์–ด๋กœ ์„น์…˜: ์ž‘๊ฐ€ ์ด๋ฆ„, ์งง์€ ์†Œ๊ฐœ ๋ฌธ๊ตฌ, "์ž‘ํ’ˆ ๋ณด๊ธฐ" CTA ๋ฒ„ํŠผ
- ๋Œ€ํ‘œ ์ž‘ํ’ˆ ์„น์…˜: is_featured ์ž‘ํ’ˆ 3๊ฐœ๋ฅผ ์นด๋“œ ํ˜•ํƒœ๋กœ ๊ฐ€๋กœ ๋ฐฐ์น˜
  - ๊ฐ ์นด๋“œ: ์ด๋ฏธ์ง€, ์ œ๋ชฉ, ์Šคํƒ€์ผ ํƒœ๊ทธ
  - Tailwind grid (md:grid-cols-3) ์‚ฌ์šฉ
  - hover ์‹œ ์นด๋“œ ์‚ด์ง ํ™•๋Œ€ ํšจ๊ณผ (transform scale-105)

### 3. StyleGuideController ์ƒ์„ฑ ๋ฐ ํŽ˜์ด์ง€

- `php artisan make:controller StyleGuideController`
- index ๋ฉ”์„œ๋“œ์—์„œ ๋ชจ๋“  ์ž‘ํ’ˆ์„ style๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ „๋‹ฌ
  - `Artwork::all()->groupBy('style')`
- routes/web.php์— '/style-guide' ๊ฒฝ๋กœ ์ถ”๊ฐ€

### 4. ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€ (resources/views/style-guide.blade.php)

๋ ˆ์ด์•„์›ƒ:
- ํŽ˜์ด์ง€ ์ œ๋ชฉ: "์ž‘์—… ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ"
- ๊ฐ ์Šคํƒ€์ผ๋ณ„ ์„น์…˜ (line-art, watercolor ๋“ฑ)
  - ์„น์…˜ ์ œ๋ชฉ (์˜ˆ: "๋ผ์ธ ์•„ํŠธ")
  - ํ•ด๋‹น ์Šคํƒ€์ผ ์ž‘ํ’ˆ๋“ค์„ grid๋กœ ๋‚˜์—ด (md:grid-cols-3)
  - ๊ฐ ์ž‘ํ’ˆ ์นด๋“œ: ์ด๋ฏธ์ง€, ์ œ๋ชฉ, ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ (์ž‘์€ ์›ํ˜• ์ƒ‰์ƒ ์  3~4๊ฐœ)

### 5. ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ์ปดํฌ๋„ŒํŠธ

- Blade ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ: `php artisan make:component ColorPalette`
- ์ž‘ํ’ˆ์˜ hex_colors ๋ฐฐ์—ด์„ ๋ฐ›์•„ ์ž‘์€ ์›ํ˜• ์ƒ‰์ƒ ์นฉ์œผ๋กœ ํ‘œ์‹œ
- ๊ฐ ์ƒ‰์ƒ ์นฉ์€ ํ•ด๋‹น Hex ์ฝ”๋“œ ๋ฐฐ๊ฒฝ์ƒ‰ ์ ์šฉ

์™„๋ฃŒ ํ›„ ๋ฉ”์ธ ํŽ˜์ด์ง€์™€ /style-guide ํŽ˜์ด์ง€์—์„œ ์ž‘ํ’ˆ์ด ์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: ๋ฉ”์ธ ํŽ˜์ด์ง€์— ๋Œ€ํ‘œ ์ž‘ํ’ˆ 3๊ฐœ๊ฐ€ ์นด๋“œ ํ˜•ํƒœ๋กœ ํ‘œ์‹œ๋˜๊ณ , ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€์—์„œ๋Š” ์Šคํƒ€์ผ๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋œ ์ž‘ํ’ˆ ๊ฐค๋Ÿฌ๋ฆฌ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐ ์ž‘ํ’ˆ ์นด๋“œ์—๋Š” ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ๊ฐ€ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

4
Step 4
# ์ž‘์—… ํ”„๋กœ์„ธ์Šค ํŽ˜์ด์ง€ ๋ฐ ๋ฌธ์˜ ํผ ๊ตฌํ˜„

์ž‘๊ฐ€์˜ ์ž‘์—… ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€์™€ ํ˜‘์—… ๋ฌธ์˜๋ฅผ ๋ฐ›๋Š” ํผ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

## ์š”๊ตฌ์‚ฌํ•ญ

### 1. ์ž‘์—… ํ”„๋กœ์„ธ์Šค ํŽ˜์ด์ง€

- ProcessController ์ƒ์„ฑ: `php artisan make:controller ProcessController`
- routes/web.php์— '/process' ๊ฒฝ๋กœ ์ถ”๊ฐ€
- resources/views/process.blade.php ์ƒ์„ฑ

๋ ˆ์ด์•„์›ƒ:
- ํŽ˜์ด์ง€ ์ œ๋ชฉ: "์ž‘์—… ํ”„๋กœ์„ธ์Šค"
- ํƒ€์ž„๋ผ์ธ ํ˜•ํƒœ๋กœ 4๋‹จ๊ณ„ ํ‘œ์‹œ (Tailwind๋กœ ์„ธ๋กœ ๋ผ์ธ ์—ฐ๊ฒฐ)
  1. ์Šค์ผ€์น˜ ๋‹จ๊ณ„: ์ด๋ฏธ์ง€ + ์„ค๋ช… ํ…์ŠคํŠธ
  2. ๋ฐ‘๊ทธ๋ฆผ ๋‹จ๊ณ„: ์ด๋ฏธ์ง€ + ์„ค๋ช… ํ…์ŠคํŠธ
  3. ์ฑ„์ƒ‰ ๋‹จ๊ณ„: ์ด๋ฏธ์ง€ + ์„ค๋ช… ํ…์ŠคํŠธ
  4. ์™„์„ฑ ๋‹จ๊ณ„: ์ด๋ฏธ์ง€ + ์„ค๋ช… ํ…์ŠคํŠธ
- ๊ฐ ๋‹จ๊ณ„๋Š” ์นด๋“œ ํ˜•ํƒœ๋กœ, ์ด๋ฏธ์ง€๋Š” placeholder ๋˜๋Š” ์‹ค์ œ ์ž‘์—… ๊ณผ์ • ์ด๋ฏธ์ง€ ์‚ฌ์šฉ
- ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ํƒ€์ž„๋ผ์ธ์ด ์„ธ๋กœ๋กœ ์Œ“์ด๋„๋ก ๋ฐ˜์‘ํ˜• ์ฒ˜๋ฆฌ

### 2. ๋ฌธ์˜(Inquiry) ๋ชจ๋ธ ๋ฐ ํผ

- Inquiry ๋ชจ๋ธ ์ƒ์„ฑ: `php artisan make:model Inquiry -m`
- ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ:
  - name (string): ๋ฌธ์˜์ž ์ด๋ฆ„
  - email (string): ์ด๋ฉ”์ผ
  - message (text): ๋ฌธ์˜ ๋‚ด์šฉ
  - created_at, updated_at
- ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰

- ContactController ์ƒ์„ฑ: `php artisan make:controller ContactController`
- routes/web.php์— '/contact' GET, POST ๋ผ์šฐํŠธ ์ถ”๊ฐ€
- resources/views/contact.blade.php ์ƒ์„ฑ

๋ฌธ์˜ ํผ ๋ ˆ์ด์•„์›ƒ:
- ํŽ˜์ด์ง€ ์ œ๋ชฉ: "ํ˜‘์—… ๋ฌธ์˜"
- ํผ ํ•„๋“œ: ์ด๋ฆ„, ์ด๋ฉ”์ผ, ๋ฉ”์‹œ์ง€ (textarea)
- ์ œ์ถœ ๋ฒ„ํŠผ: "๋ฌธ์˜ํ•˜๊ธฐ"
- POST ์š”์ฒญ ์ฒ˜๋ฆฌ:
  - ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ (name, email required, email format)
  - Inquiry ๋ชจ๋ธ์— ์ €์žฅ
  - ์„ฑ๊ณต ์‹œ "๋ฌธ์˜๊ฐ€ ์ ‘์ˆ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค" ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ํผ ์ดˆ๊ธฐํ™”
  - Tailwind alert ์ปดํฌ๋„ŒํŠธ๋กœ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ ํ‘œ์‹œ

### 3. ๋„ค๋น„๊ฒŒ์ด์…˜ ๋งํฌ ์—…๋ฐ์ดํŠธ

- layouts/app.blade.php ํ—ค๋”์— Process, Contact ๋งํฌ ์ถ”๊ฐ€
- ํ˜„์žฌ ํŽ˜์ด์ง€ ํ™œ์„ฑํ™” ์Šคํƒ€์ผ ์ ์šฉ (Tailwind์˜ @if(request()->is('process')) ๋“ฑ ํ™œ์šฉ)

์™„๋ฃŒ ํ›„ ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ๋„ค๋น„๊ฒŒ์ด์…˜์„ ํ†ตํ•ด ์ •์ƒ์ ์œผ๋กœ ์ด๋™๋˜๊ณ , ๋ฌธ์˜ ํผ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: ์ž‘์—… ํ”„๋กœ์„ธ์Šค ํŽ˜์ด์ง€์— 4๋‹จ๊ณ„ ํƒ€์ž„๋ผ์ธ์ด ํ‘œ์‹œ๋˜๊ณ , ๋ฌธ์˜ ํŽ˜์ด์ง€์—์„œ ํผ ์ œ์ถœ ์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋ฉฐ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ํ—ค๋” ๋„ค๋น„๊ฒŒ์ด์…˜์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ œ์ถœ๋œ ์ž‘ํ’ˆ (0)

๋กœ๊ทธ์ธ ํ›„ ์ œ์ถœ

์•„์ง ์ œ์ถœ๋œ ์ž‘ํ’ˆ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋„์ „์ž๊ฐ€ ๋˜์–ด๋ณด์„ธ์š”!

๋Œ“๊ธ€ (0)

๋กœ๊ทธ์ธ ํ›„ ๋Œ“๊ธ€์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„์ง ๋Œ“๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋Œ“๊ธ€์„ ๋‚จ๊ฒจ๋ณด์„ธ์š”!