,

1.01365 = 37.8

JavaScript

Momentum ์ต์Šคํ…์…˜ ํด๋ก ์ฝ”๋”ฉ

July 23, 2022

Momentum์ด ๋ญ”๋ฐ?

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

Momentum ์ต์Šคํ…์…˜

๋ฌผ๋ก  ์›น์„ ์ž˜ ์•Œ์ง€๋„ ๋ชปํ•˜๋Š” ๋‚ด๊ฐ€ ๋…์ฐฝ์ ์œผ๋กœ ์ด๊ฑธ ํด๋ก ์ฝ”๋”ฉํ•ด๋ณด์ž๋Š” ๊ธฐํŠนํ•œ ์ƒ๊ฐ์„ ํ•˜์ง„ ์•Š์•˜๊ฒ ๊ณ , ๋…ธ๋งˆ๋“œ ์ฝ”๋”์˜ ๋ฐ”๋‹๋ผ JS๋กœ ํฌ๋กฌ ์•ฑ ๋งŒ๋“ค๊ธฐ ๊ฐ•์˜์—์„œ ํ•˜๊ธธ๋ž˜ ํ•œ๋ฒˆ ํ•ด๋ดค๋‹ค. ํ•„์ž๋Š” ์œ„ ๊ฐ•์˜์— ๋”ํ•˜์—ฌ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰, ๋ฝ€๋ชจ๋„๋กœ ํƒ€์ด๋จธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ฐฐํฌํ•ด๋‘์—ˆ์œผ๋‹ˆ ์ฐธ๊ณ  ๋ฐ”๋ž€๋‹ค.

๊ฒฐ๊ณผ๋ฌผ ์‚ฌ์ง„

Features

  • localStorage๋ฅผ ํ™œ์šฉํ•œ Todo CRUD
  • 25๋ถ„(1๋ฝ€๋ชจ๋„๋กœ) ํƒ€์ด๋จธ
  • ํ˜„์žฌ ์‹œ๊ฐ(Date), ํ˜„์žฌ ๋‚ ์”จ(OpenWeatherMap API) ํ‘œ์‹œ
  • ๋žœ๋ค ๋ฐฐ๊ฒฝ, ๋žœ๋ค ๋ช…์–ธ
  • ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•˜๋Š” Input

TIL

1. BEM ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜

Block-Element-Modifier์˜ ์•ฝ์ž๋กœ HTML ํด๋ž˜์Šค๋ช… ์ง€์„ ๋•Œ ์ฃผ๋กœ ์“ด๋‹ค.

.block__element--modifier ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.
์˜ˆ) contact-form__button-submit--03_disable

2. ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ

SEO ์ตœ์ ํ™”, ์›น ์ ‘๊ทผ์„ฑ ํ–ฅ์ƒ, ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์จ์•ผ ํ•œ๋‹ค.

semantic-tag

3. defer

  1. head์— ๊ทธ๋ƒฅ script ์ถ”๊ฐ€ : HTML์€ ํŒŒ์‹ฑ ์ค‘ ๋งˆ์ฃผ์น˜๋Š” ์ˆœ์„œ๋Œ€๋กœ blockํ•œ ๋’ค fetch & execute ํ•˜๊ธฐ ๋•Œ๋ฌธ์— body ์œ„์— ํ•˜๋Š” ๊ฑด ์ข‹์ง€ ์•Š๋‹ค.
  2. body ์•ˆ ๋ ๋ถ€๋ถ„์— script ์ถ”๊ฐ€ : body๋ฅผ ๋นจ๋ฆฌ ๋ณผ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ JS ์˜์กด์ด ํฐ ํŽ˜์ด์ง€๋ผ๋ฉด ๋น„์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋Š๋‚„ ๊ฒƒ์ด๋‹ค.
  3. head์— async : HTML ํŒŒ์‹ฑ๊ณผ ๋ณ‘๋ ฌ๋กœ fetchํ•œ ๋’ค executeํ•  ๋•Œ๋งŒ HTML ํŒŒ์‹ฑ์„ blockํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํŒŒ์‹ฑ๋˜๊ธฐ๋„ ์ „์— querySelector ๊ฐ™์€๊ฒŒ ์‹คํ–‰๋  ์ˆ˜๋„ ์žˆ๊ณ  ๋จผ์ € fetch ์™„๋ฃŒ๋œ ๊ฒƒ๋ถ€ํ„ฐ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— JS ๊ฐ„ ์‹คํ–‰ ์ˆœ์„œ๋„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.
  4. head์— defer : fetch๊นŒ์ง€๋Š” async์™€ ๋˜‘๊ฐ™์ง€๋งŒ execute๋ฅผ ํŒŒ์‹ฑ ์™„๋ฃŒ ์‹œ์ ์œผ๋กœ ์ง€์—ฐ์‹œํ‚ค๊ณ , JS๊ฐ€ ์ž‘์„ฑ๋œ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰์‹œํ‚จ๋‹ค.

4. Flexbox

  • flex-direction
  • justify-contents & align-items
  • flex-basis & flex-grow & flex-shrink

๊ธฐํƒ€

  • localStorage set & get
  • setInterval & clearInterval
  • fetch (Promise)

์†Œ๊ฐ

Momentum ์ต์Šคํ…์…˜์ด๋ž‘ ๋„ˆ๋ฌด ๋˜‘๊ฐ™๊ฒŒ ๋งŒ๋“œ๋Š”๋ฐ ์ง‘์ค‘ํ•˜๋Š๋ผ ์˜คํžˆ๋ ค ์ฐฝ์˜์„ฑ์ด ๋ถ€์กฑํ–ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด, ๊ฐ™์€ ๊ธฐ๋Šฅ์ด์ง€๋งŒ ์–ผ๋งˆ๋‚˜ ๋‹ค์–‘ํ•œ ๋””์ž์ธ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฐํƒ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŒ€ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ๊ตฐ๋Œ€๋ผ ๊ทธ๋Ÿด ์ˆ˜ ์—†์–ด ๋„ˆ๋ฌด ์•„์‰ฝ๋‹ค.

ยฉ 2023. yongjun park