Skip to content

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป IT ์—…๊ณ„ ์ข…์‚ฌ์ž๋“ค์„ ์œ„ํ•œ ๋ชจ์ž„ ์„œ๋น„์Šค

Notifications You must be signed in to change notification settings

lee1nna/Deving-FE

ย 
ย 

Repository files navigation

alt text


๋ชฉ์ฐจ


๐Ÿ“š ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

DEVING์€ ๊ฐœ๋ฐœ์ž์™€ ๋””์ž์ด๋„ˆ๋ฅผ ์œ„ํ•œ ์ „๋ฌธ ๋ชจ์ž„ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ, ๋ชจ๊ฐ์ฝ”, ์Šคํ„ฐ๋””, ์ทจ๋ฏธ ๋“ฑ ๊ฐœ๋ฐœ์ž ๋ฐ ๋””์ž์ด๋„ˆ ์ง๊ตฐ๋“ค์ด ์ž์ฃผ ์ด์šฉํ•˜๋Š” ์ฃผ์ œ๋กœ ๋ชจ์ž„์„ ์ƒ์„ฑํ•˜๊ณ  ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๊ณ  ๋„คํŠธ์›Œํ‚นํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


๐Ÿง‘โ€๐Ÿ’ป FE ํŒ€์› ์†Œ๊ฐœ

๊ฐ•์œค์ง€- Leader ์ด์œค์žฌ ์ดํ•œ๋‚˜ ์ด๋™์„
๊ฐ•์œค์ง€ ์ด์œค์žฌ ์ดํ•œ๋‚˜ ์ด๋™์„
:octocat: GitHub :octocat: GitHub :octocat: GitHub :octocat: GitHub

๐Ÿ’ก ํ”„๋กœ์ ํŠธ ๊ธฐํš

๊ธฐํš์˜๋„

์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ ์‹ฌํ™” ๋‹จ๊ธฐ๊ณผ์ •์—์„œ ์ฃผ์–ด์ง„ '๋ชจ์ž„ ๊ด€๋ จ ์„œ๋น„์Šค ๊ฐœ๋ฐœ' ๊ณผ์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ, ์ €ํฌ ํŒ€์€ ๊ฐœ๋ฐœ์ž์™€ ๋””์ž์ด๋„ˆ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ฃผ๋ชฉํ–ˆ์Šต๋‹ˆ๋‹ค. IT ์—…๊ณ„์—์„œ ์†Œํ†ต๊ณผ ํ˜‘์—…์˜ ์ค‘์š”์„ฑ์„ ์ธ์‹ํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž์™€ ๋””์ž์ด๋„ˆ๋“ค์ด ์‰ฝ๊ฒŒ ๋งŒ๋‚˜๊ณ  ๊ต๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์„ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์•„์ด๋””์–ด

  • ๊ธฐ์ˆ  ์Šคํƒ ํ•„ํ„ฐ๋ง: ์‚ฌ์šฉ์ž๊ฐ€ ๊ด€์‹ฌ ์žˆ๋Š” ๊ธฐ์ˆ  ์Šคํƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ์ž„์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋งž์ถคํ˜• ํ”„๋กœํ•„: ๊ฐœ์ธ ํ”„๋กœํ•„์— ๊ธฐ์ˆ  ์Šคํƒ, ๊ฒฝ๋ ฅ, ๊ด€์‹ฌ์‚ฌ ๋“ฑ์„ ์„ค์ •ํ•˜์—ฌ ์ž์‹ ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ง๊ด€์ ์ธ UX/UI: ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ตœ์šฐ์„ ์œผ๋กœ ๊ณ ๋ คํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„๋กœ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ–ฅ๏ธ ๊ธฐ๊ฐ„ ๋ฐ ํ˜‘์—…๊ด€๋ฆฌ


[ ๊ธฐ๊ฐ„ ]

๊ตฌ๋ถ„ ๋‚ ์งœ
๊ธฐํš ๊ธฐ๊ฐ„ 2025.01.24 ~ 02.10
๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ 2025.02.11 ~ 03.14

[ ํ˜‘์—… ๊ด€๋ฆฌ ]

Notion Discord Jira GitHub

ํ˜‘์—… ๋„๊ตฌ ํ™œ์šฉ ๋‚ด์šฉ
๐Ÿ“ Notion โ€ข ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ ๊ธฐ๋ก
โ€ข ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๋ฌธ์„œํ™”
โ€ข ๊ธฐ์ˆ  Wiki ๊ตฌ์ถ•
โ€ข ํ”„๋กœ์ ํŠธ ์ •๋ณด ๊ณต์œ 
๐ŸŽ™๏ธ Discord โ€ข ์‹ค์‹œ๊ฐ„ ํ™”์ƒ ํšŒ์˜
โ€ข ํŒ€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜
๐Ÿ“Š Jira โ€ข ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ
โ€ข ์Šคํ”„๋ฆฐํŠธ ๊ณ„ํš ๋ฐ ์ถ”์ 
โ€ข ์ž‘์—… ํ• ๋‹น ๋ฐ ์ง„ํ–‰์ƒํ™ฉ ๋ชจ๋‹ˆํ„ฐ๋ง
๐Ÿ“Œ GitHub โ€ข ์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ
โ€ข PR ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ
โ€ข ์ด์Šˆ ํŠธ๋ž˜ํ‚น

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

Next.js React TypeScript TanStack Query Zustand shadcn/ui MUI Tailwind CSS

Next.js (App Router)

Next.js์˜ App Router๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค:

  • ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR): ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„ ํ–ฅ์ƒ ๋ฐ SEO ์ตœ์ ํ™”
  • ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ: ํด๋ผ์ด์–ธํŠธ์— JavaScript ๋ฒˆ๋“ค์„ ์ „์†กํ•˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋งํ•˜์—ฌ ์„ฑ๋Šฅ ๊ฐœ์„ 
  • ๋ฐ์ดํ„ฐ ํ”„๋ฆฌํŽ˜์นญ: ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ์ „์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ฐœ์„ 
  • ์„œ๋ฒ„ ์ƒํƒœ ๊ธฐ๋ฐ˜ ์ธ์ฆ: ๋ณด์•ˆ์„ฑ์ด ํ–ฅ์ƒ๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์‹œ์Šคํ…œ ๊ตฌํ˜„

TanStack Query

์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด TanStack Query(React Query)๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค:

  • ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ํŽ˜์นญ: ์ž๋™ ์บ์‹ฑ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์—…๋ฐ์ดํŠธ, ์žฌ์‹œ๋„ ๋กœ์ง ๊ตฌํ˜„
  • ์„œ๋ฒ„ ์ƒํƒœ์™€ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ ๋ถ„๋ฆฌ: ์ƒํƒœ ๊ด€๋ฆฌ ๋กœ์ง ๋‹จ์ˆœํ™”
  • ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”: ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ํ•ญ์ƒ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๋ถˆํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์ตœ์†Œํ™”
  • ์ฟผ๋ฆฌํ‚ค ํŒฉํ† ๋ฆฌํŒจํ„ด: ํ”„๋กœ์ ํŠธ ๋‚ด ์ „๋žต์ ์ธ ์ฟผ๋ฆฌํ‚ค ๊ด€๋ฆฌ
  • ๋ฌดํ•œ ์Šคํฌ๋กค: ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ํšจ์œจ์  ์ฒ˜๋ฆฌ

shadcn/ui & MUI

๋””์ž์ธ ์‹œ์•ˆ ํ™•์ • ์ „ ์‹ ์†ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ์œ„ํ•ด ๋‘ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ „๋žต์ ์œผ๋กœ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค:

  • ํ”„๋กœํ† ํƒ€์ดํ•‘ ๊ฐ€์†ํ™”: ๊ณ ํ’ˆ์งˆ ์ปดํฌ๋„ŒํŠธ๋กœ ๋น ๋ฅธ MVP ๊ฐœ๋ฐœ
  • ์ผ๊ด€๋œ ๋””์ž์ธ ์‹œ์Šคํ…œ: ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ๋””์ž์ธ ์ผ๊ด€์„ฑ ์œ ์ง€
  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ: ๊ฒ€์ฆ๋œ UI ํŒจํ„ด ์ ์šฉ์œผ๋กœ ์ง๊ด€์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
  • ๊ฐœ๋ฐœ ํšจ์œจ์„ฑ: ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ์œผ๋กœ ๊ฐœ๋ฐœ ์‹œ๊ฐ„ ๋‹จ์ถ•

๐Ÿ—๏ธ ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜

Next.js App Router ๊ธฐ๋ฐ˜ ์„ค๊ณ„

ํ”„๋กœ์ ํŠธ๋Š” Next.js App Router๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฉฐ, ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ „๋žต์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ตœ์ ์˜ ์„ฑ๋Šฅ๊ณผ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์œ ์ € ํŽ˜์ด์ง€ ์˜ˆ์‹œ

app/
โ””โ”€โ”€โ”€ (user-page)/           # ์‚ฌ์šฉ์ž ๊ด€๋ จ ํŽ˜์ด์ง€ ๊ทธ๋ฃน
   โ”œโ”€โ”€ my-meeting/            # ๋‚ด ๋ชจ์ž„ ํŽ˜์ด์ง€
   โ”‚   โ”œโ”€โ”€ _features/         # ํŽ˜์ด์ง€๋ณ„ ๊ธฐ๋Šฅ ์ปดํฌ๋„ŒํŠธ
   โ”‚   โ”œโ”€โ”€ comments/         
   โ”‚   โ”œโ”€โ”€ likes/             
   โ”‚   โ”‚   โ””โ”€โ”€ page.tsx       # ์ฐœํ•œ ๋ชจ์ž„ ์„œ๋ฒ„์ปดํฌ๋„ŒํŠธ
   โ”‚   โ””โ”€โ”€ my/                # ๋‚ด ์ •๋ณด ์„œ๋ธŒํŽ˜์ด์ง€
   โ”‚       โ”œโ”€โ”€ (modal)/       # ๋ชจ๋‹ฌ ์ปดํฌ๋„ŒํŠธ ๊ทธ๋ฃน
   โ”‚       โ”œโ”€โ”€ @modal/        # ์ธํ„ฐ์…‰ํŒ… ๋ผ์šฐํŠธ ๋ชจ๋‹ฌ
   โ”‚       โ”œโ”€โ”€ layout.tsx     # ๋ ˆ์ด์•„์›ƒ ์ปดํฌ๋„ŒํŠธ
   โ”‚       โ””โ”€โ”€ page.tsx       # ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ
   โ””โ”€โ”€ mypage/                
       โ”œโ”€โ”€ _features/         
       โ”œโ”€โ”€ MyPageClient.tsx   
       โ””โ”€โ”€ page.tsx           

์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ (page.tsx)

๊ฐ ๋ผ์šฐํŠธ์˜ ์ง„์ž…์ ์œผ๋กœ, SEO ์ตœ์ ํ™” ๋ฐ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ํ”„๋ฆฌํŽ˜์นญ: ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ์ „ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๋กœ๋“œ
  • ์‚ฌ์šฉ์ž ์ธ์ฆ ํ™•์ธ: ์„œ๋ฒ„ ์ƒํƒœ์—์„œ ์ธ์ฆ ์ƒํƒœ ๊ฒ€์ฆ์œผ๋กœ ๋ณด์•ˆ ๊ฐ•ํ™”
  • ์ดˆ๊ธฐ HTML ์ƒ์„ฑ: ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌ๋  ์ดˆ๊ธฐ ๋งˆํฌ์—… ๊ตฌ์„ฑ

๊ธฐ๋Šฅ๋ณ„ ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ (_features/)

  • ํŽ˜์ด์ง€๋ณ„๋กœ _features ํด๋”๋ฅผ ๋‘์–ด ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๋ชจ๋“ˆํ™”
  • ๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ํŠน์ • ๊ธฐ๋Šฅ์— ์ง‘์ค‘ํ•˜์—ฌ ์ฑ…์ž„ ๋ถ„๋ฆฌ
  • ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ

์ปดํฌ๋„ŒํŠธ ์ž์œจ์„ฑ

  • ๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ์ž์‹ ์˜ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ๋กœ์ง์„ ์ง์ ‘ ๋‹ด๋‹น
  • ์ƒํƒœ ๊ด€๋ฆฌ, API ํ˜ธ์ถœ, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ๋“ฑ์„ ์บก์Аํ™”
  • "use client" ์ง€์‹œ์–ด๋ฅผ ํ†ตํ•œ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ๋ช…์‹œ์  ๊ตฌ๋ถ„

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๋ชจ์ž„ ์ฐพ๊ธฐ ๋ชจ์ž„ ์ƒ์„ธ๋ณด๊ธฐ
์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ•„ํ„ฐ๋ฅผ ํ†ตํ•ด ๋ชจ์ž„์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ์ž„์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ•œ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ์ž„ ์ฐพ๊ธฐ ๋ชจ์ž„ ์ƒ์„ธ๋ณด๊ธฐ
๋ชจ์ž„ ์‹ ์ฒญ ๋ชจ์ž„ ๊ด€๋ฆฌ ๋ฐ ๋ฉค๋ฒ„๊ด€๋ฆฌ
๊ฐ„ํŽธํ•œ ์ ˆ์ฐจ๋ฅผ ํ†ตํ•ด ๋ชจ์ž„์— ์ฐธ์—ฌ ์‹ ์ฒญ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์ตœ๋ชจ์ž„๊ณผ ์ฐธ์—ฌ์ž๋“ค์„ ๊ด€๋ฆฌ ๋ฐ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ์ž„ ์‹ ์ฒญ ๋ชจ์ž„ ๊ด€๋ฆฌ
๋‚ด ์ •๋ณด ์ˆ˜์ •
ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด์ •๋ณด

๐ŸŽˆ ํ”„๋กœ์ ํŠธ ์‚ฐ์ถœ๋ฌผ

๋ฌธ์„œ ์ข…๋ฅ˜ ๋งํฌ
๐Ÿ“ ์™€์ด์–ด ํ”„๋ ˆ์ž„ DEVING - ์™€์ด์–ด ํ”„๋ ˆ์ž„
๐ŸŽจ ๋””์ž์ธ ์‹œ์•ˆ DEVING - ๋””์ž์ธ ์‹œ์•ˆ
๐Ÿ“˜ API ๋ฌธ์„œ DEVING - ์Šค์›จ๊ฑฐ

About

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป IT ์—…๊ณ„ ์ข…์‚ฌ์ž๋“ค์„ ์œ„ํ•œ ๋ชจ์ž„ ์„œ๋น„์Šค

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.7%
  • Other 1.3%