Skip to content

JeonSuna/nova-fe

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

505 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒŸ NOVA



โœ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

์ถ”ํ›„ ์ถ”๊ฐ€ ์˜ˆ์ •


๐Ÿƒโ€โ™‚๏ธ FE ํŒ€์› ์†Œ๊ฐœ

๋ฆฌ๋“œ

์ •์ฐฌ์›

ํŒ€์›

๊น€์ง„์„ฑ ์ „์„ ์•„ ์ž„์ง€์€

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ


๐Ÿ“Œ ์ปค๋ฐ‹ ์ „๋žต (Commit Strategy)

์ปค๋ฐ‹ ์œ ํ˜• (Commit Type)

์ปค๋ฐ‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๋ฅ˜ํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

์ด๋ชจ์ง€ ์ปค๋ฐ‹ ์œ ํ˜• ์ฝ”๋“œ ์ž‘์—… ๋‚ด์šฉ
โœจ feat :sparkles: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
๐Ÿ› fix :bug: ๋ฒ„๊ทธ ์ˆ˜์ •
๐Ÿ’„ style :lipstick: CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ
๐Ÿ’ฌ chore :speech_balloon: ์ฝ”๋“œ์— ์˜ํ–ฅ ์—†๋Š” ๋ณ€๊ฒฝ (์˜คํƒ€, ๋ณ€์ˆ˜๋ช… ๋“ฑ)
โ™ป๏ธ refactor :recycle: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (๊ตฌ์กฐ ๊ฐœ์„ )
๐Ÿ’ก chore :bulb: ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
๐Ÿ“ docs :memo: ๋ฌธ์„œ ์ˆ˜์ • (README ๋“ฑ)
โœ… test :white_check_mark: ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€, ํ…Œ์ŠคํŠธ ๋ฆฌํŒฉํ† ๋ง
๐Ÿ“ฆ chore :package: ๋นŒ๋“œ or ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •
๐Ÿšš chore :truck: ํŒŒ์ผ/ํด๋”๋ช… ์ถ”๊ฐ€/์ˆ˜์ •
๐Ÿ”ฅ chore :fire: ํŒŒ์ผ/ํด๋” ์‚ญ์ œ
๐ŸŽ‰ chore :tada: ํ”„๋กœ์ ํŠธ ์‹œ์ž‘
โš™๏ธ chore :gear: ์„ค์ • ํŒŒ์ผ ์ˆ˜์ • ๋ฐ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ

์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ์ž‘์„ฑ ๊ทœ์น™

  1. ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•œ๋‹ค. (๋„์–ด์“ฐ๊ธฐ ๋ฐ ํ˜•์‹ ์ฐธ๊ณ )

    <์ด๋ชจ์ง€> <์ปค๋ฐ‹ ์œ ํ˜•>: <์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€>
    
  2. ์ปค๋ฐ‹ ์œ ํ˜•์€ ๋ฐ˜๋“œ์‹œ ์˜๋ฌธ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•œ๋‹ค.

  3. ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋Š” โ€œ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋…๋ฆฝ์ ์ธ ์ž‘์—…โ€์„ ์ถ”๊ฐ€ ํ˜น์€ ๋ณ€๊ฒฝํ•  ๋•Œ ์ž‘์„ฑํ•œ๋‹ค.

    • ๋…๋ฆฝ์ ์œผ๋กœ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•  ๋•Œ
    • ๋กค๋ฐฑ์‹œ ์ตœ์†Œํ•œ์˜ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋‹จ์œ„

๐Ÿ“Œ ๋ธŒ๋žœ์น˜ ์ „๋žต (Branch Strategy)

๋ธŒ๋žœ์น˜ ์œ ํ˜• (Branch Type)

  • main : ๋ฐฐํฌ์šฉ ๋ธŒ๋žœ์น˜
    • ์‹ค์ œ ์„œ๋น„์Šค์— ๋ฐฐํฌ๋˜๋Š” ์ฝ”๋“œ๋งŒ ํฌํ•จ
    • ์ง์ ‘ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š๊ณ  dev ๋˜๋Š” fix ๋“ฑ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ‘ํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ
  • dev : ๊ฐœ๋ฐœ ํ†ตํ•ฉ ๋ธŒ๋žœ์น˜
    • main ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ
    • ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ๊ฐœ๋ฐœ๋˜๊ณ  ํ†ตํ•ฉ๋˜๋Š” ๋ธŒ๋žœ์น˜
    • feature ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ด ๊ณณ์œผ๋กœ ๋ณ‘ํ•ฉ
    • ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธํ•œ ํ›„ main์œผ๋กœ ๋ฐฐํฌ
  • feature/#์ด์Šˆ๋ฒˆํ˜ธ-๊ธฐ๋Šฅ๋ช… : ์‹ ๊ทœ UI ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜
    • dev ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ๋˜์–ด ์ปดํฌ๋„ŒํŠธ ๋ฐ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœ
    • ๊ฐœ๋ฐœ ์™„๋ฃŒ ํ›„ dev๋กœ ๋ณ‘ํ•ฉ
  • service/#์ด์Šˆ๋ฒˆํ˜ธ-๊ธฐ๋Šฅ๋ช… : ์‹ ๊ทœ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜
    • dev ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ๋˜์–ด ๊ธฐ๋Šฅ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœ
    • ๊ฐœ๋ฐœ ์™„๋ฃŒ ํ›„ dev๋กœ ๋ณ‘ํ•ฉ
  • fix/#์ด์Šˆ๋ฒˆํ˜ธ-๊ธฐ๋Šฅ๋ช… : ๋ฒ„๊ทธ ์ˆ˜์ •์šฉ ๋ธŒ๋žœ์น˜
    • dev ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ ๋ฐœ๊ฒฌ๋œ ๋ฒ„๊ทธ ์ˆ˜์ •
      • ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •์‹œ, ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉ ํ›„, ๋ถ„๊ธฐํ•˜์—ฌ ๋ฒ„๊ทธ ์ˆ˜์ •
    • ์ˆ˜์ • ์™„๋ฃŒ ํ›„ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ
  • refactor/#์ด์Šˆ๋ฒˆํ˜ธ-๊ธฐ๋Šฅ๋ช… : ๋ฆฌํŒฉํ† ๋ง์šฉ ๋ธŒ๋žœ์น˜
    • dev ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐํ•˜์—ฌ ์ฝ”๋“œ ๊ตฌ์กฐ ๊ฐœ์„  ๋ฐ ๋ฆฌํŒฉํ† ๋ง ์ˆ˜ํ–‰
      • ๊ธฐ๋Šฅ ๋‹จ์œ„ ๋ฆฌํŒฉํ† ๋ง ์‹œ, ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉ ํ›„ ๋ถ„๊ธฐํ•˜์—ฌ ๋ฆฌํŒฉํ† ๋ง ์ˆ˜ํ–‰
    • ๋ฆฌํŒฉํ† ๋ง ์™„๋ฃŒ ํ›„ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ

๋ธŒ๋žœ์น˜ ๊ทœ์น™ (Branching Rule)

  1. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์€ ๋ฐ˜๋“œ์‹œ feature ๋ฐ service ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœํ•œ๋‹ค.
  2. ๊ฐœ๋ฐœ ์™„๋ฃŒ ์‹œ dev ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค.
    • ๋ธŒ๋žœ์น˜๋ช…์€ camelCase ๋ฅผ ์‚ฌ์šฉ
      ex) feature/#1-loginPage
  3. ๋ชจ๋“  QA ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ • ์™„๋ฃŒ ์‹œ dev์œผ๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค.
  4. ๊ธด๊ธ‰ ์ˆ˜์ •์€ hotfix ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰ ํ›„, ๋ณ‘ํ•ฉํ•œ๋‹ค.

๐Ÿ—‚๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

FSD ๊ตฌ์กฐ ํ™œ์šฉ

app/
โ”œโ”€ (pages)                    # Public Layout
โ”‚  โ”œโ”€ _providers/
โ”‚  โ”‚   โ””โ”€ ThemeProvider.tsx
โ”‚  โ”œโ”€ login/
โ”‚  โ”‚   โ””โ”€ page.tsx
โ”‚  โ”œโ”€โ”€ onboarding/
โ”‚  โ”‚   โ””โ”€ page.tsx
โ”‚  โ””โ”€ layout.tsx
โ”‚
โ”œโ”€ (protected)                # Protected Layout
โ”‚  โ”œโ”€ trend/
โ”‚  โ”‚   โ””โ”€ page.tsx
โ”‚  โ”œโ”€ saved/
โ”‚  โ”‚   โ””โ”€ page.tsx
โ”‚  โ””โ”€ profile/
โ”‚  โ”‚   โ””โ”€ page.tsx
โ”‚  โ”œโ”€ page.tsx
โ”‚  โ””โ”€ layout.tsx              # home/saved/mypage ๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ (ํ—ค๋”/ํƒญ/์‚ฌ์ด๋“œ๋ฐ” ๋“ฑ)
โ”‚
โ”œโ”€ layout.tsx                 # ์ตœ์ƒ์œ„ ๋ฃจํŠธ ๋ ˆ์ด์•„์›ƒ (html/body, providers ๋“ฑ)
โ””โ”€ page.tsx                   # (์„ ํƒ) ๋ฃจํŠธ ์ ‘๊ทผ ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์šฉ
widgets/                      # ์œ„์ ฏ ์ปดํฌ๋„ŒํŠธ (ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ ์š”์†Œ)
โ”œโ”€โ”€ layout/                   # ๋ ˆ์ด์•„์›ƒ ๊ด€๋ จ ์œ„์ ฏ๋“ค
โ”‚   โ”œโ”€โ”€ Header/               # ํ—ค๋” ์œ„์ ฏ
โ”‚   โ”œโ”€โ”€ โ”œโ”€โ”€ model/            # ํ—ค๋” ์ƒํƒœ ๊ด€๋ฆฌ
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts          # ํ—ค๋” Export
โ”‚   โ”‚   โ”œโ”€โ”€ Header.tsx        # ํ—ค๋” ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ Sidebar/
โ”‚   โ”œโ”€โ”€ โ”œโ”€โ”€ index.ts
โ”‚   โ”œโ”€โ”€ โ”œโ”€โ”€ model/
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ””โ”€โ”€ ...
features/                      # ํŽ˜์ด์ง€๋ณ„(๊ธฐ๋Šฅ๋ณ„)๋กœ ๊ตฌ์„ฑ๋œ ํด๋” (๋…๋ฆฝ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI ํฌํ•จ)
โ”œโ”€โ”€ login/                     # ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ
โ”‚   โ”œโ”€โ”€ api/                   # ๋กœ๊ทธ์ธ ๊ด€๋ จ API ํ†ต์‹  ๋ชจ๋“ˆ
โ”‚   โ”œโ”€โ”€ ui/                    # ๋กœ๊ทธ์ธ ๊ด€๋ จ UI ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚    โ””โ”€โ”€ LoginForm.tsx
โ”‚   โ”œโ”€โ”€ model/                 # ๋กœ๊ทธ์ธ ๊ด€๋ จ ์ƒํƒœ ๊ด€๋ฆฌ
โ”‚   โ”œโ”€โ”€ types/                 # ๋กœ๊ทธ์ธ ๊ด€๋ จ ํƒ€์ž… ์ •์˜ (TypeScript)
โ”‚   โ”œโ”€โ”€ utils/                 # ๋กœ๊ทธ์ธ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”‚   โ”œโ”€โ”€ index.ts               # ๋ชจ๋“ˆ๋ณ„๋กœ export ์ •๋ฆฌ
โ”‚   โ”œโ”€โ”€ ...                    # ๊ธฐํƒ€ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ onboarding/            # ์˜จ๋ณด๋”ฉ ๊ธฐ๋Šฅ
โ”‚   โ”‚   โ”œโ”€โ”€ api/               # ์˜จ๋ณด๋”ฉ ๊ด€๋ จ API ํ†ต์‹  ๋ชจ๋“ˆ
โ”‚   โ”‚   โ”œโ”€โ”€ ui/                # ์˜จ๋ณด๋”ฉ ๊ด€๋ จ UI ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Step1Card.tsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Step2Card.tsx
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”‚   โ”œโ”€โ”€ models/            # ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ์ƒํƒœ ๊ด€๋ฆฌ
โ”‚   โ”‚   โ”œโ”€โ”€ types/             # ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ํƒ€์ž… ์ •์˜ (TypeScript)
โ”‚   โ”‚   โ”œโ”€โ”€ utils/             # ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts           # ๋ชจ๋“ˆ๋ณ„๋กœ export ์ •๋ฆฌ
โ”‚   โ”‚   โ””โ”€โ”€ ...                # ๊ธฐํƒ€ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค
โ”‚   โ””โ”€โ”€ ...                    # ๊ธฐํƒ€ ๊ธฐ๋Šฅ๋“ค (home, saved, profile, trend)
shared/                      # ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ, ์ปดํฌ๋„ŒํŠธ, ํ›… ๋“ฑ
โ”œโ”€โ”€ assets/                  # ๊ณตํ†ต svg ํŒŒ์ผ๋“ค
โ”œโ”€โ”€ utils/                   # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”‚   โ””โ”€โ”€ cn.ts                # cn ํ•จ์ˆ˜
โ”‚
โ”œโ”€โ”€ hooks/                   # ๊ณตํ†ต ์ปค์Šคํ…€ ํ›…
โ”œโ”€โ”€ ui/                      # ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ UI
โ”œโ”€โ”€ types/                   # ์ „์—ญ ํƒ€์ž… ์ •์˜
โ”œโ”€โ”€ index.ts                 # ๋ชจ๋“ˆ๋ณ„๋กœ export ์ •๋ฆฌ
โ””โ”€โ”€ ...


โ“ Next.js ์‚ฌ์šฉ ์ด์œ 

NOVA๋Š” AI ํŠธ๋ Œ๋“œ, ์ฐจํŠธ, ๋‰ด์Šค ๋“ฑ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€๊ฐ€ ๋งŽ์€ ์„œ๋น„์Šค๋กœ, ๋น ๋ฅธ ์ดˆ๊ธฐ ๋กœ๋”ฉ, SEO ์ตœ์ ํ™”, ๊ทธ๋ฆฌ๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. Next.js๋Š” ํŒŒ์ผ ๊ธฐ๋ฐ˜๊ณผ ๋™์  ๋ผ์šฐํŒ…์„ ์ง€์›ํ•ด ํŽ˜์ด์ง€ ๊ตฌ์กฐ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ณ , ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR)๊ณผ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ(SSG)์„ ํ†ตํ•ด ๋น ๋ฅธ ์ดˆ๊ธฐ ๋กœ๋”ฉ๊ณผ SEO ์ตœ์ ํ™”๋ฅผ ๋™์‹œ์— ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ ๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ ์žฌ์‚ฌ์šฉ๊ณผ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ํƒ์ƒ‰๊นŒ์ง€ ๊ฐ€๋Šฅํ•ด ์œ ์ง€๋ณด์ˆ˜์™€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋›ฐ์–ด๋‚˜๋ฉฐ, AI ํŠธ๋ Œ๋“œ ์ธ์‚ฌ์ดํŠธ ํ”Œ๋žซํผ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ์™€ ํŽ˜์ด์ง€๊ฐ€ ๋งŽ์€ ์„œ๋น„์Šค์— ์ตœ์ ํ™”๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

01 SSR(Server-Side Rendering) ์ง€์›์œผ๋กœ ๋น ๋ฅธ ์ดˆ๊ธฐ ๋กœ๋”ฉ

AI ํŠธ๋ Œ๋“œ, ์ฐจํŠธ, ๋‰ด์Šค ๋“ฑ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ”Œ๋žซํผ์€ ๋น ๋ฅธ ์ดˆ๊ธฐ ๋ Œ๋”๋ง์ด ์ค‘์š”ํ•˜๋‹ค.

  • Next.js๋Š” ์„œ๋ฒ„์—์„œ HTML์„ ๋ฏธ๋ฆฌ ๋ Œ๋”๋งํ•ด ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „๋‹ฌ
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ฒ˜์Œ ํŽ˜์ด์ง€๋ฅผ ์—ด ๋•Œ ์ฝ˜ํ…์ธ ๊ฐ€ ๋ฐ”๋กœ ๋ณด์—ฌ์ง
    • SEO์— ์œ ๋ฆฌ (๊ฒ€์ƒ‰ ์—”์ง„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋กœ ๋…ธ์ถœ๋จ)

02 SSG(Static Site Generation)์œผ๋กœ ๋น ๋ฅธ ์„ฑ๋Šฅ๊ณผ ๋น„์šฉ ์ ˆ๊ฐ

  • ๋งž์ถคํ˜• AI ์š”์•ฝ ํ”ผ๋“œ, ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ๊ธฐ์ˆ  ์Šคํƒ ์ˆœ์œ„ ๊ฐ™์€ ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ฝ˜ํ…์ธ ๋Š” ๋นŒ๋“œ ์‹œ ๋ฏธ๋ฆฌ HTML๋กœ ์ƒ์„ฑ
    • ์„œ๋ฒ„ ์š”์ฒญ ์ตœ์†Œํ™” โ†’ ๋น„์šฉ ์ ˆ๊ฐ
    • CDN ์บ์‹ฑ์„ ํ†ตํ•œ ๋น ๋ฅธ ์‘๋‹ต
    • ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์—๋„ ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ ์œ ์ง€

03. App Router & Server Components ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜

  • Next.js App Router ๊ธฐ๋ฐ˜์œผ๋กœ ๋ ˆ์ด์•„์›ƒ / ํŽ˜์ด์ง€ ๊ตฌ์กฐ๋ฅผ ๊ณ„์ธต์ ์œผ๋กœ ๊ด€๋ฆฌ
  • Server Components๋ฅผ ํ™œ์šฉํ•œ
    • ๋ถˆํ•„์š”ํ•œ ํด๋ผ์ด์–ธํŠธ JS ๋ฒˆ๋“ค ๊ฐ์†Œ
    • ์ดˆ๊ธฐ ๋กœ๋”ฉ ์„ฑ๋Šฅ ๊ฐœ์„ 
  • Streaming, Suspense๋ฅผ ํ™œ์šฉํ•œ ์ ์ง„์  ๋ Œ๋”๋ง ๊ตฌ์กฐ ์„ค๊ณ„
  • AI ํŠธ๋ Œ๋“œ ์‹œ๊ฐํ™”, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ UI ๊ตฌํ˜„์— ์ตœ์ 

04 ๋ผ์šฐํŒ…๊ณผ ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ ์šฉ์ด

  • ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…์œผ๋กœ URL ๊ตฌ์กฐ ์ž๋™ ๊ด€๋ฆฌ
  • ๋™์  ๋ผ์šฐํŒ… ์ง€์›์œผ๋กœ AI ์ธ์‚ฌ์ดํŠธ, ๋‰ด์Šค ๋“ฑ ํŽ˜์ด์ง€ ์ž๋™ ์ƒ์„ฑ ๊ฐ€๋Šฅ
  • ๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ ์žฌ์‚ฌ์šฉ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜ ํšจ์œจ โ†‘
  • Link๋ฅผ ํ†ตํ•œ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ํƒ์ƒ‰์œผ๋กœ ํŽ˜์ด์ง€ ์ „ํ™˜ ์†๋„ ํ–ฅ์ƒ

05 SEO ์นœํ™”์ 

  • SSR/SSG๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰ ์—”์ง„์ด ์ฝ˜ํ…์ธ ๋ฅผ ์‰ฝ๊ฒŒ ์ฝ๋„๋ก ์ตœ์ ํ™” ๊ฐ€๋Šฅ
  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ์˜คํ”ˆ๊ทธ๋ž˜ํ”„ ์„ค์ •๋„ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ œ์–ด ๊ฐ€๋Šฅ

06 ๋ฐฐํฌ์™€ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›€

  • Vercel๊ณผ ์—ฐ๋™ํ•˜๋ฉด ์ž๋™ ๋นŒ๋“œ + ๋ฐฐํฌ
  • ์„œ๋ฒ„ ๊ด€๋ฆฌ ์ตœ์†Œํ™” โ†’ ๊ฐœ๋ฐœ์ž๊ฐ€ AI ๋ฐ์ดํ„ฐ, ๊ธฐ๋Šฅ ๊ฐœ์„ ์— ์ง‘์ค‘ ๊ฐ€๋Šฅ


๐Ÿงจ Trouble Shooting

๋””์ž์ธ ์‹œ์Šคํ…œ ์ ์šฉ ๋ฐ ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ ์„ค๊ณ„ ๋ฌธ์ œ

๋ฌธ์ œ

  • ๋””์ž์ด๋„ˆ๊ฐ€ Figma์— ์„ค๊ณ„ํ•œ ๋””์ž์ธ ์‹œ์Šคํ…œ์ด ๋งค์šฐ ์„ธ๋ถ„ํ™”๋˜์–ด ์žˆ์—ˆ๊ณ ,
    ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๊ธฐ์—๋Š” variant, size, state ์กฐํ•ฉ์ด ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•œ ๊ตฌ์กฐ์˜€๋‹ค.
  • โ€œ์–ด๋””๊นŒ์ง€๋ฅผ ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ค๊ณ , ์–ด๋””๊นŒ์ง€๋ฅผ variant๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€โ€ ์— ๋Œ€ํ•œ ํŒ€ ๋‚ด ๊ธฐ์ค€์ด ์—†์–ด ๊ตฌ์กฐ ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋งŽ์€ ํ˜ผ๋ž€์ด ์žˆ์—ˆ๋‹ค.

์›์ธ

  • ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ์ž˜ ์„ค๊ณ„๋˜์–ด ์žˆ์—ˆ์ง€๋งŒ,
    ์ด๋ฅผ ์ฝ”๋“œ ๊ตฌ์กฐ๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ทœ์น™์ด ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์•˜๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ ์ถ”์ƒํ™” ์ˆ˜์ค€์— ๋Œ€ํ•œ ํŒ€ ๋‚ด ํ•ฉ์˜ ๋ถ€์กฑ
  • Tailwind + CVA๋ฅผ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉํ• ์ง€์— ๋Œ€ํ•œ ๊ฒฝํ—˜ ๋ถ€์กฑ

ํ•ด๊ฒฐ ๊ณผ์ •

  • ํŒ€ ๋‚ด์—์„œ ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ๋‹ค์‹œ ๋ถ„์„ํ•˜๋Š” ํšŒ์˜๋ฅผ ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ์ง„ํ–‰ํ–ˆ๋‹ค.
    • โ€œ์ด ์ปดํฌ๋„ŒํŠธ๋Š” ๋…๋ฆฝ ์ปดํฌ๋„ŒํŠธ์ธ๊ฐ€?โ€
    • โ€œ์ด ์˜ต์…˜์€ ์ง„์งœ ํ•„์š”ํ•œ๊ฐ€?โ€
  • Class Variance Authority(CVA)๋ฅผ ๋„์ž…ํ–ˆ๋‹ค.
    • variant / size / state ๊ธฐ์ค€์œผ๋กœ ์Šคํƒ€์ผ ์ฒด๊ณ„๋ฅผ ์žฌ์ •์˜
    • compoundVariants๋ฅผ ํ™œ์šฉํ•ด ๋ณตํ•ฉ ์กฐ๊ฑด์„ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ
  • ์•„๋ž˜ ๋ ˆํผ๋Ÿฐ์Šค๋“ค์„ ์ฐธ๊ณ ํ•ด ํŒ€ ๋‚ด ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฝํ–ˆ๋‹ค.

๊ฒฐ๊ณผ

  • ๋””์ž์ธ ์‹œ์Šคํ…œ๊ณผ ์ฝ”๋“œ ๊ตฌ์กฐ๊ฐ€ 1:1๋กœ ๋งค์นญ๋˜๋Š” ์ฒด๊ณ„๋ฅผ ํ™•๋ฆฝํ–ˆ๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ ์ˆ˜์ • ์‹œ
    • ํ•œ ๊ณณ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ์ „์ฒด ๋ฐ˜์˜๋˜๋Š” ๊ตฌ์กฐ ์™„์„ฑ
  • ์‹ ๊ทœ UI ๊ฐœ๋ฐœ ์‹œ
    • ๊ธฐ์กด ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ๋งŒ์œผ๋กœ ๋น ๋ฅธ ๊ตฌํ˜„ ๊ฐ€๋Šฅ


๐Ÿ—“๏ธ ํ”„๋กœ์ ํŠธ ์ผ์ •

ํ”Œ๋žซํผ ๊ฐœ๋ฐœ ์ผ์ •์€ ์Šคํ”„๋ฆฐํŠธ ๋‹จ์œ„๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋ณ„ ๋ชฉํ‘œ์™€ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋ช…ํ™•ํžˆ ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ”„๋ฆฐํŠธ ๊ธฐ๊ฐ„ ๋ชฉํ‘œ / ์ฃผ์š” ์ž‘์—… ์ƒํƒœ
1์ฐจ ์Šคํ”„๋ฆฐํŠธ ~2026-01-18 - ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ธํŒ…
- ๋ผ์šฐํŒ… ๊ตฌ์กฐ ์„ค๊ณ„
- ๊ณตํ†ต UI ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„
- ๋””์ž์ธ ์‹œ์Šคํ…œ ์ดˆ๊ธฐ ์„ธํŒ… (cn, cva)
์™„๋ฃŒ
2์ฐจ ์Šคํ”„๋ฆฐํŠธ ~2026-02-01 - UI ๋ฐ ๊ตฌ์กฐ ๊ตฌํ˜„
- ์ปดํฌ๋„ŒํŠธ UI ๊ตฌํ˜„
- ํŽ˜์ด์ง€ UI ๊ตฌํ˜„
- API ์—ฐ๋™ ๊ตฌ์กฐ ์ค€๋น„
- ๋กœ๋”ฉ / ๋นˆ ์ƒํƒœ UI ์—ฐ๊ฒฐ
- ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๊ตฌํ˜„
์ง„ํ–‰์ค‘
2.5์ฐจ ์Šคํ”„๋ฆฐํŠธ ~2026-02-07 - API ์—ฐ๋™ ๋งˆ๋ฌด๋ฆฌ
- ์ฃผ์š” API ์—ฐ๋™ 80% ์™„๋ฃŒ
์˜ˆ์ •
3์ฐจ ์Šคํ”„๋ฆฐํŠธ ~2026-02-15 - ์™„์„ฑ๋„ ๋ฐ ํ’ˆ์งˆ ๊ฐœ์„ 
- UX ๊ฐœ์„ 
- ์˜ˆ์™ธ ์ผ€์ด์Šค ์ฒ˜๋ฆฌ
- ์ฝ˜์†” ์—๋Ÿฌ ์ œ๊ฑฐ
- ๋ฐ๋ชจ ์‹œ๋‚˜๋ฆฌ์˜ค ์ ๊ฒ€
- QA ๋ฐ˜์˜
์˜ˆ์ •

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 87.0%
  • CSS 12.6%
  • JavaScript 0.4%