ALL (119) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 2์ผ์ฐจ [2์ผ์ฐจ ๊ฐ์๋ช ] Part 1. HTML/CSS/JS๋ก ๋ง๋๋ ์คํ๋ฒ ์ค ์น์ฌ์ดํธ Ch 3. ๋ฌด์์ ์์ํ๊ธฐ Ch 4. ์น์์ ์์ํ๊ธฐ Ch 3. ๋ฌด์์ ์์ํ๊ธฐ ์ฃผ์ ๋ด์ฉ HTML Doctype ๋ฏ์ด๋ณด๊ธฐ ์๋ ๊ฒฝ๋ก์ ์ ๋ ๊ฒฝ๋ก ๊ฐ๋ฐ์ ๋๊ตฌ ์๋ก ์๊ฒ ๋ ์ html ํ์ผ์ ๋ฐ๋ก ํด๋ ์์์ ๊ด๋ฆฌํ๋ฉด ์๋๋ค. => ๋ธ๋ผ์ฐ์ ๋ root ๊ฒฝ๋ก์ ์๋ index๋ผ๋ html ํ์ผ์ ๊ฐ์ฅ ๋จผ์ ์ฐพ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ผ ์ฐ๊ฒฐํ ๋ ์ฃผ๋ณ ํ์ผ or ํด๋๋ฉด /(๋ฃจํธ ๊ธฐ์ค - ์ ๋ ๊ฒฝ๋ก) ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 1์ผ์ฐจ [1์ผ์ฐจ ๊ฐ์๋ช ] Part 1. HTML/CSS/JS๋ก ๋ง๋๋ ์คํ๋ฒ ์ค ์น์ฌ์ดํธ Ch 1. ๊ฐ์ Ch 2. VS Code ํจ์บ ๊ฐ์ ๋ฃ๋ ์ด์ ์ผ๋จ ํจ์บ ์ ์๊ฒ ๋ ๊ฒฝ๋ก๋ [๋ฒจ๋กํผํธ์ ํจ๊ปํ๋ ๋ชจ๋ ๋ฆฌ์กํธ] ๋ผ๋ ๋ธ๋ก๊ทธ ํํ ๋ฆฌ์ผ(?)์ ์๋ ๋ถ์ด ์ถ์ฒํด์ค์ ์ด๊ฑธ๋ก ๋ฆฌ์กํธ๋ฅผ ๊ณต๋ถํ์๋๋ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ต์ฅํ ๋ง์ ๋ค์์๋ค. ๊ทผ๋ฐ ๋ด๊ฐ ๋ณธ ์ด ํํ ๋ฆฌ์ผ์ด ใ ใ ๋ฆฌ์กํธ ๊ฐ์ ์๋ฃ ๋ฌธ์์๋ ๊ฒ์ด๋ค. ์ด๊ฒ ๋ฟ๋ง ์๋๋ผ ใ ใ ๋ญ ์ ๋ช ํ๋๊น ์๊ณ ๋ ์์๋ค! ๋ฐฉํ๋ ํ๊ฒ ๋ค ๋ญํ ๊น ๊ตฌ๊ฒฝํ๋ค๊ฐ ํจ์บ ํํ์ด์ง์ ๋ค์ด๊ฐ๋ดค๋๋ฐ ๊ฐ์๊ฐ ๋๊ฒ ๋ค์ํด์ ๋ช ๋ถ ๋์ ๊ตฌ๊ฒฝํ๋๊ฑฐ ๊ฐ๋ค ๐ค ๊ทผ๋ฐ ์ด ํ๋ก ํธ์๋ ์ด๊ฒฉ์ ํจํค์ง๊ฐ html๋ถํฐ react, ts ๋ฑ๋ฑ... ์ฒ์๋ถํฐ ๋๊น์ง ์ฝ์ค๊ฐ ์ง์ ธ ์๊ณ ts๋ ๋ฐฐ์ฐ๊ณ ์ถ์๋ ์ฐธ์ด๊ธฐ์ ๊ฐ์๋ฅผ ๋ค์ด๋ณด.. React ๊ณต๋ถํ๊ธฐ(8) - ์ํ ๊ด๋ฆฌ, Context API of ๋ฆฌ์กํธ ํ์ ์คํฌ๋ฆฝํธ 3. ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ฆฌ์กํธ ์ํ ๊ด๋ฆฌํ๊ธฐ ์นด์ดํฐ ๋ง๋ค์ด๋ณด๊ธฐ ์ธํ ์ํ ๊ด๋ฆฌํ๊ธฐ useReducer ์ฌ์ฉํด๋ณด๊ธฐ import React, { useReducer } from 'react'; type Color = 'red' | 'orange' | 'yellow'; type State = { count: number; text: string; color: Color; isGood: boolean; }; type Action = | { type: 'SET_COUNT'; count: number } | { type: 'SET_TEXT'; text: string } | { type: 'SET_COLOR'; color: Color } | { type: 'TOGGLE_GOOD' }; function reducer(st.. React ๊ณต๋ถํ๊ธฐ(8) - ๋ฆฌ์กํธ ํ๋ก์ ํธ์์ ํ์ ์คํฌ๋ฆฝํธ ์ฌ์ฉํ๊ธฐ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ 1. IDE(Integrated Development Environment)๋ฅผ ๋์ฑ ๋ ์ ๊ทน์ ์ผ๋ก ํ์ฉ (์๋์์ฑ, ํ์ ํ์ธ) 2. ์ค์ ๋ฐฉ์ง 1. ํ์ ์คํฌ๋ฆฝํธ ์ฐ์ต $ mkdir ts-practice # ts-practice ๋ผ๋ ๋๋ ํฐ๋ฆฌ ์์ฑ $ cd ts-practice # ํด๋น ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ $ yarn init -y # ๋๋ npm init -y ์ด๋ ๊ฒ ํ๋ฉด ts-practice ๋๋ ํฐ๋ฆฌ์ package.json ์ด๋ผ๋ ํ์ผ์ด ๋ง๋ค์ด์ง๋๋ค. ํ์ ์คํฌ๋ฆฝํธ ์ค์ ํ์ผ ์์ฑํ๊ธฐ $ yarn global add typescript ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ ์์์ tsc --init ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด tsconfig.json ํ์ผ์ด ์๋์์ฑ๋ฉ๋๋ค. { "compilerOpti.. React ๊ณต๋ถํ๊ธฐ(7) - redux-saga of ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด 10. redux-saga : "์ก์ ์ ๋ชจ๋ํฐ๋งํ๊ณ ์๋ค๊ฐ, ํน์ ์ก์ ์ด ๋ฐ์ํ๋ฉด ์ด์ ๋ฐ๋ผ ํน์ ์์ ์ ํ๋ค." ์๋ฅผ ๋ค์ด,,, ๋น๋๊ธฐ ์์ ์ ํ ๋ ๊ธฐ์กด ์์ฒญ์ ์ทจ์ ์ฒ๋ฆฌ ํ ์ ์์ต๋๋ค ํน์ ์ก์ ์ด ๋ฐ์ํ์ ๋ ์ด์ ๋ฐ๋ผ ๋ค๋ฅธ ์ก์ ์ด ๋์คํจ์น๋๊ฒ๋ ํ๊ฑฐ๋, ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์คํ ํ ์ ์์ต๋๋ค. ์น์์ผ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Channel ์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋์ฑ ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ๊ด๋ฆฌ ํ ์ ์์ต๋๋ค (์ฐธ๊ณ ) API ์์ฒญ์ด ์คํจํ์ ๋ ์ฌ์์ฒญํ๋ ์์ ์ ํ ์ ์์ต๋๋ค. Generator ๋ฌธ๋ฒ ๋ฐฐ์ฐ๊ธฐ => ํจ์๋ฅผ ์์ฑํ ๋ ํจ์๋ฅผ ํน์ ๊ตฌ๊ฐ์ ๋ฉ์ถฐ ๋์ ์๋ ์๊ณ , ์ํ ๋ ๋ค์ ๋์๊ฐ๊ฒ ํ ์๋ ์๋ค. => ๊ฒฐ๊ณผ๊ฐ์ ์ฌ๋ฌ๋ฒ ๋ฐํํ ์๋ ์๋ค. function* sumGenerator() { co.. React ๊ณต๋ถํ๊ธฐ(7) - redux-thunk of ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด 4. redux-thunk : "์ก์ ๊ฐ์ฒด๊ฐ ์๋ ํจ์๋ฅผ ๋์คํจ์น ํ ์ ์๋ค." => ํจ์๋ฅผ ๋์คํจ์น ํ ๋์๋, ํด๋น ํจ์์์ dispatch์ getState๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์์ฃผ์ด์ผ ํ๋ค. ์ด ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ๋ ํจ์๋ฅผ thunk๋ผ๊ณ ๋ถ๋ฅธ๋ค. const getComments = () => (dispatch, getState) => { // ์ด ์์์๋ ์ก์ ์ dispatch ํ ์๋ ์๊ณ // getState๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ์ํ๋ ์กฐํ ํ ์ ์์ต๋๋ค. const id = getState().post.activeId; // ์์ฒญ์ด ์์ํ์์ ์๋ฆฌ๋ ์ก์ dispatch({ type: 'GET_COMMENTS' }); // ๋๊ธ์ ์กฐํํ๋ ํ๋ก๋ฏธ์ค๋ฅผ ๋ฐํํ๋ getComments ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด .. React ๊ณต๋ถํ๊ธฐ(7) - ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด ๋ณดํต ๋ฆฌ๋์ค์์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฃผ๋ ์ฌ์ฉ ์ฉ๋๋ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ ๋์ด๋ค. (redux-thunk, redux-sage ๋ฑ) $ yarn add redux react-redux 2. ๋ฏธ๋ค์จ์ด ๋ง๋ค์ด๋ณด๊ณ ์ดํดํ๊ธฐ ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด์ ํ ํ๋ฆฟ const middleware = store => next => action => { // ํ๊ณ ์ถ์ ์์ ... } function middleware(store) { return function (next) { return function (action) { // ํ๊ณ ์ถ์ ์์ ... }; }; }; store: ๋ฆฌ๋์ค ์คํ ์ด next: ์ก์ ์ ๋ค์ ๋ฏธ๋ค์จ์ด์๊ฒ ์ ๋ฌํ๋ ํจ์ next(action) action: ํ์ฌ ์ฒ๋ฆฌํ๊ณ ์๋ ์ก์ ๊ฐ์ฒด ๋ฏธ๋ค์จ์ด ์ง์ ์์ฑ.. React ๊ณต๋ถํ๊ธฐ(6) - ๋ฆฌ๋์ค(Redux) ๐ง ๋ฆฌ๋์ค ๊ฐ๋ฐ์๋๊ตฌ ์ ์ฉํ๊ธฐ https://react.vlpt.us/redux/06-redux-devtools.html 6. ๋ฆฌ๋์ค ๊ฐ๋ฐ์๋๊ตฌ ์ ์ฉํ๊ธฐ · GitBook 6. ๋ฆฌ๋์ค ๊ฐ๋ฐ์๋๊ตฌ ์ ์ฉํ๊ธฐ ์ด๋ฒ์๋ ๋ฆฌ๋์ค ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฆฌ๋์ค ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์คํ ์ด์ ์ํ๋ฅผ ๊ฐ๋ฐ์ ๋๊ตฌ์์ ์กฐํ ํ ์ ์ react.vlpt.us 3. ๋ฆฌ๋์ค ์ฌ์ฉํ ์ค๋นํ๊ธฐ import { createStore } from 'redux'; // ์คํ ์ด ์์ฑ import { createStore } from 'redux'; // createStore๋ ์คํ ์ด๋ฅผ ๋ง๋ค์ด์ฃผ๋ ํจ์์ ๋๋ค. // ๋ฆฌ์กํธ ํ๋ก์ ํธ์์๋ ๋จ ํ๋์ ์คํ ์ด๋ฅผ ๋ง๋ญ๋๋ค. /* ๋ฆฌ๋์ค์์ ๊ด๋ฆฌ ํ ์ํ ์ .. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 10 ยทยทยท 15 ๋ค์