๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
-
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | ์ด๋ฒคํธ [์ด๋ฒคํธ ํธ๋ค๋ฌ]TIL 2022. 5. 26. 16:12
์ฉ์ด ์ ๋ฆฌ - ์ด๋ฒคํธ ๋ฒ๋ธ๋ง(event bubbling) : ์ด๋ฒคํธ ํ๊น ์์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด, ์ต์๋จ์ ๋ถ๋ชจ ์์๊น์ง ๊ฐ๊ฐ ํ ๋น๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ ๊ฒ. - ์ด๋ฒคํธ ์บก์ฒ๋ง(event capturing) 3๋จ๊ณ์ ์ด๋ฒคํธ ํ๋ฆ์์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ด๋ค. 1. ์บก์ฒ๋ง ๋จ๊ณ : ์ด๋ฒคํธ๊ฐ ํ์ ์์๋ก ์ ํ๋๋ ๋จ๊ณ 2. ํ๊น ๋จ๊ณ 3. ๋ฒ๋ธ๋ง ๋จ๊ณ ๊ฐ์ฅ ์ต์์ ์กฐ์์์ ์๋(ํ๊น ์์)๋ก ์ด๋ฒคํธ๊ฐ ์ ๋ฌ๋๋ ๋จ๊ณ์ด๋ค. ์ด๋ฒคํธ(Event) ๋ธ๋ผ์ฐ์ ์์ ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญํ์ ๋, ๋ค๋ก ๊ฐ๊ธฐ ๋ฒํผ์ ํด๋ฆญํ์ ๋ ๋ธ๋ผ์ฐ์ ๋ ๋ฒํผ์ ์ญํ ์ ๋ง๊ฒ ๋์์ ์ํํ๋ค. ์ฌ์ฉ์๊ฐ ์ด๋ค ์ฌ๊ฑด(๋ฒํผ ํด๋ฆญ, ๋๋ธํด๋ฆญ, enter ๋ฑ)์ ๋ฐ์์์ผฐ์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฅผ ๊ฐ์งํ์ฌ ์ด๋ฒคํธ(๋ก๊ทธ์ธ์ ํ๋ค, ๋ค์ ํ์ด์ง๋ก ๋๊ธด๋ค ๋ฑ)๋ฅผ ๋ฐ์์ํจ..
-
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | #2 DOM [์์ ๋ ธ๋ ์ ํํ๊ธฐ]TIL 2022. 5. 25. 16:18
์ฉ์ด ์ ๋ฆฌ - HTMLCollection ๊ฐ์ฒด : ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด์ด๋ฉด์ ์ดํฐ๋ฌ๋ธ์ด๋ค. ์ธ๋ฑ์ค๋ฅผ ํค ๊ฐ์ผ๋ก ๊ฐ์ง๊ณ ์๊ณ , length๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฐฐ์ด๊ณผ ๋น์ทํ๊ฒ ์๊ฒผ์ง๋ง ๊ฐ์ฒด์ด๋ค. - NodeList ๊ฐ์ฒด : ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด์ด๋ฉด์ ์ดํฐ๋ฌ๋ธ์ด๋ค. forEach ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค. ์์ ๋ ธ๋ ์ทจ๋ํ๊ธฐ DOM API(ํ๋กํผํฐ, ๋ฉ์๋)๋ฅผ ์ฌ์ฉํ์ฌ html ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ ์ผ๋จ ๋ณ๊ฒฝํ ๋ ธ๋๋ฅผ ์ ํํ ์ ์์ด์ผ ํ๋ค. Hello ์๋ฅผ ๋ค์ด div ํ๊ทธ ์์ Hello ํ ์คํธ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ div ์์ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํ ์คํธ ๋ ธ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด DOM์ ์ฌ๋ฌ ๊ฐ์ง ๋ฉ์๋๋ค์ ์ ๊ณตํ๋ค. 1. id๋ฅผ ์ด์ฉํ๊ธฐ - method : document.getElementById(); - parame..
-
๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive | #1 DOM [DOM ์ด๋?]TIL 2022. 5. 25. 10:46
์ฉ์ด ์ ๋ฆฌ - ํ์ฑ(parsing) : ๋ฌธ์ฅ์ด๋, ๋ฐ์ดํฐ ๋ฌธ์์ด์ ๋ถ์ํ๊ณ ํด๋ถํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ด๋ ๊ธฐ์ ์๋ฅผ ๋ค์ด JSON.parse(json) ๋ฉ์๋๋ ์ธ์๋ก ๋ฐ์ json์ ๋ถ์ํ๊ณ ํด๋ถํ์ฌ ๊ฐ์ฒด๋ก ๋ณํํ๋ค. const json = `{"string" : "json ๋ณํ", "result" : "true"}`; const result = JSON.parse(json); console.log(result);//{string: 'json ๋ณํ', result: 'true'} console.log(result.string); //json ๋ณํ console.log(result.result); //true -API(Application Programming Interface) : ๋ฆฌ๋ชจ์ปจ ์ญํ tv..
-
๐จ CSS 3 | CSS ๋จ์ ( %, em, rem, vw, vh )CSS 2021. 12. 17. 17:43
%์ px ๋น๊ต px์ parent์ ์๊ด์์ด ํญ์ ๊ฐ์ ๊ณต๊ฐ์ ์ฐจ์งํ๋ค. %๋ parent์ ๋์ด๋ฅผ ๊ธฐ์ค(padding ๊ฐ ์ ์ธ)์ผ๋ก ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ parent์ ํฌ๊ธฐ์ ์ํฅ์ ๋ฐ๋๋ค(relative). index.html 50% 100px 50% 100px ์ ์ ๊ธฐ์ค์ผ๋ก ์์ชฝ์ %๋ ๊ธฐ์ค์ด html ์ ์ฒด ํฌ๊ธฐ๊ฐ ๋๊ณ , ์๋์ %๋ parent ํ๊ทธ์ ํฌ๊ธฐ๊ฐ ๊ธฐ์ค์ด ๋๋ค. em์ rem ๋น๊ต em์ ์์ ์์(๊ฐ์ฅ ๊ฐ๊น์ด parent) ํฐํธ ์ฌ์ด์ฆ์ ๋ช ๋ฐฐ์ธ๊ฐ๋ฅผ ๋ํ๋ธ๋ค. ๋ง์ฝ ์์ ์์์ ํฐํธ ์ฌ์ด์ฆ๊ฐ 20px ์ด๋ผ๋ฉด, 1em = 20px ์ด ๋๊ณ 20em = (20 * 20) px ์ด ๋๋ค. rem์ ์ต์์(root) ํฐํธ์ฌ์ด์ฆ๊ฐ ๊ธฐ์ค์ด๋ค. index.html 1rem 1em 2rem 2em 1r..
-
๐จ CSS 2 | Flexbox (with ๋๋ฆผ์ฝ๋ by ์จ๋ฆฌ) 1ํCSS 2021. 12. 17. 17:32
Step 1: Background flexbox๊ฐ ์๊ธฐ ์ ์๋ float, position, table์ ์ฌ์ฉํด์ ํ๋ํ๋ ๋ฐฐ์น๋ฅผ ํด์ฃผ์๋ค. ์๋ฅผ ๋ค์ด float์ ๊ฒฝ์ฐ๋ ๋ณธ๋ฌธ๊ณผ ์ฌ์ง์ ํจ๊ป ๋ฐฐ์นํ ๋ ์ฌ์ง์ ์์น๋ฅผ left , center, right ์ผ๋ก ์กฐ์ ํด์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณธ๋ฌธ์ ๋ค์ ๋ ๋๋ ์ ํ๋๋ ์ค๋ฅธ์ชฝ์ ๋๋จธ์ง ํ๋๋ float์ ์ฌ์ฉํด ์๋์ ๋ฐฐ์นํด์ฃผ์๋ค. .img { float : left } float ์ ์๋ ๋ชฉ์ ์ ํ ์คํธ์ ์ด๋ฏธ์ง๋ฅผ ๋ฐฐ์นํ๋ ๊ฒ์ด์์ง๋ง, ์๋ ๋ชฉ์ ์์ ๋ฒ์ด๋๊ฒ ๋์๊ณ , ์ฝ๋๋ ๋ณต์กํด์ก๋ค. flexbox๊ฐ ๋ฑ์ฅํ๊ฒ ๋๋ฉด์ float์ ์๋ ๋ชฉ์ ์ผ๋ก๋ง ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค. Step 2 : Flexbox Flexbox layout ๋ชจ๋(Flexbox)์ ๋ฐ์ค์ ์์ดํ ..
-
๐จ CSS 1 | CSS layout (display, position)CSS 2021. 12. 16. 22:48
CSS (Cascading Style Sheets) CSS๋ Cascading Style Sheets์ ์ฝ์์ด๋ค. html์ด ์นํ์ด์ง์ content๋ฅผ ๋ด๋นํ๊ณ , javascript๊ฐ ์นํ์ด์ง์ ๋์ ์ธ ์์๋ค์ ๋ด๋นํ๋ค๋ฉด, css๋ ์นํ์ด์ง๋ฅผ ์๋ฆ๋ต๊ฒ ๋ง๋ค์ด์ฃผ๋ ์ญํ ์ ๋ด๋นํ๋ค. ์นํ์ด์ง๊ฐ ์คํ์ผ๋ง ๋ ๋๋ ์๋ 3๊ฐ์ง๋ฅผ ์ฐธ๊ณ ํ๋ค. 1. Author style : ๋ด๊ฐ ์์ฑํ style sheets. (.cssํ์ผ) 2. User Style : ์ฌ์ฉ์๊ฐ ์คํ์ผํ๋ ๊ฒ(๋คํฌ๋ชจ๋, ๊ธ์ ํฌ๊ธฐ ์ค์ ๋ฑ) 3. Browser : ๋ธ๋ผ์ฐ์ ์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ ๋ ์คํ์ผ. ๊ทธ๋ฆฌ๊ณ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋๋ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด๊ฐ ์์ฑํ style sheets์ธ author style์ด 1์์, user style์ด 2์์, ๋ง..
-
๐ฆ ์นํฉ(Webpack) 2 | ์นํฉ๊ณผ ๋ฐ๋ฒจ๋ก CRA ๊ตฌํํ๊ธฐwebpack 2021. 12. 12. 05:58
Creact-React-App ๋ฆฌ์กํธ์์๋ es6 ๋ฑ ์ต์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์นํฉ๊ณผ ๋ฐ๋ฒจ์ด ํ์ํ๋ค. ์นํฉ์ ํ์ผ๋ค์ ํ๋๋ก ๋ฌถ์ด ๋น๋์์ผ์ฃผ๊ธฐ ์ํด ํ์ํ๊ณ , ๋ฐ๋ฒจ์ ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ์ ๋์ํ ์ ์๋๋ก ํด์ฃผ๊ธฐ ์ํด ํ์ํ๋ค. ํ์ง๋ง create-react-app, CRA๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์์์ ์ธํ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ์นํฉ๊ณผ ๋ฐ๋ฒจ ์ธํ ์ ํ์ง ์์๋ ๋๋ค. CRA์์ด ์ง์ React ํ๋ก์ ํธ ์์ํ๊ธฐ CRA๊ฐ ์๋๋๋ ์๋ฆฌ๋ฅผ ์๊ธฐ ์ํด CRA์์ด ์ง์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด์. 1. ํ์ํ ํด๋, ํ์ผ๋ค ์์ฑํ๊ธฐ ์ง์ creact-react-app์ผ๋ก ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด ์๋์ ๊ฐ์ ํด๋ ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ ์๋ค. ์ฌ๊ธฐ์ public ํด๋๋ ์ ์ ํ์ผ(ht..
-
โ๏ธ TDD | Jest ์ฌ์ฉํด๋ณด๊ธฐtdd 2021. 12. 7. 19:42
Jest ์ด๊ธฐ ์ธํ Jest๋ ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ ํ๋ ์์ํฌ์ด๋ค. babel, typescript, node, react, angular, vue ๋ฑ์ ์ฌ์ฉํ๋ ์ฌ๋ฌ ํ๋ก์ ํธ์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค. 1. installing Jest using npm npm install --save-dev jest 2. ์์ ํ์ผ sum.js ์์ฑ //sum.js function sum(a,b){ return a + b; } module.exports = sum; 3. ํ ์คํธ ์์ ํ์ผ sum.test.js ์์ฑ ์ด ๋ __test__ ๋๋ ํ ๋ฆฌ ์์ ์๋ ํ์ผ์ด๋ test.js๋ก ๋๋๋ ํ์ผ๋ค์ ๋ชจ๋ ํ ์คํธ ํ์ผ๋ก ์ธ์ํ๋ค. const sum = require('./sum'); test('add 1 + 2 to..