ํ๋ก ํธ์๋(Front-end)43 DOM๊ณผ BOM DOM๊ณผ BOMDOM : ํ๋ฉด ์์์ ์ ๊ทผํ ์ ์๋ XHTML, HTML์ฉ API (Document Object Model)BOM : ์น ๋ธ๋ผ์ฐ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ API (Browser Object Model) DOM : ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธDOM์ HTML ๋ฌธ์์ฉ API๋ค.์ผ์ข ์ ์ธํฐํ์ด์ค๋ก, ๋ ธ๋(ํด๋น ์์), ํ๋กํผํฐ(๋ ธํธ์ ์), ๋ฉ์๋(์์ ์กฐ์)๋ค์ ๊ตฌ์กฐํํ ๊ฐ์ฒด๋ก ํํํ๋ค. DOM ํธ๋ฆฌDOM์ ๋ฌธ์๋ฅผ ๋ ธ๋์ ๊ณ์ธต์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ํ๋ธ๋ค.๋ ธ๋ ํธ๋ฆฌ์ ์ต์์ ๋ ธ๋๋ฅผ root๋ผ๊ณ ํ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก HTML ๋ฌธ์์์ ์ด root ๋ ธ๋๊ฐ ๋๋ค. NodeNode : ์ ์ฒด ๋ฌธ์์ ์์๋ค์ ๋ํ ๊ฐ์ฒด ํํ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์์ DOM ํธ๋ฆฌ์์ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ๋ํ๋ด๋ฉฐ, nodeName, nodeVa.. 2025. 3. 11. ์๋ฐ์คํฌ๋ฆฝํธ(JS) ๊ธฐ์ด 7 : ์ค์ฝํ(scope) ์ค์ฝํ(scope)์ค์ฝํ(scope)๋ ๋ณ์๋ ๋งค๊ฐ๋ณ์์ ์ ๊ทผํ ์ ์๋ ๋ฒ์๋ฅผ ๊ฒฐ์ ํ๋ค.ํจ์ ๋จ์ ์ค์ฝํ : ์ ์ธ๋ ํจ์ ๋จ์๋ก ์์ฑ๋๋ ์ค์ฝํํจ์ ์ค์ฝํ ๋ด์์ ์ ์ธ๋ ๋ณ์/ํจ์๋ธ๋ก ๋จ์ ์ค์ฝํ : ๋ธ๋ก({}) ๋จ์ ๋ด๋ถ์ ์ค์ฝํ๋ธ๋ก์ผ๋ก ๋ฌถ์ธ if๋ฌธ ๋ด๋ถ์์ let, const ํค์๋๋ก ์ ์ธ๋ ๋ณ์let, const ํค์๋๋ก ์ ์ธ๋ ๋ณ์๋ ๋ธ๋ก ์ค์ฝํ๋ฅผ ๋ฐ๋ฆ ๋ ์์ปฌ ์ค์ฝํ๋ ์์ปฌ ์ค์ฝํ๋ ๋ณ์๋ ํจ์๋ฅผ ์ด๋์ ์์ฑํ์๋๊ฐ์ ๊ธฐ์ดํ์ฌ ๊ฒฐ์ ๋๋ ์ค์ฝํ ๋ฐฉ์์ด๋ค.function foo() { var a = 1; function bar(b) { console.log(a, b); // 1, 2 } bar(2);}// ์ ์ญ ์ค์ฝํ๋ ํ์ ์ค์ฝํ์ธ foo() ๋ฒ์ ๋ด์ ์๋ ๋ณ์ a์ ์ ๊ทผ.. 2025. 3. 11. ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด(6) : ํ๋กํ ํ์ ํ๋กํ ํ์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ํ๋กํ ํ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด ์งํฅ์ ์์ ๊ฐ๋ ์ ๊ตฌํํ๋ค.๋ชจ๋ ๊ฐ์ฒด๋ ์์ ์ ๋ถ๋ชจ ์ญํ ์ ํ๋ ํ๋กํ ํ์ ์ ์ฐธ์กฐ ๋งํฌ๋ฅผ ๊ฐ์ง๊ฐ์ง๊ณ ์๋ ์ฐธ์กฐ ๋งํฌ๋ฅผ ํตํด ํ๋กํ ํ์ ์ผ๋ก๋ถํฐ ํ๋กํผํฐ/๋ฉ์๋๋ฅผ ์์๋ฐ์ํ๋กํ ํ์ ์ญ์ ์์ ํ๋กํ ํ์ ์ผ๋ก๋ถํฐ ํ๋กํผํฐ/๋ฉ์๋๋ฅผ ์์๋ฐ์๊ฐ์ฒด์ ํ๋กํ ํ์ ์ ์ฐธ์กฐ ๋งํฌ ํํ๋ก ๋ด๋ถ ํ๋กํผํฐ์ ์ ์ฅ๋๋ค.๋๋ฌธ์ ๋์ผํ ํ๋กํ ํ์ ์ ์์๋ฐ์ ๊ฐ์ฒด๋ ๋ชจ๋ ๊ฐ์ ํ๋กํผํฐ/๋ฉ์๋๋ฅผ ๊ณต์ ํ๋ค. const obj = { name: 'Bang';};console.log(obj.toString()); // '[Object object]'์ ์ฝ๋์์ obj๊ฐ toString() ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ค.toString()๊ณผ ๊ฐ์ ๋ฉ์๋๋ Object.prototyp์ ํฌํจ๋์ด.. 2025. 3. 4. ์๋ฐ์คํฌ๋ฆฝํธ(JS) ๊ธฐ์ด 5 : ํจ์ ํจ์ํจ์๋ ๊ฐ์ฒด์ ํน๋ณํ ํํ์ด๋ฉฐ, ๋ฌธ(statement)๋ก ๊ตฌ์ฑ๋ ๋ชธ์ฒด๋ฅผ ๊ฐ์ง ํ๋์ ์คํ ๋จ์์ด๋ค.function doSomething() { console.log('hello javascript');} ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ ์ผ๊ธ ํจ์(first-class function)๋ก์ ๋ค๋ฅธ ํจ์์ ๋งค๊ฐ๋ณ์/๋ฐํ๊ฐ์ด ๋ ์ ์๋ค.function lastSomething(callback) { callback(); console.log('last');}finishSomething(doSomething);์ด ๋ ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ๋์ด๊ฐ๋ ํจ์(doSomething)์ ์ฝ๋ฐฑ ํจ์๋ผ๊ณ ํ๋ค.์ด๋ฐ ํํ์ ๋ํ์ ์ธ ์๋ก DOM์ ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํ๋ addEventListener() ํจ์๊ฐ ์๋ค.button.addEv.. 2025. 3. 4. ์๋ฐ์คํฌ๋ฆฝํธ(JS) ๊ธฐ์ด 4 : ํ์ ๋ณํ ํ์ ๋ณํ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ด๋ํ ํ์ ๋ณํ์ ์ํํ์ฌ, ์ด๋ค ๊ฒฝ์ฐ์ ๋ฐ์ดํฐ ํ์ ๋ณํ์ด ๋ฐ์ํ๋ ์ง ์๋ ๊ฒ์ด ์ข๋ค.ECMAScript์ ๋ช ์๋ ๋ช ์ธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ํ์ ๋ณํ์ ์์๋ณด์ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ๋ณํ์ ๋ช ์์ ๊ฐ์ ๋ณํ, ์์์ ๊ฐ์ ๋ณํ ๋ ๊ฐ์ง๊ฐ ์๋ค.๋ช ์์ ๊ฐ์ ๋ณํ์ ์๋์ ์ธ ํ์ ๋ณํ์, ์์์ ๊ฐ์ ๋ณํ์ ํํ์์ ํ๊ฐ ์ค์ ๋ณํ์ ๋งํ๋ค. ๋ช ์์ ๊ฐ์ ๋ณํ1. ๋ฌธ์์ด๋ก ๋ณํ๋ค๋ฅธ ํ์ ์์ ๋ฌธ์์ด ํ์ ์ผ๋ก์ ๋ณํ์ ToString ์ถ์ ์ฐ์ฐ ๋ช ์ธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.ํ์ ๋ฌธ์์ด ๋ณํ ๊ฒฐ๊ณผundefined'undefined'null'null'booleantrue โข 'true', false โข 'false'numberNumber.toString()์ ๊ฒฐ๊ณผ ๋ฐํ(3 โข '3')S.. 2025. 2. 19. Styled Components : ์ ์ญ ์คํ์ผ๋ง ์คํ์ผ๋งReact๋ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ ๋ ๋ฒจ ์คํ์ผ๋ง์ ํ๋ค.ํ์ง๋ง font ์ค์ ์ด๋ ์ผ๊ด์ ์ธ ์คํ์ผ ์ ์ฉ์ ์ํด ๋ชจ๋ ์ปดํฌ๋ํธ์ ๋์ผํ ์คํ์ผ์ ์ ์ฉํด์ผํ๋ ์ํฉ๋ ์๋ค.Component LevelApplication Level์ปดํฌ๋ํธ ๋จ์๋ก ์ ์ฉํ ์คํ์ผ.์ธ๋ถ์ ๊ฒฉ๋ฆฌ์์ผ ํด๋น ์ปดํฌ๋ํธ ๋ด๋ถ์๋ง ์ ํจํ๋ค๋ชจ๋ ์ปดํฌ๋ํธ์ ๋์ผํ ์คํ์ผ์ ์ ์ฉํ ์ ์์.ex) font-family, normalize, reset ๋ฑ ์ ์ญ ์คํ์ผ๋ง์ ์ ์ฉํ ๋๋ createGlobalStyle() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.// GlobalStyle.jsximport {createGlobalStyle } from "styled-components";const GlobalStyle .. 2025. 2. 15. Styled Components CSS in JSCSS in JS๋ CSSํ์ผ์ด ์๋ JS๋ก ์์ฑ๋ ์ปดํฌ๋ํธ์ ๋ฐ๋ก ์คํ์ผ ์ ์๋ฅผ ํ๋ ๊ธฐ๋ฒ์ด๋ค. ๊ธฐ์กด ์น ๊ฐ๋ฐ์ HTML/CSS/JS๋ฅผ ๋ณ๋๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ง๋ง, ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ์ด์ฉ๋๋ฉฐ์ฌํ์ฉ ๊ฐ๋ฅํ ๋ธ๋ก ๋จ์ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ด ์ฃผ๋ฅ๊ฐ ๋๊ณ ์๋ค.๋ฐ๋ผ์ HTML, CSS, JS๋ฅผ ํ ์ปดํฌ๋ํธ์ ๋ฃ๋ ํจํด์ด ๋ง์ด ์ฌ์ฉ๋๋ค. React์์๋ JSX๋ก JS๊ฐ HTML๋ฅผ ํฌํจํ๋ ํํ๋ฅผ ์ทจํ๊ณ ์์ผ๋ฉฐ, CSS in JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๊ฐ์ง๋ฅผ ํ ๋ฒ์ ์์ฑํ ์ ์๋ค. Styled Components๋ CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์์๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. styled components ํจํค์ง ์ค์นReact ํ๋ก์ ํธ์ styled-compo.. 2025. 2. 15. Font Awesome ์์ด์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Font Awesome์น/์ฑ์ฉ ์์ด์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.ํฐํธ์ด์ธ์ ๊ฐ์ ํ์ฌ ๋ฉ์ผ๋ก ๊ฐ์ธ CDN์ ์์ฑํ์ฌ ์ฌ์ฉํ ์ ์๋ค. Font AwesomeThe internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome.fontawesome.com ์ฌ์ฉ๋ฒ0. CDN ๋ฐ๊ธstart for free - ๊ฐ์ - kit ์์ฑ - kit embed code ๋ณต์ฌ 1. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋ ๋ถ์ฌ๋ฃ๊ธฐ 2. ์์ด์ฝ ์ถ๊ฐ์ถ๊ฐํ๊ณ ์ถ์ ์์ด์ฝ์ ์ ํํ์ฌ ํด๋นํ๋ ์ฝ๋๋ฅผ body์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ผ๋ฉด ์์ด์ฝ์ ์ฌ์ฉํ ์ ์๋ค. 3. ์ถ๊ฐ ์คํ์ผfont-size.. 2025. 2. 15. CSS : absolute position positionCSS์์ position ์์ฑ์ ์์๋ฅผ ํ๋ฉด์ ์ด๋ป๊ฒ ๋ฐฐ์นํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค.๊ธฐ๋ณธ๊ฐ : static๋ณ๊ฒฝ๊ฐ : relative, absolute, fixedposition์ผ๋ก ์์ฑ ์์๋ฅผ ์์น์ํค๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๊ณ ,ํฌ์ง์ ๋ ๊ด๋ จ ์์ฑ์ธ top, left, bottom, right ๋ฑ์ ์ฌ์ฉํ์ฌ ์์์ offset์ ์ง์ ํ ์ ์๋ค. absolute์ ํน์ง๋ถ๋ชจ ์์์ ์๋ฐ๋์ง ์์์์๋ฅผ ํ๋ฉด์ ์ํ๋ ์์น์ ์์ ๋กญ๊ฒ ๋ฐฐ์น์ํฌ ์ ์์์์ ์์๊ฐ relative๋ผ๋ฉด, ํด๋น ์์์ ๋ด๋ถ์์ ๋์ํจ parent child 1 child 2 child 3 .parent{.. 2025. 2. 15. ์ด์ 1 2 3 4 5 ๋ค์