Skip to content

๐Ÿ”MBTI๋กœ ๋‚˜๋ฅผ ์†Œ๊ฐœํ•˜๊ณ , ์นœ๊ตฌ๊ฐ€ ๋ณด๋Š” ๋‚˜๋Š” ์–ด๋–ค์ง€ ํ™•์ธํ•ด๋ณด์„ธ์š”๐Ÿ”

License

Notifications You must be signed in to change notification settings

bsu0404/MBTiD

ย 
ย 

Repository files navigation

MBTiD

MBTiD๋Š” ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ MBTI ๋ช…ํ•จ์„ ๋งŒ๋“ค์–ด ๊ณต์œ ํ•˜๊ณ , ์นœ๊ตฌ๋“ค๊ณผ ํˆฌํ‘œ๋ฅผ ํ†ตํ•ด ์„œ๋กœ์— ๋Œ€ํ•œ ์ธ์‹์„ ๋น„๊ตํ•ด๋ณด๋Š” ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

React + TypeScript ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ, ์ƒํƒœ ๊ด€๋ฆฌ์™€ API ํ˜ธ์ถœ์„ ์ตœ์ ํ™”ํ•˜์—ฌ ์ฆ‰๊ฐ์ ์ธ ๋ฐ˜์‘์„ฑ๊ณผ ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง ์ œ๊ฑฐ์— ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

screenshot 1 screenshot 2
screenshot 3 screenshot 4

๐Ÿš€ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๐Ÿง  ๊ฐ„๋‹จํ•œ MBTI ๊ฒ€์‚ฌ
  • ๐Ÿชช ๊ฒฐ๊ณผ ๊ธฐ๋ฐ˜ ๋ช…ํ•จ ์ƒ์„ฑ
  • ๐Ÿ‘ฅ ์นœ๊ตฌ ๋ช…ํ•จ ์ถ”๊ฐ€ ๋ฐ ํ™•์ธ
  • ๐Ÿ—ณ๏ธ ์นœ๊ตฌ๊ฐ€ ๋ณด๋Š” ๋‚˜์˜ MBTI ํˆฌํ‘œ ๊ธฐ๋Šฅ
  • ๐Ÿ“Š ํˆฌํ‘œ ๊ฒฐ๊ณผ ํ†ต๊ณ„ ์‹œ๊ฐํ™”
  • ๐Ÿ”— QR ๊ณต์œ , ์นด์นด์˜คํ†ก ๊ณต์œ 
  • ๐Ÿ“ฒ PWA ์„ค์น˜ ์ง€์›

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

๋ถ„๋ฅ˜ ๊ธฐ์ˆ 
UI React 18 (with Vite)
์–ธ์–ด TypeScript
์ƒํƒœ ๊ด€๋ฆฌ Zustand, React Query
์Šคํƒ€์ผ๋ง SCSS
๋ฐฐํฌ Vercel
CI GitHub Actions

๐Ÿง  ์ƒํƒœ ๊ด€๋ฆฌ & ์บ์‹ฑ ์ „๋žต

MBTiD๋Š” ์ „์—ญ ์ƒํƒœ(Zustand)์™€ ์„œ๋ฒ„ ์ƒํƒœ(React Query)๋ฅผ ๋ถ„๋ฆฌํ•ด ๊ด€๋ฆฌํ•˜๋ฉฐ,
๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง๊ณผ API ํ˜ธ์ถœ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ „๋žต์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค:

ํ•ญ๋ชฉ ์‚ฌ์šฉ ๋„๊ตฌ ์ „๋žต ์š”์•ฝ
๋กœ๊ทธ์ธ ์ •๋ณด Zustand ์ „์—ญ ์ €์žฅ, ํ•ญ์ƒ ์œ ์ง€
ํ”„๋กœํ•„ ์ •๋ณด React Query โ†’ Zustand staleTime: 30๋ถ„, shallow ๋น„๊ต ํ›„ Zustand ์ €์žฅ
์นœ๊ตฌ ๋ชฉ๋ก React Query staleTime: 30๋ถ„, gcTime: 1์‹œ๊ฐ„
ํˆฌํ‘œ ๊ฒฐ๊ณผ React Query staleTime: 0, refetchOnFocus: true

์ถ”๊ฐ€๋กœ,

  • React.memo๋ฅผ ํ†ตํ•ด ๋™์ผ props ์ „๋‹ฌ ์‹œ ์žฌ๋ Œ๋”๋ง ๋ฐฉ์ง€
  • shallow ๋น„๊ต๋กœ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ์—ฌ๋ถ€๋ฅผ ์„ ๋ณ„
  • setQueryData()๋ฅผ ํ™œ์šฉํ•ด UX ๋ฐ˜์‘์„ฑ์„ ๋†’์ž„

About

๐Ÿ”MBTI๋กœ ๋‚˜๋ฅผ ์†Œ๊ฐœํ•˜๊ณ , ์นœ๊ตฌ๊ฐ€ ๋ณด๋Š” ๋‚˜๋Š” ์–ด๋–ค์ง€ ํ™•์ธํ•ด๋ณด์„ธ์š”๐Ÿ”

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 78.1%
  • SCSS 17.9%
  • HTML 1.7%
  • CSS 1.6%
  • Other 0.7%