Skip to content

kitworks-kiring/kiring-frontend

Repository files navigation

Kiring: ํšŒ์‚ฌ ์ƒํ™œ์˜ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ

๋Œ€ํ‘œ ์ด๋ฏธ์ง€

์˜ค๋Š˜ ์ ์‹ฌ์—๋Š” ๋ฌด์—‡์„ ๋จน์„์ง€, ์ผ์ •์„ ํ•œ ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์—†์„์ง€, ํ‡ด๊ทผ์€ ๋˜ ์–ด๋–ป๊ฒŒ ํ• ์ง€.. ํšŒ์‚ฌ์›์ด๋ผ๋ฉด ํ•œ๋ฒˆ ์ฏค ํ•ด๋ณธ ๊ณ ๋ฏผ๋“ค์ž…๋‹ˆ๋‹ค.

ํ‚ค๋ง์€ ํšŒ์‚ฌ ๊ทผ์ฒ˜ ์‹๋‹น ๋ฆฌ์ŠคํŠธ, ๊ตํ†ต ์ •๋ณด, ์บ˜๋ฆฐํ„ฐ, ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ ๋“ฑ ํšŒ์‚ฌ ์ƒํ™œ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ํ•œ ๊ณณ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํšŒ์‚ฌ ์ƒํ™œ์„ ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์˜ฌ์ธ์› ํ”Œ๋žซํผ ํ‚ค๋ง์—์„œ, ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•ด๋ณด์„ธ์š”!


1๏ธโƒฃ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ์Šคํƒ

FE ๊ธฐ์ˆ  ์Šคํƒ

์Šคํƒ ๋ฒ„์ „ ์„ ์ • ์ด์œ  ๋ฐ ํšจ๊ณผ
Next.js 15.3.1 ยท ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง๊ณผ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ์„ ๋ชจ๋‘ ์ง€์›ํ•ด ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ, App Routes๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ์ด ํ•„์š”ํ•œ API Key๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์„œ๋ฒ„ ์ธก์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ยท ์ž๋™ ์ตœ์ ํ™”์™€ ๋น ๋ฅธ ๊ฐœ๋ฐœ ์‚ฌ์ดํด, Vercel๊ณผ์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ์œผ๋กœ ๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค์— ์ ํ•ฉํ•œ ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
Tailwind CSS 4.0.0 ยท ๋‚ฎ์€ ๋Ÿฌ๋‹์ปค๋ธŒ๋กœ ๋น ๋ฅธ UI ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ๋””์ž์ธ ํ† ํฐ๊ณผ ์—ฐ๋™ํ•ด ์Šคํƒ€์ผ์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌ๋ฆฌํ•˜๊ณ  ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ์ผ๊ด€์„ฑ์„ ์‰ฝ๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
TypeScript 5.0.0 ยท ๋ช…ํ™•ํ•œ ํƒ€์ž… ์ •์˜๋กœ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ์ค„์ด๊ณ , ๋ณต์žกํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์™€ API ์—ฐ๋™ ์‹œ ์•ˆ์ •์„ฑ์„ ๋†’์—ฌ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
Zustand 5.0.5 ยท npm ํŠธ๋ Œ๋“œ๊ฐ€ ๋†’๊ณ  ๊พธ์ค€ํžˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋Ÿฌ๋‹์ปค๋ธŒ๊ฐ€ ๋‚ฎ์€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
ยท ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋กœ ๋น ๋ฅด๊ฒŒ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฒฝ๋Ÿ‰ ๊ตฌ์กฐ์™€ ๋†’์€ ์„ฑ๋Šฅ, ๋ชจ๋“ˆํ™”๋œ ์Šคํ† ์–ด๋กœ ํ™•์žฅ์„ฑ๊นŒ์ง€ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
Tanstack-Query 5.74.4 ยท ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๊ณ , ์บ์‹ฑยท๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ฐฑ์‹ ยท์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋“ฑ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํŒจ์นญ ๋กœ์ง์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด API ํ˜ธ์ถœ์„ ํšจ์œจ์ ์œผ๋กœ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ ์ฃผ์š” ๊ตฌํ˜„ ์ „๋žต

๐Ÿ“ฑ ๋ฐฐํฌ ์ž๋™ํ™” ๋ฐ PWA ์ ์šฉ

CI/CD, PWA

โ˜‘๏ธ ์ž๋™ ๋™๊ธฐํ™” ๋ฐ ๋ฐฐํฌ ํ๋ฆ„

  • ๋ณ„๋„์˜ ์ˆ˜๋™ ๋™๊ธฐํ™” ์—†์ด GitHub Actions๋ฅผ ํ™œ์šฉํ•ด fork๋œ ๋ฐฐํฌ์šฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์›๋ณธ๊ณผ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๋ฉฐ, Vercel๊ณผ ์—ฐ๋™๋œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด Preview ๋ฐ Production ๋ฐฐํฌ๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

โ˜‘๏ธ ๋ฐฐํฌ์šฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์™€ Vercel ์—ฐ๋™

  • develop ๋ธŒ๋žœ์น˜์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ณ‘ํ•ฉ๋˜๋ฉด Preview ํ™˜๊ฒฝ(kiring-develop.vercel.app)์— ๋ฐฐํฌ๋˜์–ด ๊ฐœ๋ฐœ ์‹œ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ฆ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ์ดํ›„ PR์„ ํ†ตํ•ด main ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜๋ฉด Production ํ™˜๊ฒฝ(kiring.vercel.app)์— ์ตœ์ข… ๋ฐฐํฌ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ˜‘๏ธ PWA(Progressive Web App) ์ ์šฉ

  • ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ๋„ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ๊ณผ ๊ฐ™์€ ์ง๊ด€์ ์ด๊ณ  ๋น ๋ฅธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด PWA๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ๋ณ„๋„ ์•ฑ ์„ค์น˜ ์—†์ด๋„ ํ™ˆ ํ™”๋ฉด์— ์•ฑ ์•„์ด์ฝ˜ ์ถ”๊ฐ€, ์˜คํ”„๋ผ์ธ ์ ‘๊ทผ ๋“ฑ ์•ฑ ์ˆ˜์ค€์˜ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐ŸŽจ ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌํ˜„ ๋ฐ ์ž๋™ํ™”

๋””์ž์ธ ์‹œ์Šคํ…œ ์ž๋™ํ™”

  • ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ณ  Figma์˜ Style Dictionary๋กœ ๊ด€๋ฆฌํ•œ ๋””์ž์ธ ํ† ํฐ(JSON)์„ Tailwind์— ์—ฐ๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋””์ž์ธ ์‹œ์Šคํ…œ์—์„œ ์ •์˜ํ•œ ์Šคํƒ€์ผ ๊ฐ’์ด ์ฝ”๋“œ์— ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋˜์–ด, UI์˜ ์ผ๊ด€์„ฑ์„ ์‰ฝ๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ณ  ๋””์ž์ธ ๋ณ€๊ฒฝ ์‹œ์—๋„ ๋ชจ๋“  ํ™”๋ฉด์— ์‹ ์†ํ•˜๊ฒŒ ์ ์šฉ๋˜์–ด ๊ฐœ๋ฐœ๊ณผ ์œ ์ง€๋ณด์ˆ˜์˜ ํšจ์œจ์„ฑ์ด ๋†’์•„์กŒ์Šต๋‹ˆ๋‹ค.


๐Ÿงฉ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ UI ๊ตฌ์กฐํ™”

UI ์ปดํฌ๋„ŒํŠธ

  • ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” UI ์š”์†Œ๋ฅผ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ, ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  UI ๊ตฌ์กฐ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ™•๋ฆฝํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋˜ํ•œ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ๋„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก props ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„ํ•˜์—ฌ, ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.


โšก ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ UI ๊ตฌํ˜„

์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ UI

  • ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋น„์Šค ์ด์šฉ ๊ณผ์ •์—์„œ ๋” ๋งŽ์€ ์žฌ๋ฏธ์™€ ๋ชฐ์ž…๊ฐ์„ ๋А๋‚„ ์ˆ˜ ์žˆ๋„๋ก, ๋‹ค์–‘ํ•œ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ UI ์š”์†Œ๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž์™€์˜ ์ ๊ทน์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ ๋„ํ•˜์—ฌ ์„œ๋น„์Šค ๊ฒฝํ—˜์ด ๋”์šฑ ์ƒ๋™๊ฐ ์žˆ๊ณ  ์ฆ๊ฑฐ์› ๋‹ค๋Š” ๊ธ์ •์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


3๏ธโƒฃ ํ˜‘์—… ๊ณผ์ •

๐Ÿ—ƒ๏ธ Github์„ ์ด์šฉํ•œ ๊ฐœ๋ฐœ ๊ณผ์ • ๋ฌธ์„œํ™”

ํ˜‘์—…1: Github


๐Ÿฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ AI ๋„์ž…

ํ˜‘์—…2: ์ฝ”๋“œ๋ฆฌ๋ทฐ AI


๐Ÿ“” Notion์„ ์ด์šฉํ•œ ๋กœ๋“œ๋งต ๊ด€๋ฆฌ

ํ˜‘์—…3: Notion


4๏ธโƒฃ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ” ์†Œ์…œ ๋กœ๊ทธ์ธ

์†Œ์…œ ๋กœ๊ทธ์ธ ์ด๋ฏธ์ง€


๐Ÿ  ํ™ˆ

๋ฉ”์ธ ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€


๐Ÿด ํ”Œ๋ ˆ์ด์Šค

ํ”Œ๋ ˆ์ด์Šค ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€


๐Ÿš ๊ตํ†ต

๊ตํ†ต ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€


๐Ÿ“… ์บ˜๋ฆฐ๋”

์บ˜๋ฆฐ๋” ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€


๐Ÿ’ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ

์ปค๋ฎค๋‹ˆํ‹ฐ ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€


๐Ÿ’Œ ์ข…์ด๋น„ํ–‰๊ธฐ

์ข…์ด๋น„ํ–‰๊ธฐ ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€


๐Ÿ“„ ๋งˆ์ดํŽ˜์ด์ง€

๋งˆ์ดํŽ˜์ด์ง€ ์ด๋ฏธ์ง€


5๏ธโƒฃ ํ‚ค๋ง ๊ฐœ๋ฐœํŒ€

ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฑ์—”๋“œ
์–‘๋‹ค์œ— ๊น€ํ•œ์†” ๋ฐฑํ˜œ์ธ ๊น€ํƒœ๋ฏผ

About

๐Ÿ”— ์‚ฌ๋‚ด ์ •๋ณด ๊ณต์œ ยท์†Œํ†ต์„ ์œ„ํ•œ ์‚ฌ๋‚ด ์„œ๋น„์Šค ์›น์•ฑ (~2025.12.31)

Topics

Resources

Stars

Watchers

Forks

Contributors