Code Monkey home page Code Monkey logo

preonboarding_week-3-2_search_energybalance's Introduction

๐Ÿ“—ย ย ์›ํ‹ฐ๋“œ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ 6๋ฒˆ์งธ ๊ณผ์ œ - ๊ฒ€์ƒ‰์ฐฝ ๊ตฌํ˜„


๐Ÿš€ย ย ๋ฐฐํฌ ์ฃผ์†Œ

๐Ÿ‘‰ ๋ฐฐํฌ๋งํฌ ๋ฐ”๋กœ๊ฐ€๊ธฐ


๐Ÿ‘ฉย ย ํŒ€์›์†Œ๊ฐœ ๋ฐ ๋‹ด๋‹น์—…๋ฌด

์ด๊ฐ€์œค ์‹ ํ˜œ๋ฆฌ ํ•œ์žฌ์„ฑ ์ด์„ ์žฌ
_ _ _ _
๊ฒฐ๊ณผ์ฐฝ UI ๊ฒ€์ƒ‰์ฐฝ UI ๋ธŒ๋žœ๋“œ๋ฒ„ํŠผ UI ๊ฒ€์ƒ‰ ์•„์ดํ…œ UI
Github Github Github Github

๐ŸŽฎย ย ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ  ์Šคํƒ

  • next.js
  • typescript
  • styled-component
  • redux-toolkit

๐Ÿ™‹๐Ÿปย ย ๊ตฌํ˜„ ๊ธฐ๋Šฅ

  • mockdata๋ฅผ Next.js api์— ์ €์žฅํ•˜์—ฌ fetching ๊ตฌํ˜„
  • ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ
    • ํ•œ๊ธ€ ์ดˆ์„ฑ,์ค‘์„ฑ,์ข…์„ฑ์ด ์ž…๋ ฅ๋  ๋•Œ ๊ฒ€์ƒ‰๊ตฌํ˜„ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด์šฉ)
    • ์˜๋ฌธ ์ž…๋ ฅ๋  ๋•Œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ๊ฒ€์ƒ‰๊ตฌํ˜„
    • ๊ณต๋ฐฑ ๋“ค์–ด์˜ค๊ฑฐ๋‚˜ ๊ณต๋ฐฑ๋งŒ ๊ฒ€์ƒ‰์–ด์— ๋‚จ์„ ๋•Œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
  • ์ •๋ ฌ์ˆœ์„œ :
    • ์‚ฌ์ „์ˆœ ์ •๋ ฌ
    • ์ œํ’ˆ,๋ธŒ๋žœ๋“œ๋ฅผ ๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋˜ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ UI ๋ถ„๋ฆฌ
  • ๊ฒ€์ƒ‰๊ฒฐ๊ณผ :
    • ๋ธŒ๋žœ๋“œ : overflow์‹œ ์˜†์œผ๋กœ ์Šคํฌ๋กค
    • ์ œํ’ˆ : overflow์‹œ ์œ„์•„๋ž˜ ์Šคํฌ๋กค
  • ์„ฑ๋Šฅ์ตœ์ ํ™” : data fetching, data ์ˆœํšŒ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅ
    • ์ฒ˜์Œ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅ์‹œ mockdata์—์„œ filter
    • ์ถ”ํ›„ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅ์‹œ filter๋œ ๋ฐฐ์—ด์„ ๋ฆฌ๋•์Šค state์— ์ €์žฅํ•ด์„œ reducer๋กœ ๋‹ค์‹œ filter
    • ์‚ญ์ œ์‹œ mockdata์—์„œ filter

ezgif com-gif-maker (3)


๐ŸŒŸย ย ๋ฆฌ๋•์Šค ๊ตฌ์กฐ

  • mockdata : ์ฒ˜์Œ์— ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ํ†ตํ•ด ์ดˆ๊ธฐ๊ฐ’ ํ• ๋‹น
  • brandList : mockdata์— ๊ฐ’์ด ๋“ค์–ด์˜จ ๋’ค ๋ธŒ๋žœ๋“œ๋งŒ ์ค‘๋ณต์—†์ด ์ถ”์ถœํ•˜์—ฌ ์ €์žฅ
  • filterList :
    • products : ๊ฒ€์ƒ‰์–ด์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋œ ์ œํ’ˆ ๋ฆฌ์ŠคํŠธ ์ €์žฅ, ํ›„์— ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋  ๋•Œ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๋‘˜์˜ ์˜์กด์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด mockdata์™€ ๊ฐ™์€ ๊ฐ์ฒด๊ตฌ์กฐ ์œ ์ง€
    • brands : ๊ฒ€์ƒ‰์–ด์— ๋”ฐ๋ผ brandList์—์„œ ํ•„ํ„ฐ๋œ ๋ธŒ๋žœ๋“œ๋“ค์„ string ๋ฐฐ์—ด๋กœ ์ €์žฅ

const initialState = {
  mockdata: [] as searchInfo[],
  brandList: [] as string[],
  filterList: {
    products: [] as searchInfo[],
    brands: [] as string[],
  }

interface searchInfo {
  ์ œํ’ˆ๋ช…: string;
  ๋ธŒ๋žœ๋“œ: string;
}

๐Ÿง—โ€ย ย ํ”„๋กœ์ ํŠธ ๊ณผ์ • ์†Œ๊ฐœ

์ง„ํ–‰ ๋ฐฉ์‹

  • ๊ณตํ†ต ์ง„ํ–‰

    • ์ดˆ๊ธฐ์„ธํŒ… : Next.js ์ดˆ๊ธฐ์„ธํŒ… ๋ฐ Prettier, ESLint ์„ค์ •
    • Next.js api ์ด์šฉํ•ด์„œ mockData ์ถ”๊ฐ€
    • Redux Toolkit์„ ์ด์šฉํ•ด์„œ ๊ฒ€์ƒ‰์–ด ํ•„ํ„ฐ reducer, action ์ •์˜ ๋ฐ state ๊ตฌ์กฐ ์ •์˜
    • ์ „์ฒด์ ์ธ style ์ˆ˜์ • (ํ†ต์ผ์„ฑ)
    • VsCode Liveshare๋ฅผ ํ™œ์šฉํ•ด ํŽ˜์–ดํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง„ํ–‰
  • ๊ฐœ๋ณ„ ์—…๋ฌด ๋ถ„๋‹ด : UI ๊ตฌํ˜„

    • [ํ•œ์žฌ์„ฑ] ๋ธŒ๋žœ๋“œ ๋ฒ„ํŠผ UI
    • [์‹ ํ˜œ๋ฆฌ] ๊ฒ€์ƒ‰์ฐฝ UI
    • [์ด์„ ์žฌ] ๊ฒฐ๊ณผ์•„์ดํ…œ UI
    • [์ด๊ฐ€์œค] ๊ฒฐ๊ณผ์ฐฝ UI

ํ˜‘์—… ํˆด

Screen Shot 2022-02-19 at 1 02 06 AM


Git ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

Option: ๋‚ด์šฉ(์ƒ์„ธ ๋‚ด์šฉ)

  • Feat - ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • Fix - ๋ฒ„๊ทธ ์ˆ˜์ •
  • Docs - ์ œํ’ˆ ์ฝ”๋“œ ์ˆ˜์ • ์—†์Œ
  • Style - ์ฝ”๋“œ ํ˜•์‹, ์ •๋ ฌ, ์ฃผ์„ ๋“ฑ์˜ ๋ณ€๊ฒฝ
  • Refactor - ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
  • Test - ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
  • Chore - ํ™˜๊ฒฝ์„ค์ •, ๋นŒ๋“œ ์—…๋ฌด, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์„ค์ •๋“ฑ..

๐Ÿ“˜ย ๊ธฐํƒ€ ์‚ฌํ•ญ

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

โ”œโ”€โ”€ pages
โ”‚ย ย  โ”œโ”€โ”€ _app.tsx
โ”‚ย ย  โ”œโ”€โ”€ api
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ mockData.ts
โ”‚ย ย  โ””โ”€โ”€ index.tsx
โ”œโ”€โ”€ components
โ”‚		โ”œโ”€โ”€ ResultView
โ”‚ย ย  โ”œโ”€โ”€ BrandBtn
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.tsx
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ styled.ts
โ”‚ย ย  โ”œโ”€โ”€ ProductItem
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.tsx
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ styled.ts
โ”‚ย ย  โ””โ”€โ”€ index.tsx
โ”‚ย ย  โ””โ”€โ”€ styled.tsx
โ””โ”€โ”€ SearchBar
โ”‚    โ”œโ”€โ”€ index.tsx
โ”‚    โ””โ”€โ”€ styled.ts
โ”œโ”€โ”€ public
โ”œโ”€โ”€ store
โ”‚ย ย  โ”œโ”€โ”€ searchList.ts
โ”‚ย ย  โ”œโ”€โ”€ store.ts
โ”‚ย ย  โ””โ”€โ”€ types.ts
โ”œโ”€โ”€ styles
โ”‚ย ย  โ”œโ”€โ”€ globalStyle.ts
โ”‚ย ย  โ”œโ”€โ”€ styled.d.ts
โ”‚ย ย  โ””โ”€โ”€ theme.ts
โ””โ”€โ”€ tsconfig.json

โš™ย ย ํ”„๋กœ์ ํŠธ ์„ค์น˜ ๋ฐ ์‹œ์ž‘

ํ”„๋กœ์ ํŠธ ํด๋ก 

$ git clone

ํŒจํ‚ค์ง€ ์„ค์น˜

$ npm install

์„œ๋ฒ„ ์‹คํ–‰

$ npm run dev

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.