Skip to content

๐Ÿšš ํ•ธ๋“ค์ด ๊ณ ์žฅ๋‚œ ํ‘ธ๋“œํŠธ๋Ÿญ

Notifications You must be signed in to change notification settings

prgrms-fe-devcourse/NFE1-1-3-broken-handle-truck-Frontend

Repository files navigation

๐Ÿšš ํ•ธ๋“ค์ด ๊ณ ์žฅ๋‚œ ํ‘ธ๋“œํŠธ๋Ÿญ(broken-handle-truck)

ํ•ธ๋“ค์ด-๊ณ ์žฅ๋‚œ-ํ‘ธ๋“œํŠธ๋Ÿญ-001 (1)

๐Ÿ—“๏ธ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2024.10.15 ~ 2024.11.06

๐Ÿ‘‹ ํŒ€์› ๊ตฌ์„ฑ

๊น€ํ˜„์„ ์žฅ์›์„ ์œก์€๋ณ„ ์ด์˜ˆ์ง„ ์กฐ์ค€์˜
Frontend, Backend Backend Frontend Frontend Frontend

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

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

์ด๋Ÿฐ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž, ์‚ฌ์žฅ๋‹˜๋“ค์ด ์ง์ ‘ ์˜์—… ์ •๋ณด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์„ ๋งŒ๋“ค๋ฉด ์–ด๋–จ๊นŒ ํ•˜๋Š” ์•„์ด๋””์–ด์—์„œ ์ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์žฅ๋‹˜๋“ค์€ ํ•ธ๋“ค์ด ๊ณ ์žฅ๋‚œ ํ‘ธ๋“œํŠธ๋Ÿญ์„ ํ†ตํ•ด ๊ฐ€๊ฒŒ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ์–ธ์ œ๋“ ์ง€ ๊ฐ€๊ฒŒ ์œ„์น˜ ๋ฐ ์ •๋ณด์™€ ์˜์—… ์ƒํƒœ(์˜คํ”ˆ ์—ฌ๋ถ€)๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์•Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋“ค์€ 'ํ•ธ๋“ค์ด ๊ณ ์žฅ๋‚œ ํ‘ธ๋“œํŠธ๋Ÿญ'์„ ํ†ตํ•ด ์ฃผ๋ณ€์˜ ๊ฐ€๊ฒŒ๋“ค์„ ์ง€๋„์—์„œ ํ™•์ธํ•˜๊ณ , ๊ด€์‹ฌ ์žˆ๋Š” ๊ฐ€๊ฒŒ๋Š” ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ์ €์žฅํ•ด๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์˜คํ”ˆ ์—ฌ๋ถ€ ์•Œ๋ฆผ์„ ํ†ตํ•ด ์–ธ์ œ๋“ ์ง€ ์›ํ•˜๋Š” ๊ฐ€๊ฒŒ๊ฐ€ ์˜์—… ์ค‘์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€, ๋ฐฉ๋ฌธ ํ›„์—๋Š” ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ฒจ ๊ฐ€๊ฒŒ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ

  • Frontend

    • React, Typescript, tailwind, axios, react-query, zustand, react-hook-form, react-router-dom, react-toastify, react-modal-sheet, react-kakao-maps-sdk
  • Backend

    • Express, Typescript, JWT, MongoDB, Websocket, Swagger

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

์Šคํฌ๋ฆฐ์ƒท 2024-11-07 ์˜ค์ „ 11 30 14


ํ™”๋ฉด์„ค๊ณ„์„œ

Section 1


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

  • ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ(์นด์นด์˜ค ๋กœ๊ทธ์ธ)

  • ์ง€๋„์—์„œ ๊ฐ€๊ฒŒ ์ •๋ณด ํ™•์ธ(์นด๋“œ, ์ƒ์„ธํŽ˜์ด์ง€)

  • ๊ฒ€์ƒ‰, ์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋Šฅ

  • ๋ถ๋งˆํฌ

  • ์•Œ๋ฆผ

  • ๊ฐ€๊ฒŒ ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ(์ˆ˜์ •, ์‚ญ์ œ)

  • ๋ฆฌ๋ทฐ(๋Œ“๊ธ€) ๋‚จ๊ธฐ๊ธฐ


์ฝ”๋“œ ์ปจ๋ฒค์…˜

  • ํด๋” ๊ตฌ์กฐ

    src
    โ”‚
    โ”œโ”€apisย  ย  ย #API ๊ด€๋ จ ๋กœ์ง
    โ”œโ”€assetsย  ย  ย #์ด๋ฏธ์ง€ ๋“ฑ ์ •์  ํŒŒ์ผ
    โ”œโ”€componentsย  ย  ย #์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ ๋ชจ์Œ
    โ”œโ”€constantsย  ย  ย #๋ฐ์ดํ„ฐ
    โ”œโ”€hooksย  ย  ย #์ปค์Šคํ…€ ํ›…
    โ”œโ”€layoutsย  ย  ย #ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ปดํฌ๋„ŒํŠธ
    โ”œโ”€mocksย  ย  ย #๋ชฉ์—… ๋ฐ์ดํ„ฐ
    โ”œโ”€pagesย  ย  ย #๋ผ์šฐํ„ฐ ํŽ˜์ด์ง€
    โ”œโ”€storeย  ย  ย #์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ(zustand)
    โ””โ”€typesย  ย  ย #ํƒ€์ž… ์ •์˜
    
  • ํŒŒ์ผ ๋ช…๋ช… ๊ทœ์น™

    - ์ปดํฌ๋„ŒํŠธ: PascalCase (์˜ˆ: `Button.jsx`, `UserProfile.jsx`)
    - ์œ ํ‹ธ๋ฆฌํ‹ฐ, ํ›…: camelCase (์˜ˆ: `useForm.js`, `formatDate.js`)
    - customHook์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ : use + ํ•จ์ˆ˜๋ช…
    
  • axios instance ์ƒ์„ฑ

    const service = axios.create({
    ย  ย baseURL: `${import.meta.env.VITE_API_URL}/api/`,
    ย  ย withCredentials: true,
    ย  ย timeout: 10000,
    });

ํ–ฅํ›„ ๊ณ„ํš

1. ๊ฐ€๊ฒŒ ์ œ๋ณดํ•˜๊ธฐ(ํƒ€์ธ ๋“ฑ๋ก ๊ฐ€๋Šฅ)
2. ๊ณ ๊ฐ ๋ฆฌ๋ทฐ์— ์‚ฌ์žฅ๋‹˜์˜ ๋‹ต๊ธ€
3. ์Šคํ† ์–ด ๋“ฑ๋ก ์‹œ ์‚ฌ์žฅ๋‹˜ ์ธ์ฆ (์‹ค์ œ ์šด์˜ํ•˜๋Š” ๊ฐ€๊ฒŒ ์‚ฌ์ง„)

About

๐Ÿšš ํ•ธ๋“ค์ด ๊ณ ์žฅ๋‚œ ํ‘ธ๋“œํŠธ๋Ÿญ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published