JavaScript๋ ํํ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด(prototype-based language)๋ผ๊ณ ์๊ธฐ๋๋ค.์ด ๋ง์ ๋ชจ๋ ๊ฐ์ฒด๋ค์ ๋ฉ์๋์ ์์ฑ๋ค์ ์์ ๋ฐ๊ธฐ ์ํ ํ ํ๋ฆฟ์ผ๋ก์จ ํ๋กํ ํ์ ๊ฐ์ฒด(prototype object)๋ฅผ ๊ฐ์ง๋ค๋ ์๋ฏธ์ด๋ค.
์ ์ฐจ ์งํฅ ํ๋ก๊ทธ๋๋ฐ vs ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ 4๊ฐ์ง ์ฃผ์ ๊ฐ๋ ์๋ ์บก์ํ(Encapsulation), ์ถ์ํ(Abstraction), ์์(Inheritance), ๋คํ์ฑ(Polymorphism)์ด ์์ต๋๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํด๋์ค์ ์ธ์คํด์ค์ ๋ํด์ ํ์ตํ์์ต๋๋ค.
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๊ธฐ์ํด ์ฌ์ฉ์๋ก๋ถํฐ ๊ฐ์ ์ ๋ ฅ๋ฐ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์๋ค.prompt๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง์๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ด์ฅ ๋ชจ๋ ์ค readline ๋ชจ๋์ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.readline ๋ชจ๋์ rl ๊ฐ์ฒด๋ event-driven ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
closure: ๋ซํ / ํ์ / ์๊ฒฐ์ฑmdn์์๋ ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋น์์ lexical environment์ combination์ด๋ค. โ ์๋ก์ด ํ์์ด ๋์ค๋ ๊ฒํจ์ X ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋น์์ lexical environmentโ ์คํ ์ฝํ ์คํธ A์ ๋ด
Javascript ํต์ฌ ๊ฐ๋ ์์๋ณด๊ธฐ - JS Flow ๋ฅผ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํฉ๋๋ค. ES6 ์ด์ ๊น์ง์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ๋ฐ์ ์ธ ํ๋ฆ์ ๊ณต๋ถํฉ๋๋ค.
์คํ ์ฝํ ์คํธ๋ ํด๋น ํจ์๊ฐ ํธ์ถ๋ ๋ ํ์ฑํ๋๋๋ฐ this๋ ํจ์๋ฅผ ํธ์ถํ ๋ ๊ฒฐ์ ๋๋ค.์ ์ญ ๊ณต๊ฐ์์์ํจ์ ํธ์ถ์๋ฉ์๋ ํธ์ถ์callback ํธ์ถ์์์ฑ์ ํจ์ ํธ์ถ์์ ์ญ ๊ณต๊ฐ์์๋ ์ ์ญ ์ฝํ ์คํธ๋ฅผ ์คํํ๋ ๊ฐ์ฒด๊ฐ ์ ์ญ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ โก๏ธ ๋ธ๋ผ์ฐ์ ์์๋ windowโก
์คํ ์ฝํ ์คํธ๋?์คํ์ ํ์ํ ์ฝ๋ ํ๋ฆ์์ ๋ฐฐ๊ฒฝ์ด ๋๋ ์กฐ๊ฑด/ํ๊ฒฝ์ ๋ํ๋ธ๋ค.ES5 ํ๊ฒฝ์์๋ ๋์ผํ ์กฐ๊ฑด/ํ๊ฒฝ์ ์ง๋๋ ๊ฒฝ์ฐ๊ฐ ํจ์ or ์ ์ญ ๊ณต๊ฐ์ด๋ค.์ ์ญ ๊ณต๊ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํํ๋ ์๊ฐ์ ์ ์ญ ์ฝํ ์คํธ๊ฐ ์ด๋ฆฌ๊ณ , ํจ์๋ฅผ ์คํํ ๋ ์๋๋ฉด ๊ฐ์ ์ ์ญ ๊ณต๊ฐ
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ์ดํฐ์ 2๊ฐ์ง ๋ฐ์ดํฐ ํ์ ์ ์ฐจ์ด์ ๊ณผ ๊ทธ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ ์์ธ์ ๋ํด์ ์ดํด ๋ณผ ๊ฒ์ด๋ค.์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ ํ์ ์ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋๋๋ฐ Primivite Type, Reference Type์ผ๋ก ๋ถ๋ฆฌ๋๋ค.NumberStringBooleannullund
๊ธฐ์กด ์ฝ๋ > ๋ฒํผ ํด๋ฆญ์ ๊ฐ๊ฐ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํตํด ๊ธฐ๋ฅ์ด ๋์๋๋ค. ๊ฒ์ ์์ ๊ฒ์ ๋ฉ์ถค ๊ฒ์ ์น, ํจ์ ๋ฐ๋ผ ๊ทธ ์์์ ๊ฐ๊ฐ ์๋ฆผ ์๋ฆฌ์ ์๋ฆผ์ฐฝ์ ๋ค๋ฅด๊ฒ ์ค์ ํ๋ค. ๊ฒ์ ์๊ฐ์ ์ด๊ธฐํํ๋ค. ๋จ์ ๊ฒ์ ์๊ฐ์ ๋ณด์ฌ์ฃผ๋ ํจ์ ๋จ์ ๋ชฉํ ๊ฐ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ํจ์ ๋ฒํผ ์จ
๊ฒ์์์ญ์ ์ก์์ผ๋๋๋ฐ ๋ถ๋ชจ ๋ฐ์ค์ display: flex๋ฅผ ์ฃผ๊ณ ๊ฒ์ ์์ญ์๋ ๋์ผํ๊ฒ ์ฃผ์๋๋ฐ ๊ทธ๋ด ํ์๊ฐ ์์ด๋ถ๋ชจ ๋ฐ์ค์ ์๋์ ์์ฑ๋ง ์ฃผ์ด๋ ๋ด๊ฐ ์ํ๋ ๋๋ก ์ ์์น๋ฅผ ์ก์ ์ ์์๋ค.\--> ๋ด๊ฐ ์๊ฒ๋ชจ๋ฅด๊ฒ ๋ถ๋ชจ ํ๊ทธ์๋ display: flex๋ง ์ฃผ๋ คํ๊ณ
๊ตฌํํ ๋ ํ์ํ ๊ฒ ์๊ฐํด๋ณด๊ธฐ์ ํ๋ ์๊ฐ์์ ๋น๊ทผ์ ์์ ์ ์น๋ฆฌํด์ผ๋๋ ๊ฒ์์ ๋ง๋ค๊ฒ์ด๋ค๊ธฐ๋ฅsetInterval์ ์ด์ฉํด์ ํ์ด๋จธ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ๋น๊ทผ์ ์ ํ์๊ฐ์์ ๋ค ์์ ๋ฉด ์น๋ฆฌ๋ฒ๋ ๋ฅผ ํด๋ฆญํ ๊ฒฝ์ฐ ๊ฒ์์ด ๋๋๋ค์ ํ๋ ์๊ฐ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๊ณ , ๋จ์ ๋น๊ทผ์ ๊ฐ์๋ฅผ ๋ณด
Vanilla Redux - To Do List >
HTML์ด ๋ชจ๋ ๋ก๋๋๊ธฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ญ์์ HTML์ ์ฐธ์กฐํ๋๋ฐ addEventListener์์ HTMLํ๊ทธ๋ฅผ ์ฐธ์กฐํ์ง ๋ชปํด์ ๊ณ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.๋ณดํต body ํ๊ทธ๊ฐ ๋๋๊ธฐ ๋ฐ๋ก ์์ ๋ถ๋ถ์ script์ ์์น๋ฅผ ์ฎ๊ฒจ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ง์ด๋ค ์ฌ์ฉํ๋๋ฐ๋๋
๋จผ์ Redux๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด yarn add redux or npm install redux ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค.import { createStore } from 'redux'redux์ createStore๋ฅผ importํ๋ค.store๋ data, state๋ฅผ ๊ด๋ฆฌํ๋
ํ์ฌ ๋ฆฌ์กํธ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ ๊น๊ฒ ๊ณต๋ถํ๊ณ ์๋ ์ค์ด๋ค.๋ฆฌ์กํธ๋ฅผ ์ด์ฉํ๋ฉด html์ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋๋ฅผ ํ๋์ฝ๋ฉํ์ง ์์๋ ๋์ง๋ง, ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ ๋ง๋ค ์ ์์ด์ผ ๋๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ์ html ๊ตฌ์กฐ๋ฅผ ์ง๋๊ฒ์ ๋ง์ ์๊ฐ์ ํฌ์ํ๊ณ ์๋์ค์ด๋ค.๐ป ์ค๋ ฅ์
๊ตฌํ ํ๋ฉด2021.05.11});
๊ตฌํํ ๋ ํ์ํ ๊ฒ ์๊ฐํด๋ณด๊ธฐ๊ธฐ๋ฅ1-1. ์ฌ์ฉ์๊ฐ ์ ๋ ฅ์ฐฝ์ ๋ชฉ๋ก์ ์ ๋ ฅํ๊ณ Enter key ๋๋ +๋ฒํผ์ ํด๋ฆญํ์ ๋ ํ๋ฉด์ ์ผํ ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ๋ค.1-2. ๋ชฉ๋ก ์ค๋ฅธ์ชฝ์๋ ํด์งํต ์์ด์ฝ์ด ์๋๋ฐ ์ด๊ฒ์ ํด๋ฆญํ๋ฉด,ํด๋น ์ผํ ๋ชฉ๋ก์ด ๋ฆฌ์คํธ์์ ์ง์์ง๋ค.UI2-1. ์ฌ
ํ๋์ Request์๋ Head, Body๋ก ์ด๋ฃจ์ด์ง ๋ถ๋ถ์ด ์กด์ฌํ๋ค.HeadRequest์ ๋ํ ์ฌ๋ฌ๊ฐ์ง ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ค์ด ๋ค์ด์๋ค.๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ method๊ฐ์ด ์กด์ฌํ๋ค.BodyRequest์ ๋ํ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ๋ถ๋ถ์ด๋ค.Request๋ฅผ ๋ณด๋ผ ๋ ์ด๋ค