๐ JavaScript
-
์ปค์คํ ํ ๊ณผ ํจ๊ป ์ปดํฌ๋ํธ์ ๊ทธ ์กฐ์ ๋ก์ง์ ์ถ์ํํด๋ณด์!๐ JavaScript 2023. 8. 20. 20:17
๐ ๋ฐฐ๊ฒฝ ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด ์ฝํ ์ธ ๋ฅผ ๋์ ์ผ๋ก ๋ฐ๊ฟ ์ ์๊ณ & ๋ณด์ฌ์ฃผ๋ ์์ ์ผ๋ก๋ถํฐ 3์ด ํ ์ธ๋ง์ดํธ๋๋ ์ค๋ต๋ฐ๋ฅผ ๊ฐ๋ฐํ์๋ค. ๋ชจ๋ ์ค๋ต๋ฐ ์ปดํฌ๋ํธ์ ๋ง์ดํธ ๋ 3์ด ํ ์ธ๋ง์ดํธ๋๋ ๋ก์ง์ ์ ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ด, ํน์ ์ปดํฌ๋ํธ์ ๋ฐ๋ณต์ ์ผ๋ก ์ ์ฉํ ๋ก์ง์ด ์๋ ๊ฒฝ์ฐ, ๊ทธ ์ฝ๋๋ฅผ ์์งํ ์ํฌ ์ ์๋ ๋ฐฉ์์ ๋ํด ๊ณ ๋ฏผํด๋ณด์๋ค. ๐ ๊ฒฐ๊ณผ๋ฌผ ๐ ์์ ์ ๋ค์์ ์ค๋ต๋ฐ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ด๋ค. content prop์ผ๋ก ๋ด๋ถ ์ฝํ ์ธ ๋ฅผ ๋์ ์ผ๋ก ๋ฐ์์ฌ ์ ์์ผ๋ฉฐ, ์ค๋ต๋ฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ Main ๊ตฌ๋ฌธ ๋ด activateSnackbar ํจ์๋ฅผ ํธ์ถํ์ฌ, ๊ทธ ์์ ์ผ๋ก๋ถํฐ 3์ด๊ฐ ์ง๋ ์์ ์ ์ค๋ต๋ฐ๊ฐ ์๋์ผ๋ก unmount ๋๋ค. // ์ค๋ต๋ฐ ์ปดํฌ๋ํธ ์ ์ธ function Snackbar({conten..
-
๋ฆฌ์กํธ ์ ์ ํ์ด์ง ๋ฐฐํฌ ์๋ก ๊ณ ์นจ 404 ์ค๋ฅ๐ JavaScript 2023. 8. 13. 23:07
๐ ๋ฐฐ๊ฒฝ ๋ณ๋์ api ์๋ฒ๋ฅผ ๋๊ณ ํธ์ถํด์ ์ฌ์ฉํ๋ ๋ฆฌ์กํธ ์ ์ ํ์ด์ง ๋ฐฐํฌ๋ฅผ ์งํํ๋ ์ค, ์๋ก ๊ณ ์นจ ์ 404 ์ค๋ฅ๊ฐ ๋จ๋ ์ด์๋ฅผ ๋ง๋ฅ๋จ๋ ธ๋ค. (IIS ์๋ฒ์ api ์๋ฒ ๋ฐ ์ ์ ํ์ด์ง๊ฐ ๋ฐฐํฌ๋ ์ํฉ์ด์๊ณ , ์ ์ ํ์ด์ง๋ example.com/registration ์ด๋ผ๋ ์์ธ ๋๋ฉ์ธ์ ๊ฐ์ง ์ํฉ) ๐ ์์ธ URL์ด ํด์๋๋ ์ฅ์๋ก ๋ง์ด๋ค ๋ค์ด๋ณด์ จ๊ฒ ์ง๋ง ๋๊ฐ์ง ์ฅ์, ์๋ฒ ์ฌ์ด๋ & ํด๋ผ์ด์ธํธ ์ฌ์ด๋๊ฐ ์๋๋ฐ... ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋ฐฉ์์ ๋จ์ํํ์๋ฉด... ์ ์ ๊ฐ ํน์ url ๋ก ์ ์ → ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๊ณ → ๊ตฌ์ฑํ๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค๋ค. ๋ฆฌ์กํธ ๋ผ์ฐํฐ๊ฐ ์ง์ํ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ผ์ฐํ ์, ์ ์ ๊ฐ ํน์ url ๋ก ์ ์ → ์๋ฒ๋ ๋น index.html ํ์ผ ๋ฐ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๋ฌํ๊ณ → ์ด..
-
์ฐ๋ฆฐ ์ด๋ป๊ฒ “abc”์ toUpperCase๋ฅผ ์ฌ์ฉํ ์ ์์๊น?๐ JavaScript 2023. 2. 28. 03:16
๐ ์๋ฌธ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ ์ค ๋ฌธ์์ด “abc”๋ฅผ ๋๋ฌธ์๋ก ๋ณํํ๋ ํจ์ toUpperCase๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ์ฌ์ฉ๋ง ํ๋ค๊ฐ ๊ฐ์๊ธฐ ๋ฌธ๋ ์๋ฌธ์ด ๋ค์๋ค. “abc” ๋ฐ์ดํฐ ํ์ ์ ๋น์ฐํ๊ฒ๋ ๊ฐ์ฒด๋ ์๋๊ณ ๋ฌธ์์ด์ธ๋ฐ, ์ด๋ป๊ฒ toUpperCase๋ผ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง ์ ์๋ ๊ฑฐ์ง? console.log(typeof "abc") // string ๐ ์… ์์๊ฐ์ ๊ฐ์ฒด์ฒ๋ผ ๋ค๋ฃฐ ์ ์๋ค๊ณ ? ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ ๋ค๋ฅธ ์ธ์ด์์ ๋ถ๋ฅด๋ ํด๋์ค์ ๊ฐ์ด ๋ค์ํ ๊ฐ๊ณผ ๋ฉ์๋๋ฅผ ์์งํ์ํฌ ์ ์๊ฒํ๋ ๋ฐ์ดํฐ ํ์ ์ด๋ค. ๋ค์ํ ์ข ๋ฅ์ ๊ฐ์ ํ๋กํผํฐ๋ก ๊ฐ์ง ์ ์๊ณ , ๋ด๋ถ์ ๋ฉ์๋๋ฅผ ์ถ๊ฐํด ๊ฐ์ฒด ์์ฒด๋ฅผ ๋ค๋ฃฐ ์ ์๋ค.. const ๋๋ค๋ฌธ์ = new Object(); ๋๋ค๋ฌธ์.value = "abc"; ๋๋ค๋ฌธ์.t..
-
ํจ์.prototype.bind(๊ฐ) vs ()⇒{ํจ์(๊ฐ)} (+this์ ํ์ดํํจ์)๐ JavaScript 2023. 2. 20. 15:52
๐ ๊ณต๋ถ ๋ฐฐ๊ฒฝ ๋ค๋ฅธ ๋ถ์ ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ์ฝ๋ ์ค, ์ํ๊ฐ๊ณผ ์ธํฐํจ์๋ฅผ ํ๋กญ์ผ๋ก ๋ฐ์์ค๋ ์ฝ๋๋ฅผ ์ง ๋ค๊ณ ํ์ ๋, ํ์ดํ ํจ์๋ก ๊ฐ์ ๋ฐ์ธ๋ฉ ์ํค๋ (2)๋ฒ ์ฝ๋์ ๋์ผํ๊ฒ ์๋ํ๋ (1) ๋ฒ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๋ค. function ์ปดํฌ๋ํธ({name, setName}){ return } // -- (1) function ์ปดํฌ๋ํธ({name, setName}){ return {setName("์ก๊ฐ")}}> } // --- (2) ์คํ์ค๋ฒํ๋ก์ฐ ์ง๋ฌธ๋ค์ ๋ณด๋ ๊ฝค๋ 6-7๋ ๋ ์ ์ ํํ๊ฒ ์ฐ๋ ์ฝ๋์๊ณ ํ์ดํ ํจ์๊ฐ ๋ฑ์ฅํ ์ง๊ธ, ๋น๋ฒํ ์ฌ์ฉ๋์ง ์๋ ๊ฒ ๊ฐ์ง๋ง… ๋ ์ฝ๋๊ฐ ๋์ฒด ์ ๋์ผํ ๊ฒ์ธ์ง ์ดํดํ๋ ๊ณผ์ ์์ ์กฐ๊ฐ์กฐ๊ฐ ํฉ์ด์ ธ์๋ this-bind ๊ฐ๋ ๋ค์ด ํ๋ฐ๋ก ๋ชจ์ด๋ ๊ฒฝํ์ ํ๋ค. this, ํ์ดํ ํจ์, ..
-
var ์ด๋ ์ธ ์ ๋ ์๊ฒ ๋๋ฐ?๐ JavaScript 2023. 2. 18. 00:33
๐ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถํ๋ค ๋ณด๋ฉด, “var๋ ๋ฌด์กฐ๊ฑด ์ฌ์ฉํ์ง ๋ง๊ณ , ๋ณํ์ง ์๋ ๊ฐ์ const, ๋ณํ ์ ์๋ ๊ฐ์ let์ ์ฌ์ฉํ๋ผ” ์ด๋ฐ ๋ง์ ๋ฃ๊ฒ ๋๊ณ , ๋ ์ญ์ ๋ณ ์ฃผ๊ด์์ด ์ด๋ ๊ฒ ๋ฐ์๋๋ ค์๋ค. ๋จธ๋ฆฌ๊ฐ ์กฐ๊ธ ๋ ์ปค์ง ์ง๊ธ ์์ ์ ์๊ฐํด๋ณด๋ฉด ๊ทธ๋๋ ์ด์ง ์ถ์ํ๊ฐ ๋ ๋ถ๋ถ์ด ์์ง ์๋ ์ถ๋ค. ๐ var ์ด๋ ์ธ ์๋ ์๊ฒ ๋๋ฐ? ํ์ผ ์์คํ ํธ๋ฆฌ GUI๋ฅผ ๋ง๋๋ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค. (์ฌ๊ธฐ์ ๋ณผ ์ ์์ด์ฉ) ๊ฐ๋ฐ ๋์ค ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์์๋ค. ์ปค๋งจ๋ํ์ (add, delete, move etc) ๋ณ ๋ค๋ฅธ ์ฝ๋๋ฅผ ์คํํ๋๋ก ํ๋ switch - case ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ์ค ๋ณ์ ‘๊ฒฐ๊ณผ’ ๋์ผํ ์ค์ฝํ์์ ์ด๋ฏธ ์ ์ธ๋์๋ค๋ ๋ด์ฉ์ ์๋ฌ๋ฅผ ๋ง์ฃผ์ณค๋ค. const validateComm..
-
์ ํํ ๋ง๊ณ ๋ง์ ๋ฒ์ ์ค ES6 ์ผ๊น?๐ JavaScript 2023. 2. 18. 00:26
๐ ๊ณต๋ถ ๋ฐฐ๊ฒฝ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ธ๋ถ ๋ชจ๋์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ธ import์ require์ ๊น์ด ํ๊ณ ๋ค๋ค๊ฐ, import ๋ฌธ์ ์ฌ์ฉํ๋ ES6, require ๋ฌธ์ ์ฌ์ฉํ๋ CommonJS๊น์ง ๊ณต๋ถํ๊ฒ ๋์๋ค. ์ด ๋ฌธ์์์๋ ๋ง๊ณ ๋ง์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ ์ค ์ ํํ ES6๊ฐ ํ์์ ์ผ๋ก ์ธ๊ธ๋๊ณ , ๋ํ์ ์ผ๋ก ์ด๊ฐ ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ๋์ง์ ๋ํ์ฌ ์ ๋ฆฌํ์๋ค. ๊ทธ ๊ณผ์ ์์ ๋จ์ํ ํธ์๋ฅผ ์ํด ์ฌ์ฉํ๋ ํ์ดํ ํจ์, ๋ด๊ฒ๋ ๋ชจํธํ๋ ํด๋์ค ๋ฌธ๋ฒ๊ณผ-ํ๋กํ ํ์ ์ ๊ด๊ณ์ฑ์ ๋ํด ์ถ๊ฐ ๊ณต๋ถ๋ฅผ ํ ์ ์์๋ค. ๐ ES6? ECMAScript? Netscape? ๋์ฒด ๋ญ์ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ๋ฐํ Netscape๊ฐ, ๊ท๊ฒฉํ๋ ํ์ค์ ์น์ธํ๋ ๊ณต์ ๊ธฐ๊ด Ecma์ ์ ์ถํ ํ์ค์ด ECMA-262์ด๋ค. ๊ทธ ํ์คํ๋ ๊ท..