/yaong2-meow

๐Ÿฑ ์•ผ์˜น์ด ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ์•ผ์˜น์ด ๊ฒ€์ƒ‰๊ธฐ

Primary LanguageJavaScriptMIT LicenseMIT

๐Ÿฑ ์•ผ์˜น์ด ๋ณด๊ตฌ๊ฐ€ netlify_success

์•ผ์˜น์ด ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ์•ผ์˜น์ด ๋Šฅ๋ ฅ์น˜/์‚ฌ์ง„ ๊ฒ€์ƒ‰๊ธฐ

main_page

๐Ÿฑ ์•ผ์˜น์ด ๋ณด๊ตฌ๊ฐ€

Motivation

์š”์ฆ˜ ๋Œ€์„ธ๋Š” ๋ฐ”๋‹๋ผ์Šคํฌ๋ฆฝํŠธ๋‹ค ๐ŸŽ‰

์ˆ˜๋งŽ์€ ๋ฐ”๋‹๋ผ์Šคํฌ๋ฆฝํŠธ ๊ณผ์ œ ์ „ํ˜•์„ ๋šซ๊ณ  ๋‚˜์•„๊ฐ€์ž.. ๐Ÿƒ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋„์›€ ์—†์ด, ์˜ค์ง ๋ฐ”๋‹๋ผ์Šคํฌ๋ฆฝํŠธ๋กœ๋งŒ!

ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ์„ค์ •๋ถ€ํ„ฐ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ, ๊ธฐ๋Šฅ ๊ตฌํ˜„๊นŒ์ง€ ๋ฉ˜๋•…์— ํ—ค๋”ฉ ๐Ÿคฏ ํ•˜๋ฉด์„œ ๋ฐ”๋‹๋ผ์Šคํฌ๋ฆฝํŠธ ์ œ๋Œ€๋กœ ์ตํ˜€๋ณด์ž ๐Ÿ”ฅ

Project Main Goal

  • ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœํ•˜์ž.
  • ์ปดํฌ๋„ŒํŠธ ์ถ”์ƒํ™”, ์ปดํฌ๋„ŒํŠธ ์˜์กด๋„, ์ƒํƒœ ๊ด€๋ฆฌ ๋“ฑ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๊ผญ ์ง€์ผœ์•ผ ํ•  ๊ทœ์น™์€ ์ง€ํ‚ค๋ฉด์„œ ๊ฐœ๋ฐœํ•˜์ž.
  • ๋ Œ๋”๋ง์€ ์ •ํ•ด์ง„ ์ƒํ™ฉ ์ด์™ธ์˜ ์ƒํ™ฉ์—์„œ ์ ˆ๋Œ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ฐœ๋ฐœํ•˜์ž.
  • ES6 ํ‘œ์ค€ ๋ชจ๋“ˆํ™” ํŒจํ„ด์„ ์ ์šฉํ•˜์ž.
  • ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์“ฐ์ž.
  • ๋ถˆํ•„์š”ํ•œ API ํ˜ธ์ถœ์€ ์ตœ์†Œํ™”ํ•˜์ž.
  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์‹ ๊ฒฝ์“ฐ์ž.
  • HTML Semantic Tags๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์šฉํ•˜์ž.

Main Feature

  • ๋‚ด๊ฐ€ ํ‚ค์šฐ๊ณ  ์‹ถ์€ ๊ณ ์–‘์ด ์ข…์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด, ํ•ด๋‹น ๊ณ ์–‘์ด ์ข…์— ํ•ด๋‹นํ•˜๋Š” ๊ณ ์–‘์ด๋“ค์˜ ๋Šฅ๋ ฅ์น˜์™€ ์‚ฌ์ง„์„ ์ œ๊ณตํ•ด์ค€๋‹ค ๐Ÿ˜ฝ

  • ๊ฒ€์ƒ‰์ฐฝ์„ ๋น„์šฐ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด, ๊ณ ์–‘์ด ์‚ฌ์ง„์„ ๋žœ๋ค์œผ๋กœ ์ œ๊ณตํ•ด์ค€๋‹ค

Additional Feature

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒซ ๋กœ๋”ฉ ์‹œ, API ๊ฒ€์ƒ‰ ์š”์ฒญ ์‹œ Loader๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค.

  • ๋‹คํฌ ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒซ ๋กœ๋”ฉ ์‹œ, ์ด์ „ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์„ ํ™•์ธํ•˜์—ฌ ๋ฐฉ๋ฌธํ•œ ๊ธฐ๋ก์ด ์žˆ๋‹ค๋ฉด ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ดค๋˜ ๋ชจ๋“œ๋Œ€๋กœ, ์•„๋‹ˆ๋ผ๋ฉด ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์„ค์ •๋œ ์„ ํ˜ธ ๋ชจ๋“œ๋Œ€๋กœ ํ‘œ์‹œํ•œ๋‹ค.

  • ์ด๋ฏธ์ง€ ๋ ˆ์ด์ง€ ๋กœ๋”ฉ์„ ์ง€์›ํ•œ๋‹ค. ๋ทฐํฌํŠธ์— ์ด๋ฏธ์ง€ ์˜์—ญ์ด ๋“ค์–ด์™€์•ผ ์ด๋ฏธ์ง€ ๋ Œ๋”๋ง์ด ์‹œ์ž‘๋œ๋‹ค.

  • ์ด์ƒํ•œ ๊ฒ€์ƒ‰์–ด์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” Toast๋ฅผ ํ†ตํ•ด ์•Œ๋ ค์ค€๋‹ค.

What I Learned

  • ๊ธฐ์ดˆ์  ๊ธฐ๋Šฅ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์ง€๋งŒ, ์‚ฌ์‹ค ๊ฐ€์žฅ ํฐ ์ˆ˜ํ™•์€ ๋ฐ”๋‹๋ผ์Šคํฌ๋ฆฝํŠธ๋กœ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ์  ๐Ÿ“
  • ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ์•„๋‹ˆ๊ณ  ์ปดํฌ๋„ŒํŠธ ์ถ”์ƒํ™”, ์ปดํฌ๋„ŒํŠธ ์˜์กด๋„ ๋“ฑ์„ ๋ฐ”๋‹๋ผ์Šคํฌ๋ฆฝํŠธ๋กœ ์ตœ๋Œ€ํ•œ ์‹ ๊ฒฝ์จ๋ณด๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ํ—˜๋‚œํ–ˆ๋˜ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๋ณด๋ ค๋ฉด commit log๋ฅผ ๊ตฌ๊ฒฝํ•˜์ž. ๋จธ๋ฆฌ๋กœ๋Š” ์•Œ๊ณ  ์žˆ๋˜ ๊ฐœ๋…๋„ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋ ค๋‹ˆ ์ž”์‹ค์ˆ˜๊ฐ€ ๋งŽ์•˜๋‹ค. ๐Ÿ˜ข

Links

Problems Should Be Fixed

ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜

  • if-else ๋ฌธ ์‚ฌ์šฉ์„ ์ž์ œํ•˜๊ณ ์ž ํ–ˆ๋Š”๋ฐ ์ฝ”๋“œ๋ฅผ ์งง๊ฒŒ ์“ฐ์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

SelectSection.js

  • SelectSection ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•˜๋Š” ์ผ์ด ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค.
  • ํ•œ ๊ฐœ๋งŒ ์กด์žฌํ•˜๊ณ  ํ•œ ๋ฒˆ๋งŒ ๋ Œ๋”๋ง๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์ด๊ธด ํ•˜์ง€๋งŒ, render() ๋ฉ”์†Œ๋“œ์—์„œ ์ด๋ฒคํŠธ ํ• ๋‹น์ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์ ์€ ์ข‹์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค.

Project Setup

  • Install
npm install
  • Run Webpack Dev Server
npm run dev