๋ ์ ๋ชฉ๋ก (46) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [๋ชจ๋ฅ๋ค] 13์ฅ ์ค์ฝํ 13.1 ์ค์ฝํ๋? ์ค์ฝํ : ์๋ณ์๊ฐ ์ ํจํ ๋ฒ์ var ํค์๋ / const, let ํค์๋๋ ๋ค๋ฅด๊ฒ ๋์ํจ. ๐ ๋ชจ๋ ์๋ณ์๋ ์์ ์ด ์ค์ธ๋ ์์น์ ์ํด ์ค์ฝํ๊ฐ ๊ฒฐ์ ๋๋ค. ์๋ณ์ ๊ฒฐ์ : JS ์์ง์ด ์ค์ฝํ๋ฅผ ํตํด ์ด๋ค ๋ณ์๋ฅผ ์ฐธ์กฐํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ๊ฒ. => ์ค์ฝํ๋ JS ์์ง์ด ์๋ณ์๋ฅผ ๊ฒ์ํ ๋ ์ฌ์ฉํ๋ ๊ท์น์ด๊ธฐ๋ ํจ. ๐ ๋ ์์ปฌ ํ๊ฒฝ : ์ฝ๋๊ฐ ์ด๋์ ์คํ๋๋ฉฐ, ์ฃผ๋ณ์ ์ด๋ค ์ฝ๋๊ฐ ์๋์ง๋ฅผ ์๋ฏธ -> ์ฝ๋์ ๋ฌธ๋งฅ์ ๋ ์์ปฌ ํ๊ฒฝ์ผ๋ก ์ด๋ค์ง. -> ์ด๊ฑธ ๊ตฌํํ ๊ฒ : ์คํ ์ปจํ ์คํธ ์ค์ฝํ ๋ด์์ ์๋ณ์๋ ์ ์ผํด์ผํ์ง๋ง, ๋ค๋ฅธ ์ค์ฝํ์์๋ ๋์ผํ ์ด๋ฆ์ ์๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์. ๐ var ํค์๋ ์ฌ์ฉํ ๋ณ์ : ๊ฐ์ ์ค์ฝํ ๋ด์์ ์ค๋ณต ์ ์ธ์ด ๊ฐ๋ฅ => ์๋์น ์๊ฒ ๋ณ์๊ฐ์ด ์ฌํ ๋น & ๋ณ๊ฒฝ๋๋.. [๋ชจ๋ฅ๋ค] 12์ฅ ํจ์ ๐ซง 12.1 ํจ์๋? JS์์ ๊ฐ์ฅ ์ค์ํ ํต์ฌ ๊ฐ๋ . ๋ค๋ฅธ ํต์ฌ ๊ฐ๋ (์ค์ฝํ, ์คํ ์ปจํ ์คํธ ๋ฑ..) ๊ณผ ๊น์ ๊ด๋ จ์ด ์์. JS ๋ฅผ ์ดํดํ๊ธฐ ์ํ ํต์ฌ ์ค์ ํต์ฌ ํจ์๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋ฌธ์ผ๋ก ๊ตฌํ, ์ฝ๋ ๋ธ๋ก์ผ๋ก ๊ฐ์ธ์ ํ๋์ ์คํ ๋จ์๋ก ์ ์ํ ๊ฒ. ์ ๋ ฅ์ ๋ฐ์์ ์ถ๋ ฅ์ ๋ด๋ณด๋. ๋งค๊ฐ๋ณ์ : ํจ์ ๋ด๋ถ๋ก ์ ๋ ฅ์ ์ ๋ฌ๋ฐ๋ ๋ณ์ ์ธ์ : ์ ๋ ฅ ๋ฐํ๊ฐ: ์ถ๋ ฅ ํจ์๋ ํจ์ ์ ์๋ฅผ ํตํด ์์ฑ๋จ. ํจ์ ํธ์ถ : ํจ์๋ ์ ์๋ง์ผ๋ก ์คํ๋๋ ๊ฒ์ด ์๋๋ผ, ์คํ์ ๋ช ์์ ์ผ๋ก ์ง์ํด์ผํจ. ๐ซง 12.2 ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋์ผํ ๋ฐ๋ณต ์์ ์ ์ํํ ์, ์ฌ๋ฌ๋ฒ ํธ์ถ ๊ฐ๋ฅ -> ์ฝ๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ฌ ๋ฒ ์์ฑ ์ ์์ ํ๋ ค๋ฉด ๊ฑธ๋ฆฌ๋ ์๊ฐ & ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ -> ์ ์ง๋ณด์์ ํธ์์ฑ๊ณผ ์ฝ๋์ ์ ๋ขฐ์ฑ์ ๋์ด๊ธฐ ์ํด ํจ์.. [๋ชจ๋ฅ๋ค] 11์ฅ ์์ ๊ฐ๊ณผ ๊ฐ์ฒด์ ๋น๊ต ์์๊ฐ ๊ฐ์ฒด - ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ - ๋ณ์์ ์ค์ ๊ฐ ์ ์ฅ - ๋ค๋ฅธ ๋ณ์์ ํ ๋น : ์์ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ (๊ฐ์ ์ํ ์ ๋ฌ) - ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ - ๋ณ์์ ์ฐธ์กฐ ๊ฐ ์ ์ฅ - ๋ค๋ฅธ ๋ณ์์ ํ ๋น : ์ฐธ์กฐ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ (์ฐธ์กฐ์ ์ํ ์ ๋ฌ) ๐ฅช 11. 1 ์์ ๊ฐ 11.1.1 ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ ์์ ํ์ ์ ๊ฐ. ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ. ํ๋ฒ ์์ฑ๋๋ฉด ๋ณ๊ฒฝํ ์ ์์. ๐ ๋ณ๊ฒฝ์ ํ ์ ์๋ค๋ ๊ฑด ๋ณ์๊ฐ ์๋๋ผ ๊ฐ์ ๋ํ ๊ฒ. ๋ณ์๋ ์ธ์ ๋ ์ฌํ ๋น ๊ฐ๋ฅ. ๊ทธ ์ค ์์๋ ์ฌํ ๋น ๋ถ๊ฐ๋ฅ. ํ์ง๋ง ์์์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ ๋์ผ์ โ ์์์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ฉด ์ฌํ ๋น์ โ ๊ฐ(๋ด์ฉ) ๋ณ๊ฒฝ์ ๊ฐ๋ฅ ์์ ๊ฐ์ ์ฌํ ๋น -> ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ๋ณด -> ์ฌํ ๋นํ ์์๊ฐ ์ ์ฅ -> ๋ณ์๊ฐ ์ฐธ์กฐํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋ฐ๋. (์ด.. [๋ชจ๋ฅ๋ค] 09์ฅ ํ์ ๋ณํ๊ณผ ๋จ์ถ ํ๊ฐ ๐ฟ 9.1 ํ์ ๋ณํ์ด๋? 1๏ธโฃ ๋ช ์์ ํ์ ๋ณํ (=== ํ์ ์บ์คํ ) : ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ๊ฐ์ ํ์ ์ ๋ณํํ๋ ๊ฒ. 2๏ธโฃ ์๋ฌต์ ํ์ ๋ณํ (=== ํ์ ๊ฐ์ ๋ณํ) : ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์๋ฌต์ ์ผ๋ก ํ์ ์ด ์๋ ๋ณํ๋๋ ๊ฒ. โ ํ์ ๋ณํ์ด ์์๊ฐ์ ์ง์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋. => ํ์ ๋ณํ์ด๋ ๊ธฐ์กด ์์ ๊ฐ์ ์ฌ์ฉํด ๋ค๋ฅธ ํ์ ์ ์๋ก์ด ์์ ๊ฐ์ ์์ฑํ๋ ๊ฒ. -> ์๋ก์ด ํ์ ์ ๊ฐ์ ๋ง๋ค์ด ๋จ ํ๋ฒ ๊ฐ์ฉํ๊ณ ๋ฒ๋ฆผ. ์๋ฌต์ ํ์ ๋ณํ์ ์ฝ๋ ์์์ ๋ช ๋ฐฑํ ๋ํ๋์ง ์๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฐ์ ์์ ์ด ์์ฑํ ์ฝ๋์์ ์๋ฌต์ ํ์ ๋ณํ์ด ๋ฐ์ํ๋์ง, ๋ฐ์ํ๋ค๋ฉด ์ด๋ค ๊ฐ์ผ๋ก ๋ณํ๋๋์ง, ๊ทธ๋ฆฌ๊ณ ํ์ ๋ณํ๋ ๊ฐ์ผ๋ก ํํ์์ด ์ด๋ป๊ฒ ํ๊ฐ๋ ๊ฒ์ธ์ง ์์ธก ๊ฐ๋ฅํด์ผ ํ๋ค. => ํ์ ๋ณํ์ด ์ด๋ป๊ฒ ๋์ํ๋.. [๋ชจ๋ฅ๋ค] 03์ฅ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์คํ ๋ฐฉ๋ฒ ๐ผ๏ธ3.1 ์๋ฐ์คํฌ๋ฆฝํธ ์คํํ๊ฒฝ JS๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ ๋๋ NodeJS ์์ ๋์ผํ๊ฒ ๋์ํ๋ค. ๋ธ๋ผ์ฐ์ ์ NodeJS๋ ์ฉ๋๊ฐ ๋ค๋ฆ. ๐ต ๋ธ๋ผ์ฐ์ (์น ์ดํ๋ฆฌ์ผ์ด์ ์ JS) - HTML, CSS, JS ๋ฅผ ์คํํด ์นํ์ด์ง๋ฅผ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ๋ ๋๋ง ํ๋ ๊ฒ์ด ์ฃผ ๋ชฉ์ - DOM API ๋ฅผ ๊ธฐ๋ณธ ์ ๊ณต - ํ์ผ ์์ฑ, ์์ ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์๋ ์ด์ ๋ ๋ธ๋ผ์ฐ์ ์์์ ๋ณด์ด๊ธฐ ๋๋ฌธ -> ๋ณด์์ ์ด์ ๐ต NodeJs - ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์ JS ์คํํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ฃผ๋ ๋ชฉ์ . - ํ์ผ ์์ฑ, ์์ ํ ์ ์๋ ํ์ผ ์์คํ ๊ธฐ๋ณธ ์ ๊ณต - ๊ณ ์ ์ API ์ ๊ณต -> HTML ์์๋ฅผ ํ์ฑํด์ ๊ฐ์ฒดํํ DOM (Document Object Model) ๋ฅผ ์ง์ ๋ค๋ฃฐ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ. -> ๋ ๋ค ECMAScrip.. [๋ชจ๋ฅ๋ค] 02์ฅ ์๋ฐ์คํฌ๋ฆฝํธ๋? 2.1 ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ - ๋ท์ค์ผ์ดํ. ์นํ์ด์ง์ ๋ณด์กฐ์ ์ธ ๊ธฐ๋ฅ ์ํ์ ์ํด ๊ฒฝ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋์ . - ๋ธ๋ ๋ ์์ดํฌ๊ฐ ๊ฐ๋ฐํจ. 2.2. ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์คํ - ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ผ ์นํ์ด์ง๊ฐ ์ ์์ ์ผ๋ก ๋์ํ์ง ์๋ : ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ด์ ๋ฐ์ - ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์คํ ์์ฒญ -> ECMA 2.3 ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ์ฅ์ ์ญ์ฌ - ์ด์ฐฝ๊ธฐ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ HTML, CSS๋ฅผ ๋จ์ํ ๋ ๋๋ง ํ๋ ์์ค์ด์์. - ๋ ๋๋ง : HTML, CSS, JS ๋ก ์์ฑ๋ ๋ฌธ์๋ฅผ ํด์ -> ๋ธ๋ผ์ฐ์ ์ ์์์ ์ผ๋ก ์ถ๋ ฅํ๋ ๊ฒ์ ๋งํจ. 2.3.1 Ajax JS๋ฅผ ์ด์ฉํด ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋ ํต์ ๊ธฐ๋ฅ. - ์ด์ ์๋ ์์ ํ HTML ์ฝ๋๋ฅผ ๋ฐ์์ ์ ์ฒด๋ฅผ ๋ ๋๋ง -> ํ๋ฉด์ด ์ ํ๋๋ฉด ์๋ฒ๋ก.. [๋ชจ๋ฅ๋ค] 01์ฅ ํ๋ก๊ทธ๋๋ฐ ์์ : 23.09.17 ๋ชจ๋ฅ๋ค ๊ฐ์ด ์ฝ๊ธฐ 2๊ธฐ๋ฅผ ๋ชจ์งํ๊ณ ์ค๋๋ถํฐ 1์ฃผ์ฐจ ์์! ๋นจ๋ฆฌ ๊ฐ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ ๋๋ก ๊ฐ๋ ๊ฒ์ด๋ค - ๋ก๋ฒํธ ๋งํด - ํด๋ฆฐ์ฝ๋ ์ ์ + ๋ค์ด๊ฐ๊ธฐ - ์ฝ๋๋ฅผ ๊ตฌํํ๋ ค๋ฉด ๋น์ฐํ ์์ ์ด ์์ฑํ๋ ์ฝ๋์ ๋์์ ์์ธกํ ์ ์์ด์ผ ํฉ๋๋ค. ์ฝ๋์ ๋์์ ์์ธกํ์ง ๋ชปํ๋ ์ํ์์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ ๊ฒ์ ๋ง์ด ๋์ง ์์ต๋๋ค. ํค์๋ ์์ฃผ๋ก ๊ณต๋ถํ๊ธฐ. ์ฒ์๋ถํฐ ์๋ฒฝ ๋ถ๊ฐ! ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํด์ ํ์ตํ๋ ๊ฒ์ด ํจ์จ์ ! ์๋์ ์ธ ์ฐ์ต๋ ํ์. ์ฌ๊ธฐ์ ์๋์ ์ธ ์ฐ์ต์ด๋? ๊ตฌ๊ฒฝ ใดใด, ์ฝ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅํ ๊ฒ์ ๋ฐ๋ณตํ๋ ๊ฒ๋ ์๋. => ์์ ์ ๋ฅ๋ ฅ์ ์ด์ง ๋์ด์๋ ๋์ ์ ์ง์์ ์ผ๋ก ์๋ํ๋ ๊ฒ!! 1.1 ํ๋ก๊ทธ๋๋ฐ์ด๋? ํ๋ก๊ทธ๋๋ฐ์ด๋ ์คํ์ ์๊ตฌํ๋ ์ผ์ข ์ ์ปค๋ฎค๋์ผ์ด์ . -> ์ฆ, ํ๋ก๊ทธ๋๋ฐ์ ์์ ํด๊ฒฐ.. [๋ชจ๋ฅ๋ค] 10์ฅ ๊ฐ์ฒด ๋ฆฌํฐ๋ด (์์ 23.5.2) ๐ท 10.1 ๊ฐ์ฒด๋? JS๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ฉฐ, JS ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด. ์์๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ์ด์ง๋ง, ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ. ๊ฐ์ฒด๋ 0๊ฐ ์ด์์ ํ๋กํผํฐ๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ฉฐ, ํ๋กํผํฐ๋ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ํ๋กํผํฐ ๊ฐ์ด ํจ์์ผ ๊ฒฝ์ฐ, ์ผ๋ฐ ํจ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด '๋ฉ์๋' ๋ผ๊ณ ํ๋ค. let counter = { num: 0 // ํ๋กํผํฐ increase: function(){ this.num++; } //๋ฉ์๋ } ๐ต ํ๋กํผํฐ : ๊ฐ์ฒด์ ์ํ๊ฐ์ ๋ํ๋. ๐ต ๋ฉ์๋ : ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์กฐ์ํ ์ ์๋ ๋์ -> ๊ฐ์ฒด๋ ์ํ์ ๋์์ ํ๋์ ๋จ์๋ก ๊ตฌ์กฐํ ํ ์ ์์ด ์ ์ฉ ๐ต ๊ฐ์ฒด์ ํจ์ - ํจ์๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ๋ ํ์ง๋ง, ํจ์ ์์ฒด๊ฐ ๊ฐ์ฒด์ด๊ธฐ๋.. ์ด์ 1 2 3 4 5 6 ๋ค์