Skip to content

Club-PARD/GZ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

370 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ZIGU FE

๐Ÿ“ฆ ์บ ํผ์Šค์—์„œ ๋ฌผ๊ฑด์„ ๋‹จ๊ธฐ๋กœ ๋Œ€์—ฌํ•˜๋Š” P2P ๋Œ€์—ฌ ํ”Œ๋žซํผ

๋Œ€ํ•™์ƒ๋“ค์€ ๋‚ฏ์„  ์ด์—๊ฒŒ ๋ฌผ๊ฑด์„ ๋นŒ๋ ค์ฃผ๊ธฐ์—๋Š” ๋ถˆ์•ˆํ•˜๊ณ , ํ•„์š”ํ•œ ๋ฌผํ’ˆ์„ ์ฆ‰์‹œ ๋นŒ๋ฆด ๋งˆ๋•…ํ•œ ๊ณณ๋„ ์—†์Šต๋‹ˆ๋‹ค.
ZIGU(์ง€๊ตฌ)๋Š” ํ•™๊ต ์ธ์ฆ๊ณผ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ณ  ๋น ๋ฅธ ๋Œ€์—ฌ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” P2P ๋Œ€์—ฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.




๐Ÿ™‡โ€โ™€๏ธ ์„œ๋น„์Šค ์†Œ๊ฐœ

์šฐ๋ฆฌ๋Š” ๋ถˆํ•„์š”ํ•œ ์†Œ๋น„, ๊ณต๊ฐ„ ๋‚ญ๋น„, ์‹ ๋ขฐ ๋ถ€์กฑํ•œ ๊ฑฐ๋ž˜๋กœ๋ถ€ํ„ฐ ๋ฒ—์–ด๋‚˜ ๋Œ€ํ•™์ƒ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋‚ด์—์„œ ๋ฏฟ๊ณ  ๋นŒ๋ฆฌ๊ณ , ๋นŒ๋ ค์ฃผ๋Š” ์ˆœํ™˜ ํ”Œ๋žซํผ์„ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

As-Is To-Be
์ž์ฃผ ์“ฐ์ง€ ์•Š๋Š” ๋ฌผ๊ฑด์ด์ง€๋งŒ ํŒ”๊ธฐ์—” ๊ฐ€๋” ํ•„์š”ํ•ด์„œ, ๊ฒฐ๊ตญ ๊ณต๊ฐ„๋งŒ ์ฐจ์ง€ํ•˜๊ฒŒ ๋จ. ์ž์ฃผ ์“ฐ์ง€ ์•Š๋Š” ๋ฌผ๊ฑด์„ ํ•„์š”ํ•œ ์ˆœ๊ฐ„์—๋งŒ ๋นŒ๋ ค์ฃผ์–ด ์ž์‚ฐํ™” ํ•  ์ˆ˜ ์žˆ์Œ
๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๊ณผ ๊ฑฐ๋ž˜ํ•˜๊ณ  ํŒŒ์†, ๋ถ„์‹ค์— ๋Œ€ํ•œ ์‹ฌ๋ฆฌ์  ๋ถ€๋‹ด์ด ํผ ๊ฐ™์€ ๋Œ€ํ•™๊ต ์ปค๋ฎค๋‹ˆํ‹ฐ ์•ˆ์—์„œ, ์‹ ์›์ด ๋ณด์žฅ๋˜์–ด ์•ˆ์‹ฌํ•˜๊ณ  ๋ฌผ๊ฑด์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Œ
ํ•„์š”ํ•œ ๋ฌผ๊ฑด์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์˜คํ”„๋ผ์ธ ์ง€์ธ ์˜์กด์ด๋‚˜ ์ง์ ‘ ๋ฐœํ’ˆ์„ ํŒ”์•„์•ผ ํ•จ ํ”Œ๋žซํผ์—์„œ ์›ํ•˜๋Š” ๋ฌผ๊ฑด์„ ๊ฒ€์ƒ‰ํ•˜๊ณ , ์˜จ๋ผ์ธ์œผ๋กœ ์ฆ‰์‹œ ๋Œ€์—ฌ ์‹ ์ฒญ ๊ฐ€๋Šฅ
์ผํšŒ์„ฑ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ๋ฌผ๊ฑด์„ ๊ตฌ๋งคํ•˜๊ฒŒ ๋จ ํ•„์š”ํ•  ๋•Œ๋งŒ ๋นŒ๋ ค ์“ฐ๋ฉฐ, ๋ถˆํ•„์š”ํ•œ ์†Œ๋น„์™€ ์ž์› ๋‚ญ๋น„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

๐Ÿ’ก ๊ธฐ๋Šฅ

๋žœ๋”ฉ ํ™”๋ฉด ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด
๐Ÿƒโ€โ™‚๏ธโ€โžก๏ธ ๋žœ๋”ฉ ํ™”๋ฉด์œผ๋กœ ZIGU๊ฐ€ ์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์žˆ์–ด์š”! ๐Ÿ”‘ ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด์—์„œ ์˜ค์ง ๋Œ€ํ•™์ƒ๋งŒ ZIGU์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ์–ด์š”!
ํ™ˆ ํ™”๋ฉด ๋“ฑ๋ก ์ž…๋ ฅ
๐Ÿ  ํ™ˆ ํ™”๋ฉด์„ ํ†ตํ•ด ๋‚ด๊ฐ€ ํ•„์š”๋กœํ•˜๋Š” ๋ฌผ๊ฑด์„ ์ฐพ๊ฑฐ๋‚˜ ์•ˆ์“ฐ๋Š” ๋ฌผ๊ฑด์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์–ด์š”! ๐Ÿ“ ๋ฌผ๊ฑด ๋“ฑ๋กํ•˜๊ธฐ๋ฅผ ํ†ตํ•ด ํŒ”๊ธด ์•„๊น์ง€๋งŒ ์ž˜ ์•ˆ์“ฐ๋Š” ๋ฌผ๊ฑด๋“ค์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์–ด์š” โ˜ƒ๏ธ!
Product ํŽ˜์ด์ง€ ์ฑ„ํŒ…๋ฐฉ ์ž…์žฅ
๐Ÿ“ฆ Product ํŽ˜์ด์ง€ (๋“ฑ๋กํ•œ ์ดํ›„) | (ํ™ˆ โ†’ ๋‚ด ๊ฒŒ์‹œ๋ฌผ ํด๋ฆญ)์„ ํ†ตํ•ด ๋‹ค์‹œ ํ•œ๋ฒˆ ํ™•์ธํ•˜๊ณ  ์‚ญ์ œยท์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”! ๐Ÿ” ์ฑ„ํŒ…๋ฐฉ ์ž…์žฅํ•˜๊ธฐ๋ฅผ ํ†ตํ•ด ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์–ด์š”! (๋งŒ๋‚  ์žฅ์†Œ, ์‹œ๊ฐ„ ๋“ฑ)
๋Œ€์—ฌ ์‹ ์ฒญ์„œ ๋Œ€์—ฌ ๋‚ด์—ญ
๐Ÿ“‘ ๋Œ€์—ฌ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ํด๋ฆญํ•ด์„œ ๋Œ€์—ฌ ์‹ ์ฒญ์„œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”! ๐Ÿ“‘ ๋Œ€์—ฌ ๋‚ด์—ญ์˜ ๋Œ€์—ฌ ์š”์ฒญ, ๋นŒ๋ ค์ค€ ๋‚ด์—ญ, ๋นŒ๋ฆฐ ๋‚ด์—ญ์„ ํ†ตํ•ด ์‹ ์ฒญ ์ˆ˜๋ฝ & ๊ฑฐ์ ˆ๊ณผ ๋Œ€์—ฌ ์ค‘ ์ƒํƒœ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ด์š”!



๐Ÿง‘โ€๐Ÿง‘โ€๐Ÿง’โ€๐Ÿง’ Contributor

์ตœ์ง€์šฐ

์ตœ์ง€์šฐ

PM

์ด์ˆ˜๋ฏผ

์ด์ˆ˜๋ฏผ

Designer

์„œ๊ฒฝ๋ฏธ

์„œ๊ฒฝ๋ฏธ

Server(๋ฐฑ์—”๋“œ)

์ด๊ฑด์šฐ

์ด๊ฑด์šฐ

Web(ํ”„๋ก ํŠธ์—”๋“œ)

์กฐํ˜•๋ฏผ

์กฐํ˜•๋ฏผ

Web(ํ”„๋ก ํŠธ์—”๋“œ)

์ดํƒœ์œค

์ดํƒœ์œค

Web(ํ”„๋ก ํŠธ์—”๋“œ)

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

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

ํ˜‘์—… ๋„๊ตฌ

๐Ÿ”ง ZIGU Frontend ํŒŒ์ผ ๊ตฌ์กฐ

GZ ๋Œ€์—ฌ ์„œ๋น„์Šค ํ”Œ๋žซํผ (Frontend)

GZ๋Š” **Next.js 15 (Pages Router)**์™€ TypeScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋Œ€์—ฌ ์„œ๋น„์Šค ํ”Œ๋žซํผ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ณ ๋ คํ•œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…, ์ด๋ฏธ์ง€ ์ตœ์ ํ™” ๋“ฑ ๋‹ค์–‘ํ•œ UI/UX ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“‹ ๋ชฉ์ฐจ

  • ํ”„๋กœ์ ํŠธ ๊ฐœ์š”
  • ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ
  • ๊ธฐ์ˆ  ์Šคํƒ
  • ์ฃผ์š” ๊ธฐ๋Šฅ

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

  • ํ”„๋ ˆ์ž„์›Œํฌ: Next.js 15 (Pages Router)
  • ์–ธ์–ด: TypeScript
  • ์Šคํƒ€์ผ๋ง: Tailwind CSS
  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…: SendBird
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”: OptimizedImage ์ปดํฌ๋„ŒํŠธ

๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ

GZ/src/
โ”œโ”€โ”€ pages/                  # Page Router ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€
โ”‚   โ”œโ”€โ”€ _app.tsx            # ์•ฑ ์ดˆ๊ธฐํ™”
โ”‚   โ”œโ”€โ”€ _document.tsx       # ์ปค์Šคํ…€ Document
โ”‚   โ”œโ”€โ”€ cert/               # ์ธ์ฆ (๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž…)
โ”‚   โ”œโ”€โ”€ home/               # ํ™ˆ ํ™”๋ฉด
โ”‚   โ”œโ”€โ”€ detail/             # ์ƒํ’ˆ ์ƒ์„ธ
โ”‚   โ”œโ”€โ”€ items/              # ๋‚ด ๋ฌผ๊ฑด ๊ด€๋ฆฌ
โ”‚   โ”œโ”€โ”€ rentals/            # ๊ฑฐ๋ž˜ ๋‚ด์—ญ
โ”‚   โ”œโ”€โ”€ profile/            # ํ”„๋กœํ•„
โ”‚   โ””โ”€โ”€ channels.tsx        # ์ฑ„ํŒ… ์ฑ„๋„ ๋ฆฌ์ŠคํŠธ
โ”œโ”€โ”€ components/             # ์žฌ์‚ฌ์šฉ UI ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ home-header.tsx
โ”‚   โ”œโ”€โ”€ Footer.tsx
โ”‚   โ”œโ”€โ”€ chat-components/    # ์ฑ„ํŒ… UI
โ”‚   โ”œโ”€โ”€ detail/             # ์ƒ์„ธ ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ Term-components/    # ์•ฝ๊ด€ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ loading-components/ # ๋กœ๋”ฉ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ””โ”€โ”€ OptimizedImage.tsx  # ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
โ”œโ”€โ”€ lib/                    # ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ์„ค์ •
โ”‚   โ”œโ”€โ”€ api.ts              # API ํ˜ธ์ถœ ํ•จ์ˆ˜
โ”‚   โ”œโ”€โ”€ firebase.ts         # Firebase ํด๋ผ์ด์–ธํŠธ ์ดˆ๊ธฐํ™” ์„ค์ •
โ”‚   โ”œโ”€โ”€ firebase-functions.ts # Firebase Functions ํ˜ธ์ถœ ๋ž˜ํผ
โ”‚   โ”œโ”€โ”€ sendbird.ts         # SendBird ์„ค์ •
โ”‚   โ”œโ”€โ”€ rentals.types.ts    # ํƒ€์ž… ์ •์˜
โ”‚   โ””โ”€โ”€ hooks/              # ์ปค์Šคํ…€ ํ›…
โ”œโ”€โ”€ styles/                 # ์Šคํƒ€์ผ
โ”‚   โ”œโ”€โ”€ globals.css         # ์ „์—ญ ์Šคํƒ€์ผ
โ”‚   โ”œโ”€โ”€ detail.module.css   # ์ƒํ’ˆ ์ƒ์„ธ ์Šคํƒ€์ผ
โ”‚   โ””โ”€โ”€ onboarding.module.css # ์˜จ๋ณด๋”ฉ ์Šคํƒ€์ผ
โ””โ”€โ”€ utils/                  # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
    โ””โ”€โ”€ imageCompression.ts # ์ด๋ฏธ์ง€ ์••์ถ• ์œ ํ‹ธ๋ฆฌํ‹ฐ

Firebase ์„ค์ • ๊ตฌ์กฐ (src/lib)

src/lib/
โ”œโ”€โ”€ firebase.ts            # Firebase ์•ฑ ์ดˆ๊ธฐํ™” ์„ค์ • (ํ”„๋กœ์ ํŠธ ํ‚ค, ์ธ์ฆ ๋“ฑ)
โ””โ”€โ”€ firebase-functions.ts  # Firebase Functions ํ˜ธ์ถœ ๋ž˜ํผ (sendCode, verifyCode ๋“ฑ)

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๐Ÿ” ์ธ์ฆ: ๋Œ€ํ•™์ƒ ์ธ์ฆ
  • ๐Ÿ  ํ™ˆ & ์ƒํ’ˆ ๊ฒ€์ƒ‰: ๋ฌผ๊ฑด ๋“ฑ๋ก, ๊ฒ€์ƒ‰, ํ•„ํ„ฐ ๊ธฐ๋Šฅ
  • ๐Ÿ“„ ์ƒํ’ˆ ์ƒ์„ธ: ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ, ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
  • ๐Ÿ“ฆ ๋‚ด ๋ฌผ๊ฑด ๊ด€๋ฆฌ: ๋“ฑ๋กํ•œ ๋ฌผ๊ฑด ๋ณด๊ธฐ/์ˆ˜์ •/์‚ญ์ œ
  • โœ”๏ธ ์‹ ์ฒญ ์ˆ˜๋ฝ: ๋ฉ”์ผ์„ ํ†ตํ•ด ์ˆ˜๋ฝ ์—ฌ๋ถ€ ํ™•์ธ
  • ๐Ÿ“œ ๊ฑฐ๋ž˜ ๋‚ด์—ญ: ๋Œ€์—ฌ ๊ธฐ๋ก ํ™•์ธ
  • ๐Ÿ’ฌ ์ฑ„ํŒ…: SendBird ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
  • ๐Ÿ–ผ๏ธ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ: ์••์ถ•, Progressive Loading

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด src/ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

Releases

Packages

Used by

Contributors

Languages