๐บ Front End71 [React-redux] ๋ ๊ทธ๋ ๋ฏ Todo List ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉฐ ๋ฐฐ์ฐ๋ ๋ฆฌ์กํธ ๋ฆฌ๋์ค ์ค๋์ React ์์ Redux ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์ฐ์ 2๊ฐ์ง ๊ธฐ์ ์ด ์ ํ๋์ด์ผ ํ๋ค. React์ React-Hooks Redux ์ ๊ธฐ๋ณธ Concept ์ ๋ด์ฉ๋ค์ ๋ชจ๋ฅธ๋ค๋ฉด ์กฐ๊ธ ํ๋ค์ด์ง ์ ์์ผ๋ ์ ๋งํฌ์์ ํ์ธํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค. ๋ชฉ์ฐจ redux์ react-redux์ ์ฐจ์ด redux ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ตฌ์ฑ ์์ Provider useDispatch() useSelector() react-redux ๋ก todo list ๋ง๋ค๊ธฐ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ ์์กด์ฑ ์ถ๊ฐ styled-components react-redux UI ์์ ํ๊ธฐ ํ ํ๋ฉด ๋ง๋ค๊ธฐ ๋ฆฌ๋์ค ์์ ํ๊ธฐ action type ๋ง๋ค๊ธฐ action creator ๋ง๋ค๊ธฐ reducer ๋ง๋ค๊ธฐ s.. 2021. 6. 10. [Javascript] Fetch API๋ก ๊ตฌํํ๋ Ajax ๋น๋๊ธฐ ํต์ ajax XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ์น ์๋ฒ์ ๋น๋๊ธฐ๋ก ํต์ ํ๊ณ , DOM ์ ์ด์ฉํด์ ์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ Asynchronouse JavaScript XML ํ์ฌ XML์ ์ฌ์ฉํ๋๊ฑด ๋๋ฌผ๊ณ JSON์ ์ฌ์ฉ ํ์ด์ง ์๋ก๊ณ ์นจ ์์ด ํน์ ๋ฐ์ดํฐ๋ง ๋ฆฌ๋ก๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ ์์ ์ ์ํ ajax ๊ตฌํํ๊ธฐ ajax๋ฅผ ๊ตฌํํ๋ ๊ธฐ์ ์๋ ์ฌ๋ฌ ๊ธฐ์ ์ด ์กด์ฌํ๋ค. ๊ทธ ์ค์ ๋ํ์ ์ธ 3๊ฐ์ง์์ Fetch API์ ๋ํด์ ์์๋ณด์. XMLHttpRequest Fetch API JQuery Fetch API Fetch API๋ ๊ธฐ๋ณธ์ ์ผ๋ก XMLHttpRequest ๋ณด๋ค ๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ๋ค. ์ด๋ฒคํธ ๊ธฐ๋ฐ์ธ XMLHttpRequest๊ณผ๋ ๋ฌ๋ฆฌ Fetch API๋ Promise ๊ธฐ.. 2021. 2. 26. [Javascript] ์๋ฐ์คํฌ๋ฆฝํธ์์ HTML Element์ ์ด๋ฒคํธ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ ์ด๋ฒ ์๊ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ HTML ์์์ ์ด๋ฒคํธ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๊ณผ Todolist๋ฅผ ๋ง๋ค์ด๋ณด๋ฉฐ ํ์ตํ๋ ์๊ฐ์ ๊ฐ๋๋ก ํ๊ฒ ๋ค. ํ์ต ์์ ์ด๋ฒคํธ ๊ฐ์ฒด๋? ์ด๋ฒคํธ ๋ฑ๋ก, ์ญ์ ํ๊ธฐ addEventListener() removeEventListner() ์ง๊ธ๊น์ง ๋ฐฐ์ด ๋ด์ฉ์ผ๋ก Todo ๋ฆฌ์คํธ ๋ง๋ค์ด๋ณด๊ธฐ ์ด๋ฒคํธ ๋ฑ๋ก, ์ญ์ ํ๊ธฐ ์ฐ๋ฆฌ๋ ์ง๋ ์๊ฐ ๊น์ง HTML Element๋ฅผ ๋ฑ๋ก, ์์ , ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ์๋ค. ์ด๋ฒ ์๊ฐ์๋ ์ฐ๋ฆฌ๊ฐ ์ง๋๋ฒ์ ๋ง๋ Element์ ์ด๋ฒคํธ๋ค ๋ฑ๋ก์์ผ๋ณด๋ ์ผ์ ํ ๊ฒ์ด๋ค. ์ด๋ฒคํธ ๋ฑ๋กํ๊ธฐ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํด์๋ addEventListener() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. target.addEventListener(type, listener, useCapture); targe.. 2021. 2. 20. [Javascript] ์๋ฐ์คํฌ๋ฆฝํธ์์ HTML DOM์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ ์ค๋์ JS ์์ HTML DOM ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ ์กฐ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. ์ค๋ ๋ฐฐ์ธ ๋ด์ฉ๋ค์ด ๋ชจ๋ ์ํฉ์์ ์ฌ์ฉ๋๋ ๊ฒ์ ์๋๊ณ ๋์ถฉ JS ์์๋ ์ด๋ ๊ฒ ํ ์ ์๊ตฌ๋ ํ๋ ์๊ฐ์ด ๋ชฉ์ ์ด๋ค. ๋ ์์ธํ ๋ด์ฉ์ ๋ง์ด ์์ผ๋ ์ด๋ฒ ๊ธ์ ๋ณด๊ณ ๋ฐฉํฅ์ ์ก์๊ฐ๊ธธ ๋ฐ๋๋ค. ํ์ต ์์ ์๋ฆฌ๋จผํธ ๊ฐ์ ธ์ค๊ธฐ getElementById() getElementByName() getElementByClassName() getElementByTagName() ์๋ฆฌ๋จผํธ์ ์ํ๋ ํ ์คํธ ์ถ๊ฐํ๊ธฐ innerHTML innerText ์๋ฆฌ๋จผํธ ์์ฑ, ์ญ์ , ์์ ํ๊ธฐ createElement() appendChild() removeChild() ์๋ฆฌ๋จผํธ ๊ฐ์ ธ์ค๊ธฐ HTML ์์ (Elements)๋ฅผ ์ ์ดํ๋ ค๋ฉด ์ฐ์ HTML .. 2021. 2. 20. [Javascript] ์๋ฐ์คํฌ๋ฆฝํธ์์ JSON ์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ JSON Json ์ JavaScript Object Notation ์ด๋ผ๋ ์๋ฏธ์ ์ถ์ฝ์ด๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ฑฐ๋ ์ ์ฅํ ๋ ์ฌ์ฉ๋๋ ๊ฒฝ๋ ๋ฐ์ดํฐ ํ์์ด๋ค. ๋ณดํต JSON์ REST API ํต์ ํ ๋ ์ฃผ๊ณ ๋ฐ๋ Request, Response Body ์ ์ฌ์ฉํ๋ค. ์ฆ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ์ ๊ต๋ฅ์์ ๋ง์ด ์ฌ์ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฒ๋ฆฌํด์ผํ ๋ด์ฉ์ JSON ๋ฐ์ดํฐ๋ก ๋ณํํ๊ณ ์ ์กํ๋ค. ๊ทธ๋ผ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์จ JSON ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์คํ์ ๋ง๊ฒ ์ฌ๋ณํํ๋ค. ์ฌ๊ธฐ์ ๋ง ํ๋ ์๋ฒ์ ์ํ์ด๋ Java๋ก ๊ตฌ์ฑ๋ ์๋ฒ์ธ์ง, Python์ผ๋ก ๊ตฌ์ฑ๋ ์๋ฒ์ธ์ง๋ฅผ ๋ปํ๋ค. ์๋ JSON์ด๋ผ๋ ๊ฒ์ JavaScript์์ ํ์ํ ํ์์ด๋ผ Js์ ๊ฐ์ฒด์ ๋งค์ฐ ๋น์ทํ๋ค. Javascript Object VS JS.. 2021. 2. 20. [Next.js] Next.js ํ๋ก์ ํธ์์ Storybook์ผ๋ก TDD ํ๊ธฐ (Feat. Atomic Design Pattern) Storybook์ด๋? Storybook์ UI ๊ตฌ์ฑ ์์(์ปดํฌ๋ํธ)๋ฅผ ๊ฐ๋ฐํ๊ธฐ์ํ ์คํ ์์ค ๋๊ตฌ์ด๋ค. React๋ Vue๋ฅผ ๋น๋กฏํ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ง์์ง ํ๋์ ์น Front๊ฐ๋ฐ ์ํ๊ณ์์๋ ์ปดํฌ๋ํธ ํ๋ ํ๋์ ์ญํ ์ด ๋งค์ฐ ์ค์ํด์ก๋ค. ์ฌ๊ธฐ์ ์ปดํฌ๋ํธ๋ ์ธ๋ถ์ ์ํฅ์ ๋ฐ์ง ์๊ฒ Isolated ๋์ด์ผ ํ๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์ Atomic Design Pattern์ด๋ผ๋ ๊ฒ์ด ๋ฑ์ฅํ์๊ณ ๊ทธ์ ๋ฐ๋ผ์ UI ์์ฒด์ ๋ ๋๋ง์๋ ํ ์คํธ๋ฅผ ์ ๊ฒฝ์ธ ์ ์๊ฒ ๋์๋ค. Storybook์ ์ฌ์ค ํ ์คํธ์๋ง ๊ตญํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋๊ณ ๊ฐ๋ฐ๊ณผ ์ดํด๊ด๊ณ์๋ค ์ฌ์ด์์์ ์ํต๊ณผ Docs ๋ฐ Props Test๋ฅผ ์งํํด์ฃผ๋ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ฐ๋ฆฌ๋ ์ด Storybook์ ํตํด์ TDD๋ฅผ ์ง.. 2021. 1. 18. ์ด์ 1 2 3 4 ยทยทยท 12 ๋ค์