๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„๋ก ํŠธ์—”๋“œ(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.