์ ์ฒด ๊ธ (47) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ES6_ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด (Template Literals) Front-End ํ๋ก ํธ์๋์์๋ HTML ์ ๋ฐ์ดํฐ์ ๊ฒฐํฉํด DOM์ ๋ค์ ๊ทธ๋ฆฌ๋ ์ผ์ด ๋น๋ฒํ๋ฐ, ํ ํ๋ฆฟ์ ์ฝ๊ฒ ํธ์งํ๊ณ ์์ฑํ๊ธฐ ์ํด ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ค. (JavaScript ์์ฒด์ ์ผ๋ก ์ง์ํ๊ธฐ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์กด์ฌํด์๋ค.) ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด? ES2015 ์ฌ์๋ช ์ธ์์์ template strings ๋ผ๊ณ ๋ถ๋ ธ์ผ๋ฉฐ ๋ด์ฅ๋ ํํ์์ ํ์ฉํ๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ๋ปํ๋ค. - ํํ์/๋ฌธ์์ด ์ฝ์ - ์ฌ๋ฌ ์ค ๋ฌธ์์ด - ๋ฌธ์์ด ํ์ํ - ๋ฌธ์์ด ํ๊น Syntax ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์์๋ฐ์ดํ(')๋ ํฐ๋ฐ์ดํ(")๋์ ๋ฐฑํฑ(`) (grave accent)๋ก ๊ฐ์ธ์ค๋ค. ํ๋ ์ด์ค ํ๋ (${}) ๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋ด๋ถ๊ฐ์ ํจ์๋ก ์ ๋ฌ๋๋ค. ์ฌ๋ฌ ์ค์ ๋ฉํฐ ๋ผ์ธ์ ํ์ฉํ๋ค. ํํ์ ์ฝ์ ๋ฒ (Expression interpolat.. ์ด๋ฒคํธ(Event) ํ๋ฆ ์ ์ดํ๋ ๋ฒ Event๋? ์น์ ํ์ํ๋ ๋์ ๋ธ๋ผ์ฐ์ ๋ ์ฌ๋ฌ ์ข ๋ฅ์ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๋ค. ๋ธ๋ผ์ฐ์ ์์์ event๋ ์ฌ์ฉ์๊ฐ ํด๋ฆญํ์ '๋', ์คํฌ๋กค์ ํ์ '๋', ํ ์คํธ๋ฅผ ์ ๋ ฅํ์ '๋'์ ๊ฐ์ ๊ฒ์ ์๋ฏธํ๋ค. Event๋ฅผ ์์์ผํ๋ ์ด์ input ์ฐฝ์ ๊ฐ์ ์ ๋ ฅํ๊ณ , ์ํฐ๋ฅผ ์ณค์ ๋ ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํ ๋ ์ญ์ ๋ฒํผ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์ญ์ ํ๊ณ ์ถ์ ๋ ์ธํฐ๋ํฐ๋ธ ํ ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ๋ง๋ค๊ณ ์ถ์ ๋ ๋์ ์ธ ์น์ ์ฌ์ฉ์์ ์ํธ์์ฉ์ด ์ ๋์ด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ํธ์์ฉ์ ์ด๋ค ์ด๋ฒคํธ์ ์ํด ๋ฐ์ํ๋ฉฐ ์ด๋ฅผ ์ ์ฐํ๊ฒ ๋ค๋ฃฐ ์ค ์์์ผ interactive ํ ์น ์ฑ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค. ํ๋ก ํธ์๋์์ ๋ง์ ์ธํฐ๋ ์ ์ ๋ชจ๋ Event(์ฌ๊ฑด)๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ๊ณผ ๊น์ ๊ด๋ จ์ด ์๋ค. Event์ ์ข ๋ฅ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)์ด.. ํ๋ก ํธ ์๋์ ์ํ(state) ๊ด๋ฆฌ ์ต๊ทผ React๋ก ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ๋ค๊ฐ JS ๊ธฐ์ด ๊ฐ๋ ์ด ๋ถ์กฑํ ๊ฒ ๊ฐ์ VanilaJS๋ฅผ ํตํ ์ ํ์ ํ๋ก์ ํธ๋ฅผ ํ๊ณ ์๋ค. React๋ฅผ ํ์ฉํ๋ฉด Redux, Context๋ฅผ ํตํด ์ฌํํ๊ฒ state ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฐ VanilaJS์์๋ React์ ์ต๋ ์ฅ์ ์ธ useState๊ธฐ๋ฅ์ด ์์ด์ง ํ์ ๋ถ๋ชจ, ์์ ๊ฐ์ฒด ๊ฐ์ ๊น๋ํ ์ํ ๊ด๋ฆฌ์ ๋ํด ๋ค์๊ธ ๊นจ๋ซ๊ณ ์๋ค.. ์ด๋ฅผ VanilaJS๋ก, ๊ทธ๊ฒ๋ clean code ํํ๋ก ๊ตฌํํ์๋ ์ด๋ป๊ฒ ๋ณ์๋ฅผ ๋ง๋ค์ด ์ฌ์ฌ์ฉํ ์ง, ๋ ์ด๋ค ๋ก์ง์ด ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ธ์ง ๋ ์ฌ๋ฆฌ๊ธฐ๊ฐ ์๊ฐ๋ณด๋ค ์ฝ์ง๊ฐ ์์๋ค. ํ๋ก์ ํธ ์ค๊ณ ์ ์ ์ฒด์ ์ธ ์ํ ๊ตฌ์กฐ๋ฅผ ์ง์ง ์๊ณ ์์ํ๊ฒ ๋๋ฉด ํ๋ก์ ํธ๊ฐ ๋ณต์กํด์ง์๋ก ์ ์ง๋ณด์๊ฐ ๋ ํ๊ฒจ์์ง๋ค. ์ด๋ฒ ํฌ์คํ ์ ํ๋ฐํธ์๋ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ถฐ์ผ ํ ์.. BOM (Browser Object Model) ์๋ฒฝ ์ ๋ณตํ๊ธฐ BOM์ด๋? BOM(Browser Object Model)์ด๋ ์น๋ธ๋ผ์ฐ์ ์ ์ฐฝ์ด๋ ํ๋์์ ์ถ์ํํด์ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ์ ์ดํ ์ ์๋๋ก ์ ๊ณตํ๋ ์๋จ์ด๋ค. BOM์ ์ ์ญ๊ฐ์ฒด์ธ Window์ ํ๋กํผํฐ์ ๋ฉ์๋๋ค์ ํตํด์ ์ ์ดํ ์ ์๋ค. ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์์ ๊ตฌํ์ ๋์ด์์ง๋ง, ์ ์๋ ํ์ค์ด ์์ด ๋ธ๋ผ์ฐ์ ์ ์์ฌ ๋ง๋ค ์ธ๋ถ์ฌํญ์ด ๋ค๋ฅด๊ณ ๋ค์ ํ์ ์ ์ด๋ผ๋ ํน์ง์ด ์๋ค. BOM์ ์ญํ ์ ์น ๋ธ๋ผ์ฐ์ ์ ๋ฒํผ, URL ์ฃผ์ ์ ๋ ฅ ์ฐฝ, ํ์ดํ ๋ฐ ๋ฑ ์น๋ธ๋ผ์ฐ์ ์๋์ฐ ๋ฐ ์นํ์ด์ง์ ์ผ๋ถ๋ถ์ ์ ์ดํ ์ ์๊ฒ๋ ํ๋ ๊ฒ์ด๋ค. BOM์ ์ดํดํ๊ธฐ ์ํด์๋ Window ๊ฐ์ฒด์ ํ๋กํผํฐ์ ๋ฉ์๋์ ์ฌ์ฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ด๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋ ๊ฒ์ด๋ค. BOM์ ๊ณต๋ถ์ ๋์์ Window ๊ฐ์ฒด์ ์ฌ์ฉ๋ฒ์ ์์์ผ ํ๋ค. ๋ํ์ ์ธ BO.. DOM (Document object Model) ์๋ฒฝ ์ ๋ณตํ๊ธฐ Front-End ๊ฐ๋ฐ์๋ผ๋ฉด ๋ฐ๋์ ๊ฑฐ์ณ๊ฐ๋ ๋จ์ด DOM. DOM์ด๋ ์ ํํ ๋ฌด์์ผ๊น? DOM์ด๋ผ๋ ๋จ์ด๊ฐ ๋๊ณผ ๊ท์ ์ต์ํจ์๋ ๋ง์ DOM์ด ๋ฌด์์ด๋๊ณ ๋ฌผ์ด๋ดค์ ๋ "๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ํด์์ Element ๊ฐ์ฒด ๋งํ ๋ ๊ทธ๊ฑฐ~ ๋ ธ๋ ๋งํ ๋ ๊ทธ๊ฑฐ~" ๋ผ๊ณ ์ผ๋ ๋ฑ๋ ๋๋ตํ์ง ์๋์ง...? ๋์ค์ DOM์ด ๋ญ๋๋ ์ง๋ฌธ์ ๋ค์์ ๋ ๋ง์น ์ด ์๊ฐ๋ง์ ๊ธฐ๋ค๋ ธ๋ค๋ ๋ฏ ๊ฐ๊ฒฐํ๊ณ ๋จํธํ๊ฒ ๋๋ตํ๋ ๋ด ๋ชจ์ต์ ์์ํด๋ณด๋ฉฐ ํฌ์คํ ์ ์์ํด๋ณธ๋ค. DOM์ด๋? ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(The Document Object Model, ์ดํ DOM) ์ HTML, XML ๋ฌธ์์ ํ๋ก๊ทธ๋๋ฐ interface์ด๋ค. DOM์ ๋ฌธ์์ ๊ตฌ์กฐํ๋ ํํ(structured representation)์ ์ ๊ณตํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ DOM ๊ตฌ์กฐ์ ์ ๊ทผํ .. Next.js์ ์ญํ ๊ณผ ์จ์ผ ํ๋ ์ด์ ์ ๋ก์ด๋์ ๋ ธ๋ ๋ฒ๋(ํธ์ํฐ ํด๋ก ์ฝ๋ฉ) ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ฃผ์ ๋ด์ฉ์ ์์ฝํ์ฌ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. ์ฌ์ค 2020๋ ๋ฆฌ๋ด์ผ๋ ์์ ์ FE ๋ถ๋ถ๊น์ง ์๊ฐํ๋ค๊ฐ ์ผ์ ์ด ๋ฐ๋น ์ ธ ์ค๋จํ๋ ๋ด์ฉ์ธ๋ฐ ํฌํธํด๋ฆฌ์ค ๋ณด๊ฐ์ ์ํด ๋ณต์ต์ ์ํด ๋ค์ ์์..! ๊ทธ๋๋ ๊ธฐ์กด์ ๊ณต๋ถํ๋ฉด์ ๊ธฐ๋กํด๋๋ ๋ด์ฉ๋ค์ ๋ค์ ์ฝ์ผ๋ฉด์ ๋ณด์ถฉํ๋ค ๋ณด๋ ๊ธฐ์ต์ด ์๋ก์๋ก ๋๋ ๊ฒ์ด ๋ฌํ ์พ๊ฐ์ด ๋ ๋ค.. ์ญ์ ๋ณต์ต์ ์ํด์๋ ๊ธฐ๋ก์ด ํ์.. โ๏ธ ์ค๊ธ์๋ฅผ ์ํด ์ค๋นํ [ํ ์คํ, ์น ๊ฐ๋ฐ] ๊ฐ์์ ๋๋ค. ๋ฆฌ์กํธ & ๋ฅ์คํธ & ๋ฆฌ๋์ค & ๋ฆฌ๋์ค์ฌ๊ฐ & ์ต์คํ๋ ์ค ์คํ์ผ๋ก ํธ์ํฐ์ ์ ์ฌํ SNS ์๋น์ค๋ฅผ ๋ง๋ค์ด๋ด ๋๋ค. ๋์ผ๋ก ๊ฒ์์์ง ์ต์ ํ ํ AWS์ ๋ฐฐํฌํฉ๋๋ค. ๋ฆฌ๋ด์ผ๋ ์ฌํญ (2020) next@9, styled-components@5, next-red.. #01_๋ถ์ ์ธ๋ฌธํ-์ฐ์(๋ธ๋ผ์ด์คํค) ๋ถ์ ์ธ๋ฌธํ ์ฐ์(๋ธ๋ผ์ด ์คํค) ๋ค์ด๋ฒ ์นดํ '๋ถ๋์ฐ ์คํฐ๋'์์ ๋ถ๋์ฐ ์ ๋ง์ด๋ ํฌ์ ์กฐ์ธ์ด ์ฌ๋ฌ ๋ฒ ๋ง์๋จ์ด์ง๋ฉด์ ์๋ง์ ํฌ๋ค์ด ์๊ฒจ๋ ์ฑ์ง์๋ก๊ฐ ์๋ฐ๋ฅด๊ฒ ๋ ํ ๊ธ์ต์ ์ข ์ฌ์์ ์ฑ . ์๋ฌด๋ ์์ธกํ ์ ์๊ณ ๋ ๊ฐํ ํ๋จํ ์ ์๋ ๊ธ์ต์ ๋ํด ์ธ๋ฌธํ์ ์ผ๋ก ํด์ํ ์ด ์ฑ ์ ๋ด๊ฒ ์ด๋ค ์๊ฐ์ ๊ฐ์ ธ๋ค ์ค ์ง ๊ธฐ๋๊ฐ์ ๊ฐ์ง ์ฑ๋ก ์ฝ์ด๋ณด์๋ค. ์ฝ์ผ๋ฉด์ ๋ฐ์ค์ ๊ทธ์ด ๋์๊น์งํ๊ณ ์ถ์๋ ๊ตฌ์ ๋ค์ ์ ๋ฆฌํด๋ณด๋ฉฐ ๊นจ์ฐ์นจ => ํ๋์ผ๋ก ์ค์ฒํ ์ ์๋๋ก ํฌ์คํ ์ ์์ํด๋ณธ๋ค. p.19 ์ธ์์ ์ด์๊ฐ๋ ๋ฐ ์ด์ฌํ๋ง ํ๋ค๊ณ ๋ชจ๋๊ฐ ์๋๋ ๊ฑด ์๋๋ค. ์๋ฑํ ๊ณณ์์๋ ์ด์ฌํ ์ฝ์ง์ ํด๋ ์ป์ ์ ์๋ ๊ฒ ์๋ค. ๋ฌด์์ ๋ ธ๋ ฅํ๊ธฐ ์ ์ ์ ๋ต์ ์ผ๋ก ์ฌ๊ณ ํ๋ ๋ฒ์ ๋ฐฐ์์ผ ์ธ์์ด ํธํ๋ค. p.20 ์๋ ๊ฐ๋งน์ ์ ํต์ ๊ถ์ด ์๋ ๋น์ฆ๋์ค๋ค.. JSDoc์ ํตํด JavaScript API ๋ฌธ์ ๋ง๋ค๊ธฐ ์ต๊ทผ ์ฌ๋ด ์ ๊ท ๊ฐ๋ฐ ์์ ์ด ๋๋ ๋ค ๋ฐฐํฌ๋ฅผ ์๋๊ณ ์ฐ์ถ๋ฌผ์ ๊ฒํ ํ๋ ์ค, 400์ฌ ๊ฐ์ Interface ํจ์๋ฅผ ์ค๋ช ํ๋ API ๋งค๋ด์ผ ํ์ด์ง๋ฅผ ์์ฑํ๋ ์ ๋ฌด๊ฐ ์ฃผ์ด์ก๋ค. ๊ฐ Interface๋ฅผ ์์ ๋ก ์ ๋ฆฌํ๊ธฐ ์ํด ํ ์ด๋ธ์ ์ถ๊ฐํ๊ณ , ์ ์ฒ ๋ผ์ธ์ ์์ค ์ฝ๋๋ฅผ ๋ค์ฌ๋ค๋ณด๋ฉฐ ์ด์ฌํ API ์ ๋ณด๋ฅผ ํ๋ํ๋ ์ ๋ ฅํด์ผ์ง..!๋ผ๊ณ ๋ ์ฌ๋ ธ๋ค๋ฉด ํํผ์ง์ ์์ํ๊ธฐ ์ ๋ฌธ์ํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ๋ ฅํ๊ฒ ์ถ์ฒํ๋ค. (ํ์๋ ์ด๋ฏธ ๋ป์ง์ ์ ๋๊ฒ ๋๋ธ ๋ค ๊นจ๋ฌ์๋ค..๐ฑ) ๋ฌธ์ํ ๋๊ตฌ(Documentation Generator)๋, ์์ค ํ์ผ์ ์์ฑ๋ ์ฃผ์์ ํ์ฑํ์ฌ ํด๋์ค, ๋ฉ์๋ ๋ฑ API ์ ๋ณด๋ฅผ HTML ๋ฌธ์๋ก ์์ฑํด์ฃผ๋ ๋๊ตฌ๋ฅผ ์ง์นญํ๋ค. ๊ฐ๋ฐ ์ค์ธ ์ฝ๋์ ์ฃผ์์ด ์ ์์ฑ๋์ด ์๋ค๋ฉด, ๋ฌธ์ํ ๋๊ตฌ๊ฐ ์ ๊ณตํ๋ ๋ช ๋ น์ด .. ์ด์ 1 2 3 4 5 6 ๋ค์