์ ์ฒด ๊ธ (54) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์ค์ ํ๋ก์ ํธ - ๋ด๋๋ด์ฌ ๊ด๊ณ ์๋ ์๋งน์ด๋ก ๊ฐ๋ ์ฐฌ ์ ๋ณด๋ฅผ ์ฐพ๊ณ ์ถ์ผ์๋ค๋ฉด ์ ์ ๋ค์ด ๋ด ๋์ผ๋ก ์ฌํํ๊ณ ์ธ์ฆํ๋ ๋ด๋๋ด์ฌ๋ฅผ ์จ๋ณด์ธ์! ๊ด๊ณ ์๋ ์ฌํ ํ๊ธฐ ๋ด๋๋ด์ฌ๋ก ๋ ๋๊ธฐ โ๏ธ Back-End Github ๐ Front-End Github ๐ ๐ง๐ป๐ป๐ฉ๐ป๐ป ํ์ ์๊ฐ ์๋น์ค ๊ฐ์ ๋ด ๋๋ด๊ณ ๋ด๊ฐ ์ฌํํ๋, ์ง์ ์ฑ์๋ ๊ตญ๋ด ๋จ๊ธฐ ์ฌํ ์ ๋ณด ๊ณต์ ํ๋ซํผ ์๋น์ค ์๋น์ค ์ํคํ ์ณ Front-end node.js, ์ฌ์ฉ์ ์์ฒญ์ ๋ฐ๋ฅธ ๊ฐ๊ธฐ ๋ค๋ฅธ ์น์ฌ์ดํธ๋ฅผ ๋ณด์ฌ์ค ์ ์๋๋ก ๋์ ์น ํธ์คํ ์ด ๊ฐ๋ฅํ EC2์, ๋ฆฌ๋ฒ์ค ํ๋ก์๋ก์์ ์ญํ ์ ํ๋ฉฐ ์๋ฒ๊ฐ SSL ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ฐ ๋๋ ๋น์ฉ์ด ์๋ nginx๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ ๋ณด์์ ์ํด https ํ๊ฒฝ์ผ๋ก ๋๊น์๋ ์๋น์ค๋ฅผ ์ ๊ณต ํ ์ ์๊ณ ๋ง์ ๋ ํผ๋ฐ์ค๋ฅผ ๊ฐ์ง PM2๋ฅผ ํตํ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ .. 20221105 React Hooks - Custom Hooks ์ปค์คํ ํ Hook์ ๊ท์น React ํจ์ ๊ตฌ์ฑ ์์ ๋ด์์๋ง ํธ์ถํ ์ ์์(๋ฐ๋์ Functional Component ์์์ ์ฌ์ฉํด์ผ ํจ) ๊ตฌ์ฑ ์์์ ์ต์์์์๋ง ํธ์ถํ ์ ์์ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ์์์ ๋ชป ์ Custom Hook - ๋ ๊ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์์์ ๊ฐ์ ๋ก์ง์ ๊ณต์ ํ๊ณ ์ ํ ๋๋ ๋ ๋ค๋ฅธ ํจ์๋ก ๋ถ๋ฆฌ ํจ. - ์ค๋ณต๋ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ํจ์๋ก ๋ง๋ค์ด์ ์ค๋ณต์ ์ ๊ฑฐํ ์ ์์. - ์ปค์คํ ํ ๋ด๋ถ์์ ๋ค๋ฅธ ํ ๋ค์ ์์ ๋กญ๊ฒ ์กฐํฉ๊ฐ๋ฅ(ํ์ํ ์ธํฐํ์ด์ค์ ๊ธฐ๋ฅ ์ถ๊ฐ ๊ฐ๋ฅ) - ์ปค์คํ ํ ๋ด๋ถ์์ ์ปค์คํ ํ ์ด ๊ฐ์ง๋ ์คํ ์ดํธ์ ์ดํํธ๋ ์์ ํ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ์ด ์์ฃผ ์ข์ use0000 ์ฒ๋ผ ๋ฐ๋์ ๋งจ ์์ use๋ผ๋ ๋จ์ด๋ฅผ ๋ถ์ฌ์ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด Hook์ด๋ผ๋ ๊ฑธ ์ ์ ์๊ฒ ํด์ค.. 20221104 React Hooks - useReducer Hook์ ๊ท์น React ํจ์ ๊ตฌ์ฑ ์์ ๋ด์์๋ง ํธ์ถํ ์ ์์(๋ฐ๋์ Functional Component ์์์ ์ฌ์ฉํด์ผ ํจ) ๊ตฌ์ฑ ์์์ ์ต์์์์๋ง ํธ์ถํ ์ ์์ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ์์์ ๋ชป ์ useReducer - useState์ ๋์ฒดํจ์ - ์ฝ๋ฐฑ ๋์ ๋์คํจ์น๋ฅผ ์ ๋ฌ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ธํ ์ ๋ฐ์ดํธ๋ฅผ ํธ๋ฆฌ๊ฑฐ ํ๋ ์ปดํฌ๋ํธ์ ์ฑ๋ฅ์ ์ต์ ํ ํ ์ ์์ - useReducer๋ฅผ ์ฌ์ฉํ ๋ ๋ค์์ ํ์๊ฐ์ ํฌํจํ๋ ๋ณต์กํ ์ ์ ๋ก์ง์ ๋ง๋๋ ๊ฒฝ์ฐ state๊ฐ ์ด์ state์ ์์กด์ ์ธ ๊ฒฝ์ฐ์ ๋ณดํต useState๋ณด๋ค useReducer๋ฅผ ์ ํธ reducer : state๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ๋ ์ญํ dispatch: state ์ ๋ฐ์ดํธ๋ฅผ ์ํ ์๊ตฌ action: ์๊ตฌ์ ๋ด์ฉ ๋์คํจ์น๋ก ์ก์ (์.. 20221103 React - ๊ฐ์๋ (Virtual DOM) DOM(Document Object Model) ์นํ์ด์ง์ ๋ค์ด๊ฐ ์๋ ๊ตฌ์กฐ๋ค์ ํธ๋ฆฌํํ๋ก ๊ตฌ์ฑํ ๊ฒ Virtual DOM (VDOM) ๊ฐ์๋ UI์ ์ด์์ ์ธ ๋๋ "๊ฐ์"์ ์ธ ํํ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ReactDOM๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด “์ค์ ” DOM๊ณผ ๋๊ธฐํํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ . ์ด ๊ณผ์ ์ ์ฌ์กฐ์ (Reconciliation)์ด๋ผ๊ณ ํจ. - ๋ฆฌ์กํธ๋ ๊ฐ์๋์ ์ฌ์ฉํด์ ์ค์ ๋์ ์กฐ์ํ๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด ์ค - ๊ฐ์๋์ ์ค์ ๋๊ณผ ๊ฐ์ ๋ด์ฉ์ ๋ด๊ณ ์๋ ๋ณต์ฌ๋ณธ ๋ณต์ฌ๋ณธ: ์ค์ ๋์ด ์๋ ์๋ฐ์คํธ๋ฆฝํธ ๊ฐ์ฒด ํํ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ฅ๋์ด ์์ (์ค์ ๋์ด๋ ๋๊ฐ์ ์๋ฆฌ๋จผ์ธ ์์ฑ์ ๊ฐ์ง๊ณ ์์) - ๋ธ๋ผ์ฐ์ ๋ฌธ์์ ์ง์ ์ ์ผ๋ก ์ ๊ทผ ๋ถ๊ฐ ๋ฆฌ์กํธ๋ ๋๊ฐ์ง ๊ฐ์ ๋์ ๊ฐ์ง๊ณ ์์ 1. ๋ ๋๋ง ์ด์ ํ๋ฉด ๊ตฌ์กฐ๋ฅผ ๋.. 20221102 React Hooks - useMemo, useCallback Hook์ ๊ท์น React ํจ์ ๊ตฌ์ฑ ์์ ๋ด์์๋ง ํธ์ถํ ์ ์์(๋ฐ๋์ Functional Component ์์์ ์ฌ์ฉํด์ผ ํจ) ๊ตฌ์ฑ ์์์ ์ต์์์์๋ง ํธ์ถํ ์ ์์ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ์์์ ๋ชป ์ useMemo, useCallback ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ useMemo๋ ํน์ ๊ฒฐ๊ณผ๊ฐ์ ์ฌ์ฌ์ฉํ ๋ ์ฌ์ฉ useCallback์ ํน์ ํจ์๋ฅผ ์๋ก ๋ง๋ค์ง ์๊ณ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉ memoization (๋ฉ๋ชจ์ด์ ์ด์ ) ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ด์ด ๋์ผํ ๊ณ์ฐ์ ๋ฐ๋ณตํด์ผ ํ ๋, ์ด์ ์ ๊ณ์ฐํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํจ์ผ๋ก์จ ๋์ผํ ๊ณ์ฐ์ ๋ฐ๋ณต ์ํ์ ์ ๊ฑฐํ์ฌ ํ๋ก๊ทธ๋จ ์คํ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ ๊ธฐ์ ์ด๋ค. ๋์ ๊ณํ๋ฒ์ ํต์ฌ์ด ๋๋ ๊ธฐ์ ์ด๋ค. - ์์ฃผ ํ์ํ ๊ฐ์ ์บ์ฑํด ๋์ด์ ๊ทธ ๊ฐ์ ๋ค์ ๊ณ์ฐํ๋๊ฒ .. 20221025 Meta og ํ๊ทธ๋ก ์นด์นด์คํก, sns ๊ณต์ ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ง๋ค๊ธฐ Meta og ํ๊ทธ - ์นดํก์ด๋ SNS URL ๊ณต์ ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ง๋ค์ด ์ฃผ๋ ํ๊ทธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ๋ณด์ฌ์ง๋ ์ด๋ฏธ์ง๋ ์นด์นด์คํก ๊ธฐ์ค ๊ฐ๋ก : 400px, ์ธ๋ก : 210px๊ฐ ์ต์ HTML ํ์ผ 20221024 input type="file" ์ฉ๋ ์ ํํ๊ธฐ 1. ํ๋ก์ ํธ์ ์ฌ์ฉ์๊ฐ ๋์์ ์ ๋ก๋๋ฅผ ํ๋ ค๋ฉฐ ๋ฐฑ์๋์ ์๋ก ๋์์ ํฌ๊ธฐ๋ฅผ 200๋ฉ๊ฐ๋ก ์ ํ ํ ์ ์๋๋ก ํ๊ธฐ๋ก ํ์์. 2. ํผ๋ฐ์ดํฐ๋ฅผ ํฌ์คํธ๋ก ๋ณด๋ด๋๋ฐ, ๋ฑ๋ก๋ฒํผ์ ๋๋ ์๋ 200๋ฉ๊ฐ๊ฐ ๋์ผ๋ฉด ์๋ฟ์ผ๋ก ์๋ ค์ค ์ ์๋๋ก ์ฝ๋๋ฅผ ์ง๋ด. 3. ์ฝ์์ฐ์ด๋ด๊ฐ๋ฉฐ ํ์ผ ์ฌ์ด์ฆ๊ฐ ํฌ๋ก๋ฐ์ดํธ๋ก ๋์จ๋ค๋ ๊ฑธ ํ์ธํ๊ณ , 200๋ฉ๊ฐ๋ฅผ ํฌ๋ก๋ฐ์ดํธ๋ก ๋ฐ๊พธ๊ณ maxFileSize๋ก ์ ์ธํด์ค ๋ค์ ๋น๋์ค์ ์ฌ์ด์ฆ๊ฐ maxFileSize๋ณด๋ค ํด ๊ฒฝ์ฐ ์๋ฟ์ฐฝ์ผ๋ก ์๋ ค์ค. (๋ฑ๋ก๋ถ๊ฐ) // ๋์์ 200MB ํฌ๊ธฐ ์ ํ const [errorMsg, setErrorMsg] = useState(false); const [isSuccess, setIsSuccess] = useState(false); const validateSelec.. 20221008 video ์ฌ์ฉํ๊ธฐ https://developer.mozilla.org/ko/docs/Web/HTML/Element/Video : ๋น๋์ค ์ฝ์ ์์ - HTML: Hypertext Markup Language | MDN HTML ์์๋ ๋น๋์ค ํ๋ ์ด๋ฐฑ์ ์ง์ํ๋ ๋ฏธ๋์ด ํ๋ ์ด์ด๋ฅผ ๋ฌธ์์ ์ฝ์ ํฉ๋๋ค. ์ค๋์ค ์ฝํ ์ธ ์๋ ์ฌ์ฉํ ์ ์์ผ๋, ์์๊ฐ ์ฌ์ฉ์ ๊ฒฝํ์ ์ข ๋ ์ ํฉํฉ๋๋ค. developer.mozilla.org src : ์ฌ์ํ ๋น๋์ค์ ์ฃผ์ width : ์์์ ๋๋น height : ์์์ ๋์ด loop : ๋ฐ๋ณต ์ฌ์ poster : ์ฌ์ฉ์๊ฐ ๋น๋์ค ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ด๋ฏธ์ง ํ์ผ์ ์ฃผ์๋ฅผ ๊ถ์ฅ preload : ์์ ์ ์ฌ์ํ๊ธฐ ์ ์ ๋ชจ๋ ๋ถ๋ฌ์ฌ์ง ์ง์ (value: auto, metadata, none).. ์ด์ 1 2 3 4 5 6 7 ๋ค์