Giter Site home page Giter Site logo

market-project's Introduction

github-header-image

๐Ÿ‘‹ ์•ˆ๋…•ํ•˜์„ธ์š” Frontend Delveloper ๋…ธ๊ธฐํ›ˆ์ž…๋‹ˆ๋‹ค.
๐Ÿ“ ๊ธ€์“ฐ๊ธฐ๋ฅผ ์ข‹์•„ํ•˜๊ณ  ์ •๋ณด ๊ณต์œ ๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๐Ÿ”ฅ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ํ˜ธ๊ธฐ์‹ฌ๊ณผ ์„ฑ์žฅ์— ๋Œ€ํ•œ ์—ด๋ง์ด ๊ฐ•ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ› ๏ธ Tech Stack

My Skills

My Skills


๐Ÿš€ Follow me


๐Ÿ“ˆ My Github Stats

CH4MD0M's GitHub stats

market-project's People

Contributors

ch4md0m avatar

Watchers

 avatar

market-project's Issues

jwt์— refreshToken ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

jwt์— refreshToken ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • jwt ์ธ์ฆ ๋ฐฉ์‹์— refreshToken์„ ์ถ”๊ฐ€(redis ๊ธฐ๋ฐ˜).
  • ํด๋ผ์ด์–ธํŠธ์—์„œ ๋กœ๊ทธ์ธ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฆฌํŒฉํ† ๋ง.

ProductSlice ์ƒํƒœ ๊ด€๋ฆฌ ๋ฆฌํŒฉํ† ๋งํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

productSlice๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฆฌํŒฉํ† ๋ง

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ƒํ’ˆ ์ถ”๊ฐ€, ์‚ญ์ œ ๊ธฐ๋Šฅ์—์„œ ์ž˜๋ชป ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” redux ์ฝ”๋“œ ์ˆ˜์ •.
  • ๋ณ€์ˆ˜๋ช… ์ˆ˜์ •.

์›นํŒฉ ์„ค์ •์„ ์ˆ˜์ •ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

์›นํŒฉ ์„ค์ •์„ ์ˆ˜์ •ํ•œ๋‹ค.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • ์›นํŒฉ์—์„œ Polyfill ์„ค์ •์„ babel/plugin-transform-runtime๋กœ ๋ณ€๊ฒฝ
  • @types ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ devDependencies๋กœ ์ด๋™
  • build๋œ JS ํŒŒ์ผ๋“ค js ํด๋”๋กœ ๋ฌถ๊ธฐ
  • css loader ์ ์šฉ
  • splitChunks ์ ์šฉ

useSelector ์ตœ์ ํ™”

useSelector ๋ฌด๋ถ„๋ณ„ํ•œ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์œผ๋กœ ์ธํ•ด ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง์ด ๋ฐœ์ƒํ•จ.

์ƒํ’ˆ๋ชฉ๋ก ํ•„ํ„ฐ ๊ธฐ๋Šฅ์„ ๋ฆฌํŒฉํ† ๋งํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

์ƒํ’ˆ๋ชฉ๋ก ํ•„ํ„ฐ ๊ธฐ๋Šฅ์„ ๋ฆฌํŒฉํ† ๋งํ•œ๋‹ค.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • ํ•„ํ„ฐ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ ์šฉ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์•ผ ํ•„ํ„ฐ๊ฐ€ ์ ์šฉ๋˜๋Š”๋ฐ, ์ด๋ฅผ ํ•„ํ„ฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ํ•„ํ„ฐ๊ฐ€ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ.
  • useSelector ์ตœ์ ํ™”.

Auth ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๋ฆฌํŒฉํ† ๋งํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

๋กœ๊ทธ์ธ ์œ ์ง€ ๊ด€๋ จํ•œ ๊ธฐ๋Šฅ์„ ๋ฆฌํŒฉํ† ๋ง.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ์‹œ, Protected routes์—์„œ ์ „์—ญ ์ƒํƒœ ๊ฐ’์ด ์ดˆ๊ธฐํ™”๋˜๋ฉด์„œ ๋ฉ”์ธํŽ˜์ด์ง€๋กœ ์ด๋™๋˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •.
  • storeUserInfo ํด๋” ์œ„์น˜ ๋ณ€๊ฒฝ ๋ฐ ๊ธฐ๋Šฅ ์ˆ˜์ •. (hooks๊ฐ€ ์•„๋‹Œ๋ฐ ์ปค์Šคํ…€ ํ›…์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ.)
  • ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด unwrapResult๋ฅผ unwrap()์œผ๋กœ ๋ณ€๊ฒฝ.
  • ์‚ฌ์šฉ์ž ์ •๋ณด ์—…๋ฐ์ดํŠธ ํ›„ ์ฟ ํ‚ค ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ์ถ”๊ฐ€.
  • ๋กœ๊ณ  ํฐํŠธ ์‚ญ์ œ.

์ƒํ’ˆ ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

์ƒํ’ˆ ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•œ๋‹ค.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • ์ƒํ’ˆ ๋ฆฌ๋ทฐ component๊ฐ€ ์ƒํ’ˆ ํŽ˜์ด์ง€์— ์žˆ๋Š”๋ฐ ์ฃผ๋ฌธ๋ชฉ๋ก์—์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ.
  • ํ˜„์žฌ ๋กœ๊ทธ์ธ๋งŒ ํ•˜๋ฉด ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ -> ์ƒํ’ˆ์„ ๊ตฌ๋งคํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ.
  • ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ๋ฆฌ๋ทฐ ๋“ฑ๋ก ๋ฒ„ํŠผ์ด display ๋˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„.

webpack, babel ๋“ฑ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์ˆ˜์ •ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

webpack, babel, eslint, prettier, typescript ์„ค์ •์„ ์ˆ˜์ •ํ•œ๋‹ค.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • eslint ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ๋ฐ ์„ค์ • ํŒŒ์ผ ์ˆ˜์ • (ํ˜„์žฌ ์ œ๋Œ€๋กœ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ์ ์šฉ๋˜์–ด ์žˆ์ง€ ์•Š์Œ)
  • babel, typescript ์„ค์ • ํŒŒ์ผ ์ˆ˜์ • (loader, preset ๊ด€๋ จ ์„ค์ •์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Œ)

user ํŽ˜์ด์ง€๋ฅผ ๋ฆฌํŽ™ํ† ๋ง ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

  • user ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ˆ˜์ •.
  • tailwind css ์ ์šฉ.
  • ์ฃผ๋ฌธ ํ™•์ธ ํŽ˜์ด์ง€ ์ˆ˜์ •.
  • ์ฃผ๋ฌธ ํ™•์ธ ํŽ˜์ด์ง€ ์ƒํ’ˆ preview ์ˆ˜์ •.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • ์ฃผ๋ฌธ ํ™•์ธ ์ƒ์„ธ ํŽ˜์ด์ง€ ๋ฆฌ๋ทฐ ์ปดํฌ๋„ŒํŠธ ๋ชจ๋‹ฌ ์ ์šฉ.
  • ๊ธฐ์กด ์ปดํฌ๋„ŒํŠธ tailwind css ์ ์šฉ.
  • user ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์กฐ๊ฑด๋ถ€๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝ.

์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€, ๊ฒฐ์ œ ํŽ˜์ด์ง€๋ฅผ ๋ฆฌํŒฉํ† ๋ง ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

  • ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€, ๊ฒฐ์ œ ํŽ˜์ด์ง€ tailwind ์ ์šฉ.
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€ tailwind ์ ์šฉ.
  • ๋ฐ”๋กœ ๊ฒฐ์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€, ๊ฒฐ์ œ ํŽ˜์ด์ง€, ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€ tailwind ์ ์šฉ.
  • ํ˜„์žฌ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ ๊ธฐ๋Šฅ๋งŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”๋ฐ, ์ƒํ’ˆํŽ˜์ด์ง€์—์„œ ๋ฐ”๋กœ ๊ฒฐ์ œ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„.
  • ์ƒํ’ˆ ์ˆ˜๋Ÿ‰์„ input์œผ๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ.

webpack splitChunks ์„ค์ •์„ ์ˆ˜์ •ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

webpack์˜ splitChunks ์„ค์ • ์ˆ˜์ •.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • splitChunks ์„ค์ •์„ ๋ชจ๋“ˆ๋ณ„๋กœ chunk ์ด๋ฆ„์„ ์ƒ์„ฑ.
  • ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ chunk ๋ถ„๋ฆฌ.
  • ๋ฐฐํฌ๋ชจ๋“œ(webpack.prod.js) devtool ๋ณ€๊ฒฝ.
  • package.json์— sideEffects ์ถ”๊ฐ€.
  • ์›นํŽ˜์ด์ง€ title ๋ณ€๊ฒฝ.

webpack code splitting์„ ์ ์šฉํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

๋นŒ๋“œ ์†๋„ ํ–ฅ์ƒ, ์šฉ๋Ÿ‰ ์ถ•์†Œ๋ฅผ ์œ„ํ•ด ์ตœ์ ํ™” ์ž‘์—…์„ ์ง„ํ–‰

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • webpack code splitting ์ˆ˜์ •
  • dynamic import ๊ตฌ๋ฌธ ์ˆ˜์ •(webpack ์ฃผ์„ ์ถ”๊ฐ€)
  • lodash ์šฉ๋Ÿ‰ ์ค„์ด๊ธฐ ์œ„ํ•ด tree shaking ์„ค์ • ๋ฐ ์ 
  • webpack ์žฌ๋นŒ๋“œ ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด caching ์ ์šฉ

์ „์ฒด์ ์ธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์„ ํ•œ๋‹ค.

๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

์ „์ฒด์ ์ธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์„ ํ•œ๋‹ค.

์ƒ์„ธ ์ž‘์—… ๋‚ด์šฉ

  • protected routes ์ˆ˜์ •
  • ์ƒํ’ˆ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ๋‚˜์˜ค๋ฉด ์นดํ…Œ๊ณ ๋ฆฌ, ์†์„ฑ ์ดˆ๊ธฐํ™” ๋˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์ •
  • ์ƒํ’ˆ ์ถ”๊ฐ€, ์ˆ˜์ • ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ ํ•ฉ์น˜๊ธฐ(์ค‘๋ณต๋จ)
  • ํ•„ํ„ฐ๊ธฐ๋Šฅ useSelector ์ตœ์ ํ™”(๋ˆ„๋ฝ๋จ)
  • ๊ฐ€๊ฒฉ ํ•„ํ„ฐ debounce ์ ์šฉ
  • ๊ฒฐ์ œ ํŽ˜์ด์ง€ ์‚ฌ์šฉ์ž ์ฃผ์†Œ ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ „์— ๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ ์ถ”๊ฐ€
  • ๋กœ๊ทธ์•„์›ƒ ํ•˜๋ฉฐ ์œ ์ €์ •๋ณด reset๋˜๋„๋ก ์ˆ˜์ •

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.