https://product.kyobobook.co.kr/detail/S000001792882
๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ | ๊น๋ฏผ์ค - ๊ต๋ณด๋ฌธ๊ณ
๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ | ๋ณธ๋ฌธ๊ณผ ์์ค ์ ๋ฉด ์ ๊ทธ๋ ์ด๋! ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๊ผผ๊ผผํ๊ฒ! ์ค์ ์์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ๊น์ง ์์ฐจ๊ฒ ๋ฐฐ์ฐ์! ๊ฐ์ ํ์ด ๋์์ต๋๋ค. ๋ฆฌ์กํธ 16.8 ๋ฒ์ ์ Hooks๋ผ๋ ๊ธฐ๋ฅ์ด ๋
product.kyobobook.co.kr
28์ฅ์ ์์๋ก 8๊ฐ ํํธ๋ก ๋๋์์ต๋๋ค๐
1๏ธโฃ ๋ฆฌ์กํธ ๊ธฐ๋ณธ ๋ฐ JSX
โ๏ธ1์ฅ ๋ฆฌ์กํธ ์์
__1.1 ์ ๋ฆฌ์กํธ์ธ๊ฐ?
____1.1.1 ๋ฆฌ์กํธ ์ดํด
__1.2 ๋ฆฌ์กํธ์ ํน์ง
____1.2.1 Virtual DOM
____1.2.2 ๊ธฐํ ํน์ง
__1.3 ์์ ํ๊ฒฝ ์ค์
____1.3.1 Node.js์ npm
____1.3.2 yarn
____1.3.3 ์๋ํฐ ์ค์น
____1.3.4 Git ์ค์น
____1.3.5 create-react-app์ผ๋ก ํ๋ก์ ํธ ์์ฑํ๊ธฐ
โ๏ธ2์ฅ JSX
__2.1 ์ฝ๋ ์ดํดํ๊ธฐ
__2.2 JSX๋?
__2.3 JSX์ ์ฅ์
____2.3.1 ๋ณด๊ธฐ ์ฝ๊ณ ์ต์ํ๋ค
____2.3.2 ๋์ฑ ๋์ ํ์ฉ๋
__2.4 JSX ๋ฌธ๋ฒ
____2.4.1 ๊ฐ์ธ์ธ ์์
____2.4.2 ์๋ฐ์คํฌ๋ฆฝํธ ํํ
____2.4.3 If ๋ฌธ ๋์ ์กฐ๊ฑด๋ถ ์ฐ์ฐ์
____2.4.4 AND ์ฐ์ฐ์(&&)๋ฅผ ์ฌ์ฉํ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
____2.4.5 undefined๋ฅผ ๋ ๋๋งํ์ง ์๊ธฐ
____2.4.6 ์ธ๋ผ์ธ ์คํ์ผ๋ง
____2.4.7 class ๋์ className
____2.4.8 ๊ผญ ๋ซ์์ผ ํ๋ ํ๊ทธ
____2.4.9 ์ฃผ์
__2.5 ESLint์ Prettier ์ ์ฉํ๊ธฐ
____2.5.1 ESLint
____2.5.2 Prettier
__2.6 ์ ๋ฆฌ
2๏ธโฃ ์ปดํฌ๋ํธ ๋ฐ ์ด๋ฒคํธ ํธ๋ค๋ง
โ๏ธ3์ฅ ์ปดํฌ๋ํธ
__3.1 ํด๋์คํ ์ปดํฌ๋ํธ
__3.2 ์ฒซ ์ปดํฌ๋ํธ ์์ฑ
____3.2.1 src ๋๋ ํฐ๋ฆฌ์ MyComponent.js ํ์ผ ์์ฑ
____3.2.2 ์ฝ๋ ์์ฑํ๊ธฐ
____3.2.3 ๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ ๋ฐ ๋ถ๋ฌ์ค๊ธฐ
__3.3 props
____3.3.1 JSX ๋ด๋ถ์์ props ๋ ๋๋ง
____3.3.2 ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ๋ props ๊ฐ ์ง์ ํ๊ธฐ
____3.3.3 props ๊ธฐ๋ณธ๊ฐ ์ค์ : defaultProps
____3.3.4 ํ๊ทธ ์ฌ์ด์ ๋ด์ฉ์ ๋ณด์ฌ ์ฃผ๋ children
____3.3.5 ๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ์ ํตํด props ๋ด๋ถ ๊ฐ ์ถ์ถํ๊ธฐ
____3.3.6 propTypes๋ฅผ ํตํ props ๊ฒ์ฆ
____3.3.7 ํด๋์คํ ์ปดํฌ๋ํธ์์ props ์ฌ์ฉํ๊ธฐ
__3.4 state
____3.4.1 ํด๋์คํ ์ปดํฌ๋ํธ์ state
____3.4.2 ํจ์ํ ์ปดํฌ๋ํธ์์ useState ์ฌ์ฉํ๊ธฐ
__3.5 state๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ ์ฌํญ
__3.6 ์ ๋ฆฌ
โ๏ธ4์ฅ ์ด๋ฒคํธ ํธ๋ค๋ง
__4.1 ๋ฆฌ์กํธ์ ์ด๋ฒคํธ ์์คํ
____4.1.1 ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ ์ฌํญ
____4.1.2 ์ด๋ฒคํธ ์ข ๋ฅ
__4.2 ์์ ๋ก ์ด๋ฒคํธ ํธ๋ค๋ง ์ตํ๊ธฐ
____4.2.1 ์ปดํฌ๋ํธ ์์ฑ ๋ฐ ๋ถ๋ฌ์ค๊ธฐ
____4.2.2 onChange ์ด๋ฒคํธ ํธ๋ค๋งํ๊ธฐ
____4.2.3 ์์ ๋ฉ์๋ ๋ง๋ค๊ธฐ
____4.2.4 input ์ฌ๋ฌ ๊ฐ ๋ค๋ฃจ๊ธฐ
____4.2.5 onKeyPress ์ด๋ฒคํธ ํธ๋ค๋ง
__4.3 ํจ์ํ ์ปดํฌ๋ํธ๋ก ๊ตฌํํด ๋ณด๊ธฐ
__4.4 ์ ๋ฆฌ
3๏ธโฃ DOM ์กฐ์๊ณผ ์ปดํฌ๋ํธ ๋ฐ๋ณต
โ๏ธ5์ฅ ref: DOM์ ์ด๋ฆ ๋ฌ๊ธฐ
__5.1 ref๋ ์ด๋ค ์ํฉ์์ ์ฌ์ฉํด์ผ ํ ๊น?
____5.1.1 ์์ ์ปดํฌ๋ํธ ์์ฑ
____5.1.2 App ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ ๋ ๋๋ง
____5.1.3 DOM์ ๊ผญ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ
__5.2 ref ์ฌ์ฉ
____5.2.1 ์ฝ๋ฐฑ ํจ์๋ฅผ ํตํ ref ์ค์
____5.2.2 createRef๋ฅผ ํตํ ref ์ค์
____5.2.3 ์ ์ฉ
__5.3 ์ปดํฌ๋ํธ์ ref ๋ฌ๊ธฐ
____5.3.1 ์ฌ์ฉ๋ฒ
____5.3.2 ์ปดํฌ๋ํธ ์ด๊ธฐ ์ค์
____5.3.3 ์ปดํฌ๋ํธ์ ๋ฉ์๋ ์์ฑ
____5.3.4 ์ปดํฌ๋ํธ์ ref ๋ฌ๊ณ ๋ด๋ถ ๋ฉ์๋ ์ฌ์ฉ
__5.4 ์ ๋ฆฌ
โ๏ธ6์ฅ ์ปดํฌ๋ํธ ๋ฐ๋ณต
__6.1 ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ map() ํจ์
____6.1.1 ๋ฌธ๋ฒ
____6.1.2 ์์
__6.2 ๋ฐ์ดํฐ ๋ฐฐ์ด์ ์ปดํฌ๋ํธ ๋ฐฐ์ด๋ก ๋ณํํ๊ธฐ
____6.2.1 ์ปดํฌ๋ํธ ์์ ํ๊ธฐ
____6.2.2 App ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ ๋ ๋๋ง
__6.3 key
____6.3.1 key ์ค์
__6.4 ์์ฉ
____6.4.1 ์ด๊ธฐ ์ํ ์ค์ ํ๊ธฐ
____6.4.2 ๋ฐ์ดํฐ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
____6.4.3 ๋ฐ์ดํฐ ์ ๊ฑฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
__6.5 ์ ๋ฆฌ
4๏ธโฃ ์ปดํฌ๋ํธ์ ๋ผ์ดํ์ฌ์ดํด๊ณผ Hooks
โ๏ธ7์ฅ ์ปดํฌ๋ํธ์ ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋
__7.1 ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋์ ์ดํด
__7.2 ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋ ์ดํด๋ณด๊ธฐ
____7.2.1 render( ) ํจ์
____7.2.2 constructor ๋ฉ์๋
____7.2.3 getDerivedStateFromProps ๋ฉ์๋
____7.2.4 componentDidMount ๋ฉ์๋
____7.2.5 shouldComponentUpdate ๋ฉ์๋
____7.2.6 getSnapshotBeforeUpdate ๋ฉ์๋
____7.2.7 componentDidUpdate ๋ฉ์๋
____7.2.8 componentWillUnmount ๋ฉ์๋
____7.2.9 componentDidCatch ๋ฉ์๋
__7.3 ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋ ์ฌ์ฉํ๊ธฐ
____7.3.1 ์์ ์ปดํฌ๋ํธ ์์ฑ
____7.3.2 App ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ ์ฌ์ฉ
____7.3.3 ์๋ฌ ์ก์๋ด๊ธฐ
__7.4 ์ ๋ฆฌ
โ๏ธ8์ฅ Hooks
__8.1 useState
____8.1.1 useState๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๊ธฐ
__8.2 useEffect
____8.2.1 ๋ง์ดํธ๋ ๋๋ง ์คํํ๊ณ ์ถ์ ๋
____8.2.2 ํน์ ๊ฐ์ด ์ ๋ฐ์ดํธ๋ ๋๋ง ์คํํ๊ณ ์ถ์ ๋
____8.2.3 ๋ท์ ๋ฆฌํ๊ธฐ
__8.3 useReducer
____8.3.1 ์นด์ดํฐ ๊ตฌํํ๊ธฐ
____8.3.2 ์ธํ ์ํ ๊ด๋ฆฌํ๊ธฐ
__8.4 useMemo
__8.5 useCallback
__8.6 useRef
____8.6.1 ๋ก์ปฌ ๋ณ์ ์ฌ์ฉํ๊ธฐ
__8.7 ์ปค์คํ Hooks ๋ง๋ค๊ธฐ
__8.8 ๋ค๋ฅธ Hooks
__8.9 ์ ๋ฆฌ
5๏ธโฃ ์ปดํฌ๋ํธ ์คํ์ผ๋ง๊ณผ ์ฑ๋ฅ ์ต์ ํ
โ๏ธ9์ฅ ์ปดํฌ๋ํธ ์คํ์ผ๋ง
__9.1 ๊ฐ์ฅ ํํ ๋ฐฉ์, ์ผ๋ฐ CSS
____9.1.1 ์ด๋ฆ ์ง๋ ๊ท์น
____9.1.2 CSS Selector
__9.2 Sass ์ฌ์ฉํ๊ธฐ
____9.2.1 utils ํจ์ ๋ถ๋ฆฌํ๊ธฐ
____9.2.2 sass-loader ์ค์ ์ปค์คํฐ๋ง์ด์งํ๊ธฐ
____9.2.3 node_modules์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ๋ฌ์ค๊ธฐ
__9.3 CSS Module
____9.3.1 classnames
____9.3.2 Sass์ ํจ๊ป ์ฌ์ฉํ๊ธฐ
____9.3.3 CSS Module์ด ์๋ ํ์ผ์์ CSS Module ์ฌ์ฉํ๊ธฐ
__9.4 styled-components
____9.4.1 Tagged ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด
____9.4.2 ์คํ์ผ๋ง๋ ์๋ฆฌ๋จผํธ ๋ง๋ค๊ธฐ
____9.4.3 ์คํ์ผ์์ props ์กฐํํ๊ธฐ
____9.4.4 props์ ๋ฐ๋ฅธ ์กฐ๊ฑด๋ถ ์คํ์ผ๋ง
____9.4.5 ๋ฐ์ํ ๋์์ธ
__9.5 ์ ๋ฆฌ
โ๏ธ10์ฅ ์ผ์ ๊ด๋ฆฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
__10.1 ํ๋ก์ ํธ ์ค๋นํ๊ธฐ
____10.1.1 ํ๋ก์ ํธ ์์ฑ ๋ฐ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
____10.1.2 Prettier ์ค์
____10.1.3 index.css ์์
____10.1.4 App ์ปดํฌ๋ํธ ์ด๊ธฐํ
__10.2 UI ๊ตฌ์ฑํ๊ธฐ
____10.2.1 TodoTemplate ๋ง๋ค๊ธฐ
____10.2.2 TodoInsert ๋ง๋ค๊ธฐ
____10.2.3 TodoListItem๊ณผ TodoList ๋ง๋ค๊ธฐ
__10.3 ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
____10.3.1 App์์ todos ์ํ ์ฌ์ฉํ๊ธฐ
____10.3.2 ํญ๋ชฉ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
____10.3.3 ์ง์ฐ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
____10.3.4 ์์ ๊ธฐ๋ฅ
__10.4 ์ ๋ฆฌ
โ๏ธ11์ฅ ์ปดํฌ๋ํธ ์ฑ๋ฅ ์ต์ ํ
__11.1 ๋ง์ ๋ฐ์ดํฐ ๋ ๋๋งํ๊ธฐ
__11.2 ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํตํ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง
__11.3 ๋๋ ค์ง๋ ์์ธ ๋ถ์
__11.4 React.memo๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ ์ฑ๋ฅ ์ต์ ํ
__11.5 onToggle, onRemove ํจ์๊ฐ ๋ฐ๋์ง ์๊ฒ ํ๊ธฐ
____11.5.1 useState์ ํจ์ํ ์ ๋ฐ์ดํธ
____11.5.2 useReducer ์ฌ์ฉํ๊ธฐ
__11.6 ๋ถ๋ณ์ฑ์ ์ค์์ฑ
__11.7 TodoList ์ปดํฌ๋ํธ ์ต์ ํํ๊ธฐ
__11.8 react-virtualized๋ฅผ ์ฌ์ฉํ ๋ ๋๋ง ์ต์ ํ
____11.8.1 ์ต์ ํ ์ค๋น
____11.8.2 TodoList ์์
____11.8.3 TodoListItem ์์
__11.9 ์ ๋ฆฌ
โ๏ธ12์ฅ immer๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ฝ๊ฒ ๋ถ๋ณ์ฑ ์ ์งํ๊ธฐ
__12.1 immer๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉ๋ฒ ์์๋ณด๊ธฐ
____12.1.1 ํ๋ก์ ํธ ์ค๋น
____12.1.2 immer๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ถ๋ณ์ฑ ์ ์ง
____12.1.3 immer ์ฌ์ฉ๋ฒ
____12.1.4 App ์ปดํฌ๋ํธ์ immer ์ ์ฉํ๊ธฐ
____12.1.5 useState์ ํจ์ํ ์ ๋ฐ์ดํธ์ immer ํจ๊ป ์ฐ๊ธฐ
__12.2 ์ ๋ฆฌ
6๏ธโฃ ๋ฆฌ๋์ค์ ์ํ ๊ด๋ฆฌ
โ๏ธ13์ฅ ๋ฆฌ์กํธ ๋ผ์ฐํฐ๋ก SPA ๊ฐ๋ฐํ๊ธฐ
__13.1 SPA๋?
____13.1.1 SPA์ ๋จ์
__13.2 ํ๋ก์ ํธ ์ค๋น ๋ฐ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ
____13.2.1 ํ๋ก์ ํธ ์์ฑ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
____13.2.2 ํ๋ก์ ํธ์ ๋ผ์ฐํฐ ์ ์ฉ
____13.2.3 ํ์ด์ง ๋ง๋ค๊ธฐ
____13.2.4 Route ์ปดํฌ๋ํธ๋ก ํน์ ์ฃผ์์ ์ปดํฌ๋ํธ ์ฐ๊ฒฐ
____13.2.5 Link ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ฃผ์๋ก ์ด๋ํ๊ธฐ
__13.3 Route ํ๋์ ์ฌ๋ฌ ๊ฐ์ path ์ค์ ํ๊ธฐ
__13.4 URL ํ๋ผ๋ฏธํฐ์ ์ฟผ๋ฆฌ
____13.4.1 URL ํ๋ผ๋ฏธํฐ
____13.4.2 URL ์ฟผ๋ฆฌ
__13.5 ์๋ธ ๋ผ์ฐํธ
__13.6 ๋ฆฌ์กํธ ๋ผ์ฐํฐ ๋ถ๊ฐ ๊ธฐ๋ฅ
____13.6.1 history
____13.6.2 withRouter
____13.6.3 Switch
____13.6.4 NavLink
__13.7 ์ ๋ฆฌ
โ๏ธ14์ฅ ์ธ๋ถ API๋ฅผ ์ฐ๋ํ์ฌ ๋ด์ค ๋ทฐ์ด ๋ง๋ค๊ธฐ
__14.1 ๋น๋๊ธฐ ์์ ์ ์ดํด
____14.1.1 ์ฝ๋ฐฑ ํจ์
____14.1.2 Promise
____14.1.3 async/await
__14.2 axios๋ก API ํธ์ถํด์ ๋ฐ์ดํฐ ๋ฐ์ ์ค๊ธฐ
__14.3 newsapi API ํค ๋ฐ๊ธ๋ฐ๊ธฐ
__14.4 ๋ด์ค ๋ทฐ์ด UI ๋ง๋ค๊ธฐ
____14.4.1 NewsItem ๋ง๋ค๊ธฐ
____14.4.2 NewsList ๋ง๋ค๊ธฐ
__14.5 ๋ฐ์ดํฐ ์ฐ๋ํ๊ธฐ
__14.6 ์นดํ ๊ณ ๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
____14.6.1 ์นดํ ๊ณ ๋ฆฌ ์ ํ UI ๋ง๋ค๊ธฐ
____14.6.2 API๋ฅผ ํธ์ถํ ๋ ์นดํ ๊ณ ๋ฆฌ ์ง์ ํ๊ธฐ
__14.7 ๋ฆฌ์กํธ ๋ผ์ฐํฐ ์ ์ฉํ๊ธฐ
____14.7.1 ๋ฆฌ์กํธ ๋ผ์ฐํฐ์ ์ค์น ๋ฐ ์ ์ฉ
____14.7.2 NewsPage ์์ฑ
____14.7.3 Categories์์ NavLink ์ฌ์ฉํ๊ธฐ
__14.8 usePromise ์ปค์คํ Hook ๋ง๋ค๊ธฐ
__14.9 ์ ๋ฆฌ
โ๏ธ15์ฅ Context API
__15.1 Context API๋ฅผ ์ฌ์ฉํ ์ ์ญ ์ํ ๊ด๋ฆฌ ํ๋ฆ ์ดํดํ๊ธฐ
__15.2 Context API ์ฌ์ฉ๋ฒ ์ตํ๊ธฐ
____15.2.1 ์ Context ๋ง๋ค๊ธฐ
____15.2.2 Consumer ์ฌ์ฉํ๊ธฐ
____15.2.3 Provider
__15.3 ๋์ Context ์ฌ์ฉํ๊ธฐ
____15.3.1 Context ํ์ผ ์์ ํ๊ธฐ
____15.3.2 ์๋ก์์ง Context๋ฅผ ํ๋ก์ ํธ์ ๋ฐ์ํ๊ธฐ
____15.3.3 ์์ ์ ํ ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
__15.4 Consumer ๋์ Hook ๋๋ static contextType ์ฌ์ฉํ๊ธฐ
____15.4.1 useContext Hook ์ฌ์ฉํ๊ธฐ
____15.4.2 static contextType ์ฌ์ฉํ๊ธฐ
__15.5 ์ ๋ฆฌ
โ๏ธ16์ฅ ๋ฆฌ๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ดํดํ๊ธฐ
__16.1 ๊ฐ๋ ๋ฏธ๋ฆฌ ์ ๋ฆฌํ๊ธฐ
____16.1.1 ์ก์
____16.1.2 ์ก์ ์์ฑ ํจ์
____16.1.3 ๋ฆฌ๋์
____16.1.4 ์คํ ์ด
____16.1.5 ๋์คํจ์น
____16.1.6 ๊ตฌ๋
__16.2 ๋ฆฌ์กํธ ์์ด ์ฐ๋ ๋ฆฌ๋์ค
____16.2.1 Parcel๋ก ํ๋ก์ ํธ ๋ง๋ค๊ธฐ
____16.2.2 ๊ฐ๋จํ UI ๊ตฌ์ฑํ๊ธฐ
____16.2.3 DOM ๋ ํผ๋ฐ์ค ๋ง๋ค๊ธฐ
____16.2.4 ์ก์ ํ์ ๊ณผ ์ก์ ์์ฑ ํจ์ ์ ์
____16.2.5 ์ด๊น๊ฐ ์ค์
____16.2.6 ๋ฆฌ๋์ ํจ์ ์ ์
____16.2.7 ์คํ ์ด ๋ง๋ค๊ธฐ
____16.2.8 render ํจ์ ๋ง๋ค๊ธฐ
____16.2.9 ๊ตฌ๋ ํ๊ธฐ
____16.2.10 ์ก์ ๋ฐ์์ํค๊ธฐ
__16.3 ๋ฆฌ๋์ค์ ์ธ ๊ฐ์ง ๊ท์น
____16.3.1 ๋จ์ผ ์คํ ์ด
____16.3.2 ์ฝ๊ธฐ ์ ์ฉ ์ํ
____16.3.3 ๋ฆฌ๋์๋ ์์ํ ํจ์
__16.4 ์ ๋ฆฌ
โ๏ธ17์ฅ ๋ฆฌ๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ํ ๊ด๋ฆฌํ๊ธฐ
__17.1 ์์ ํ๊ฒฝ ์ค์
__17.2 UI ์ค๋นํ๊ธฐ
____17.2.1 ์นด์ดํฐ ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
____17.2.2 ํ ์ผ ๋ชฉ๋ก ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
__17.3 ๋ฆฌ๋์ค ๊ด๋ จ ์ฝ๋ ์์ฑํ๊ธฐ
____17.3.1 counter ๋ชจ๋ ์์ฑํ๊ธฐ
____17.3.2 todos ๋ชจ๋ ๋ง๋ค๊ธฐ
____17.3.3 ๋ฃจํธ ๋ฆฌ๋์ ๋ง๋ค๊ธฐ
__17.4 ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ๋์ค ์ ์ฉํ๊ธฐ
____17.4.1 ์คํ ์ด ๋ง๋ค๊ธฐ
____17.4.2 Provider ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ์ ๋ฆฌ๋์ค ์ ์ฉํ๊ธฐ
____17.4.3 Redux DevTools์ ์ค์น ๋ฐ ์ ์ฉ
__17.5 ์ปจํ ์ด๋ ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
____17.5.1 CounterContainer ๋ง๋ค๊ธฐ
____17.5.2 TodosContainer ๋ง๋ค๊ธฐ
__17.6 ๋ฆฌ๋์ค ๋ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ
____17.6.1 redux-actions
____17.6.2 immer
__17.7 Hooks๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
____17.7.1 useSelector๋ก ์ํ ์กฐํํ๊ธฐ
____17.7.2 useDispatch๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ ๋์คํจ์นํ๊ธฐ
____17.7.3 useStore๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ๋์ค ์คํ ์ด ์ฌ์ฉํ๊ธฐ
____17.7.4 TodosContainer๋ฅผ Hooks๋ก ์ ํํ๊ธฐ
____17.7.5 useActions ์ ํธ Hook์ ๋ง๋ค์ด์ ์ฌ์ฉํ๊ธฐ
____17.7.6 connect ํจ์์์ ์ฃผ์ ์ฐจ์ด์
__17.8 ์ ๋ฆฌ
โ๏ธ18์ฅ ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด๋ฅผ ํตํ ๋น๋๊ธฐ ์์ ๊ด๋ฆฌ
__18.1 ์์ ํ๊ฒฝ ์ค๋น
__18.2 ๋ฏธ๋ค์จ์ด๋?
____18.2.1 ๋ฏธ๋ค์จ์ด ๋ง๋ค๊ธฐ
____18.2.2 redux-logger ์ฌ์ฉํ๊ธฐ
__18.3 ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฏธ๋ค์จ์ด ์ฌ์ฉ
____18.3.1 redux-thunk
____18.3.2 redux-saga
__18.4 ์ ๋ฆฌ
7๏ธโฃ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋ฐ ๋ฐฑ์๋ ํตํฉ
โ๏ธ19์ฅ ์ฝ๋ ์คํ๋ฆฌํ
__19.1 ์๋ฐ์คํฌ๋ฆฝํธ ํจ์ ๋น๋๊ธฐ ๋ก๋ฉ
__19.2 React.lazy์ Suspense๋ฅผ ํตํ ์ปดํฌ๋ํธ ์ฝ๋ ์คํ๋ฆฌํ
____19.2.1 state๋ฅผ ์ฌ์ฉํ ์ฝ๋ ์คํ๋ฆฌํ
____19.2.2 React.lazy์ Suspense ์ฌ์ฉํ๊ธฐ
____19.2.3 Loadable Components๋ฅผ ํตํ ์ฝ๋ ์คํ๋ฆฌํ
__19.3 ์ ๋ฆฌ
โ๏ธ20์ฅ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง
__20.1 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์ดํด
____20.1.1 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์ฅ์
____20.1.2 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ๋จ์
____20.1.3 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง๊ณผ ์ฝ๋ ์คํ๋ฆฌํ ์ถฉ๋
__20.2 ํ๋ก์ ํธ ์ค๋นํ๊ธฐ
____20.2.1 ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
____20.2.2 ํ์ด์ง ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
__20.3 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๊ตฌํํ๊ธฐ
____20.3.1 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ฉ ์ํธ๋ฆฌ ๋ง๋ค๊ธฐ
____20.3.2 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ์ ์ฉ ์นํฉ ํ๊ฒฝ ์ค์ ์์ฑํ๊ธฐ
____20.3.3 ๋น๋ ์คํฌ๋ฆฝํธ ์์ฑํ๊ธฐ
____20.3.4 ์๋ฒ ์ฝ๋ ์์ฑํ๊ธฐ
____20.3.5 ์ ์ ํ์ผ ์ ๊ณตํ๊ธฐ
__20.4 ๋ฐ์ดํฐ ๋ก๋ฉ
____20.4.1 redux-thunk ์ฝ๋ ์ค๋นํ๊ธฐ
____20.4.2 Users, UsersContainer ์ปดํฌ๋ํธ ์ค๋นํ๊ธฐ
____20.4.3 PreloadContext ๋ง๋ค๊ธฐ
____20.4.4 ์๋ฒ์์ ๋ฆฌ๋์ค ์ค์ ๋ฐ PreloadContext ์ฌ์ฉํ๊ธฐ
____20.4.5 ์คํฌ๋ฆฝํธ๋ก ์คํ ์ด ์ด๊ธฐ ์ํ ์ฃผ์ ํ๊ธฐ
____20.4.6 redux-saga ์ฝ๋ ์ค๋นํ๊ธฐ
____20.4.7 User, UserContainer ์ปดํฌ๋ํธ ์ค๋นํ๊ธฐ
____20.4.8 redux-saga๋ฅผ ์ํ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ์์
____20.4.9 usePreloader Hook ๋ง๋ค์ด์ ์ฌ์ฉํ๊ธฐ
__20.5 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง๊ณผ ์ฝ๋ ์คํ๋ฆฌํ
____20.5.1 ๋ผ์ฐํธ ์ปดํฌ๋ํธ ์คํ๋ฆฌํ ํ๊ธฐ
____20.5.2 ์นํฉ๊ณผ babel ํ๋ฌ๊ทธ์ธ ์ ์ฉ
____20.5.3 ํ์ํ ์ฒญํฌ ํ์ผ ๊ฒฝ๋ก ์ถ์ถํ๊ธฐ
____20.5.4 loadableReady์ hydrate
__20.6 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ํ๊ฒฝ ๊ตฌ์ถ์ ์ํ ๋์
____20.6.1 Next.js
____20.6.2 Razzle
__20.7 ์ ๋ฆฌ
โ๏ธ21์ฅ ๋ฐฑ์๋ ํ๋ก๊ทธ๋๋ฐ: Node.js์ Koa ํ๋ ์์ํฌ
__21.1 ์๊ฐํ๊ธฐ
____21.1.1 ๋ฐฑ์๋
____21.1.2 Node.js
____21.1.3 Koa
__21.2 ์์ ํ๊ฒฝ ์ค๋น
____21.2.1 Node ์ค์น ํ์ธ
____21.2.2 ํ๋ก์ ํธ ์์ฑ
____21.2.3 ESLint์ Prettier ์ค์
__21.3 Koa ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
____21.3.1 ์๋ฒ ๋์ฐ๊ธฐ
____21.3.2 ๋ฏธ๋ค์จ์ด
__21.4 nodemon ์ฌ์ฉํ๊ธฐ
__21.5 koa-router ์ฌ์ฉํ๊ธฐ
____21.5.1 ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
____21.5.2 ๋ผ์ฐํธ ํ๋ผ๋ฏธํฐ์ ์ฟผ๋ฆฌ
____21.5.3 REST API
____21.5.4 ๋ผ์ฐํธ ๋ชจ๋ํ
____21.5.5 posts ๋ผ์ฐํธ ์์ฑ
__21.6 ์ ๋ฆฌ
โ๏ธ22์ฅ mongoose๋ฅผ ์ด์ฉํ MongoDB ์ฐ๋ ์ค์ต
__22.1 ์๊ฐํ๊ธฐ
____22.1.1 ๋ฌธ์๋?
____22.1.2 MongoDB ๊ตฌ์กฐ
____22.1.3 ์คํค๋ง ๋์์ธ
__22.2 MongoDB ์๋ฒ ์ค๋น
____22.2.1 ์ค์น
____22.2.2 MongoDB ์๋ ํ์ธ
__22.3 mongoose์ ์ค์น ๋ฐ ์ ์ฉ
____22.3.1 .env ํ๊ฒฝ๋ณ์ ํ์ผ ์์ฑ
____22.3.2 mongoose๋ก ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
__22.4 esm์ผ๋ก ES ๋ชจ๋ import/export ๋ฌธ๋ฒ ์ฌ์ฉํ๊ธฐ
____22.4.1 ๊ธฐ์กด ์ฝ๋ ES Module ํํ๋ก ๋ฐ๊พธ๊ธฐ
__22.5 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ๋ชจ๋ธ
____22.5.1 ์คํค๋ง ์์ฑ
____22.5.2 ๋ชจ๋ธ ์์ฑ
__22.6 MongoDB Compass์ ์ค์น ๋ฐ ์ฌ์ฉ
__22.7 ๋ฐ์ดํฐ ์์ฑ๊ณผ ์กฐํ
____22.7.1 ๋ฐ์ดํฐ ์์ฑ
____22.7.2 ๋ฐ์ดํฐ ์กฐํ
____22.7.3 ํน์ ํฌ์คํธ ์กฐํ
__22.8 ๋ฐ์ดํฐ ์ญ์ ์ ์์
____22.8.1 ๋ฐ์ดํฐ ์ญ์
____22.8.2 ๋ฐ์ดํฐ ์์
__22.9 ์์ฒญ ๊ฒ์ฆ
____22.9.1 ObjectId ๊ฒ์ฆ
____22.9.2 Request Body ๊ฒ์ฆ
__22.10 ํ์ด์ง๋ค์ด์ ๊ตฌํ
____22.10.1 ๊ฐ์ง ๋ฐ์ดํฐ ์์ฑํ๊ธฐ
____22.10.2 ํฌ์คํธ๋ฅผ ์ญ์์ผ๋ก ๋ถ๋ฌ์ค๊ธฐ
____22.10.3 ๋ณด์ด๋ ๊ฐ์ ์ ํ
____22.10.4 ํ์ด์ง ๊ธฐ๋ฅ ๊ตฌํ
____22.10.5 ๋ง์ง๋ง ํ์ด์ง ๋ฒํธ ์๋ ค ์ฃผ๊ธฐ
____22.10.6 ๋ด์ฉ ๊ธธ์ด ์ ํ
__22.11 ์ ๋ฆฌ
โ๏ธ23์ฅ JWT๋ฅผ ํตํ ํ์ ์ธ์ฆ ์์คํ ๊ตฌํํ๊ธฐ
__23.1 JWT์ ์ดํด
____23.1.1 ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ๊ณผ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ ์ฐจ์ด
__23.2 User ์คํค๋ง/๋ชจ๋ธ ๋ง๋ค๊ธฐ
____23.2.1 ๋ชจ๋ธ ๋ฉ์๋ ๋ง๋ค๊ธฐ
____23.2.2 ์คํํฑ ๋ฉ์๋ ๋ง๋ค๊ธฐ
__23.3 ํ์ ์ธ์ฆ API ๋ง๋ค๊ธฐ
____23.3.1 ํ์๊ฐ์ ๊ตฌํํ๊ธฐ
____23.3.2 ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ
__23.4 ํ ํฐ ๋ฐ๊ธ ๋ฐ ๊ฒ์ฆํ๊ธฐ
____23.4.1 ๋น๋ฐํค ์ค์ ํ๊ธฐ
____23.4.2 ํ ํฐ ๋ฐ๊ธํ๊ธฐ
____23.4.3 ํ ํฐ ๊ฒ์ฆํ๊ธฐ
____23.4.4 ํ ํฐ ์ฌ๋ฐ๊ธํ๊ธฐ
____23.4.5 ๋ก๊ทธ์์ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
__23.5 posts API์ ํ์ ์ธ์ฆ ์์คํ ๋์ ํ๊ธฐ
____23.5.1 ์คํค๋ง ์์ ํ๊ธฐ
____23.5.2 posts ์ปฌ๋ ์ ๋น์ฐ๊ธฐ
____23.5.3 ๋ก๊ทธ์ธํ์ ๋๋ง API๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๊ธฐ
____23.5.4 ํฌ์คํธ ์์ฑ ์ ์ฌ์ฉ์ ์ ๋ณด ๋ฃ๊ธฐ
____23.5.5 ํฌ์คํธ ์์ ๋ฐ ์ญ์ ์ ๊ถํ ํ์ธํ๊ธฐ
__23.6 username/tags๋ก ํฌ์คํธ ํํฐ๋งํ๊ธฐ
__23.7 ์ ๋ฆฌ
8๏ธโฃ ํ๋ฐํธ์๋ ํ๋ก์ ํธ์ ํ์ ์ธ์ฆ ๊ตฌํ
โ๏ธ24์ฅ ํ๋ฐํธ์๋ ํ๋ก์ ํธ: ์์ ๋ฐ ํ์ ์ธ์ฆ ๊ตฌํ
__24.1 ์์ ํ๊ฒฝ ์ค๋นํ๊ธฐ
____24.1.1 ์ค์ ํ์ผ ๋ง๋ค๊ธฐ
____24.1.2 ๋ผ์ฐํฐ ์ ์ฉ
____24.1.3 ์คํ์ผ ์ค์
____24.1.4 Button ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
____24.1.5 ๋ฆฌ๋์ค ์ ์ฉ
__24.2 ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ ๊ตฌํ
____24.2.1 UI ์ค๋นํ๊ธฐ
____24.2.2 ๋ฆฌ๋์ค๋ก ํผ ์ํ ๊ด๋ฆฌํ๊ธฐ
____24.2.3 API ์ฐ๋ํ๊ธฐ
____24.2.4 ํ์๊ฐ์ ๊ตฌํ
____24.2.5 ๋ก๊ทธ์ธ ๊ตฌํ
____24.2.6 ํ์ ์ธ์ฆ ์๋ฌ ์ฒ๋ฆฌํ๊ธฐ
__24.3 ํค๋ ์ปดํฌ๋ํธ ์์ฑ ๋ฐ ๋ก๊ทธ์ธ ์ ์ง
____24.3.1 ํค๋ ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
____24.3.2 ๋ก๊ทธ์ธ ์ํ๋ฅผ ๋ณด์ฌ ์ฃผ๊ณ ์ ์งํ๊ธฐ
____24.3.3 ๋ก๊ทธ์์ ๊ธฐ๋ฅ ๊ตฌํ
__24.4 ์ ๋ฆฌ
โ๏ธ25์ฅ ํ๋ฐํธ์๋ ํ๋ก์ ํธ: ๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
__25.1 ์๋ํฐ UI ๊ตฌํํ๊ธฐ
__25.2 ์๋ํฐ ํ๋จ ์ปดํฌ๋ํธ UI ๊ตฌํํ๊ธฐ
____25.2.1 TagBox ๋ง๋ค๊ธฐ
__25.3 ๋ฆฌ๋์ค๋ก ๊ธ์ฐ๊ธฐ ์ํ ๊ด๋ฆฌํ๊ธฐ
____25.3.1 EditorContainer ๋ง๋ค๊ธฐ
____25.3.2 TagBoxContainer ๋ง๋ค๊ธฐ
____25.3.3 ๊ธ์ฐ๊ธฐ API ์ฐ๋ํ๊ธฐ
__25.4 ์ ๋ฆฌ
โ๏ธ26์ฅ ํ๋ฐํธ์๋ ํ๋ก์ ํธ: ํฌ์คํธ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
__26.1 ํฌ์คํธ ์ฝ๊ธฐ ํ์ด์ง ๊ตฌํํ๊ธฐ
____26.1.1 PostViewer UI ์ค๋นํ๊ธฐ
____26.1.2 API ์ฐ๋ํ๊ธฐ
__26.2 ํฌ์คํธ ๋ชฉ๋ก ํ์ด์ง ๊ตฌํํ๊ธฐ
____26.2.1 PostList UI ์ค๋นํ๊ธฐ
____26.2.2 ํฌ์คํธ ๋ชฉ๋ก ์กฐํ API ์ฐ๋ํ๊ธฐ
____26.2.3 HTML ํํฐ๋งํ๊ธฐ
____26.2.4 ํ์ด์ง๋ค์ด์ ๊ตฌํํ๊ธฐ
__26.3 ์ ๋ฆฌ
โ๏ธ27์ฅ ํ๋ฐํธ์๋ ํ๋ก์ ํธ: ์์ /์ญ์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ ๋ง๋ฌด๋ฆฌ
__27.1 ํฌ์คํธ ์์
____27.1.1 PostActionButtons ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
____27.1.2 ์์ ๋ฒํผ ํด๋ฆญ ์ ๊ธ์ฐ๊ธฐ ํ์ด์ง๋ก ์ด๋ํ๊ธฐ
__27.2 ํฌ์คํธ ์ญ์
__27.3 react-helmet-async๋ก meta ํ๊ทธ ์ค์ ํ๊ธฐ
__27.4 ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌ
____27.4.1 ํ๋ก์ ํธ ๋น๋ํ๊ธฐ
____27.4.2 koa-static์ผ๋ก ์ ์ ํ์ผ ์ ๊ณตํ๊ธฐ
____27.4.3 ๋ ํ ์ ์๋ ์์
__27.5 ์ ๋ฆฌ
โ๏ธ28์ฅ ๊ทธ๋ค์์?
__28.1 ๋ฆฌ์กํธ ๊ด๋ จ ์ปค๋ฎค๋ํฐ
____28.1.1 ๊ตญ๋ด ์ปค๋ฎค๋ํฐ
____28.1.2 ๊ตญ์ธ ์ปค๋ฎค๋ํฐ
__28.2 ์ฑ ์ ์ฐ์ฅ์
__28.3 ์ฌ์ด๋ ํ๋ก์ ํธ ์์ฑ
'๐งฉFront-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] JSX ๋ฌธ๋ฒ 17๊ฐ์ง ๋น ๋ฅด๊ฒ ์ดํด๋ณด๊ธฐ (0) | 2024.09.06 |
---|---|
[JS] ES6 ๋ฌธ๋ฒ 8๊ฐ์ง ์์ ๋ก ์ดํด๋ณด๊ธฐ (1) | 2024.09.06 |
[React] ๋ฆฌ์กํธ ๊ฐ์ ๋ฐ ํ๊ฒฝ์ค์ ๊ฐ์ด๋ (0) | 2024.08.31 |
[Front-End] React, Angular, Vue.js ๊ฐ๋จ ๋น๊ต (0) | 2024.08.23 |