Banner

My Tech Blog (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)

์˜ค๋Š˜์˜ ๋ช…์–ธ
" ์ฒœ์žฌ๋Š” 1%์˜ ์˜๊ฐ๊ณผ 99%์˜ ๋•€์ด๋‹ค. "
- ํ† ๋งˆ์Šค ์—๋””์Šจ (๋ฏธ๊ตญ ๋ฐœ๋ช…๊ฐ€, ์‚ฌ์—…๊ฐ€)
๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๐Ÿฆ๋ชฉํ‘œ์ด๋ฒคํŠธ, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ, ์ด๋ฒคํŠธ ๋ฒ„์Šค ๋ฐ addEventListener์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.๊ทธ๋ฆฌ๊ณ  jQuery์™€ Vanilla JavaScript์—์„œ ์ด๋ฒคํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋งํ•˜์ง€๋งŒ jQuery๋Š” ํ•œ๋•Œ ์›น ๊ฐœ๋ฐœ์—์„œ ํ•„์ˆ˜์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜€์ง€๋งŒ, ์ด์ œ๋Š” Vanilla JavaScript(์ˆœ์ˆ˜ JS)๋‚˜ React, Vue, Svelte ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋Œ€์ฒดํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ด ์ค„์–ด๋“ค๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ addEventListener ์œ„์ฃผ๋กœ๋งŒ ์ •๋ฆฌํ–ˆ๊ณ  ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ด๋ฒคํŠธ ์ข…๋ฅ˜๋งŒ ๊ถ๊ธˆํ•œ ์‚ฌ๋žŒ์€ 6๋ฒˆ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉด ๋œ๋‹ค. 1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธ (JavaScript Event)์ด๋ฒคํŠธ(Event)๋Š” ์‚ฌ์šฉ์ž๋‚˜ ์‹œ์Šคํ…œ์ด ์›น ํŽ˜์ด์ง€์—์„œ ์ผ์œผํ‚ค๋Š” ๋™์ž‘์ด๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฒ„ํŠผ ํด..
ํƒ์ƒ‰์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ ์„ ํƒ์ž๋กœ ์„ ํƒํ•œ ์š”์†Œ ์ค‘ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ ๋” ํƒ์ƒ‰ํ•ด์„œ ์ข€ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ ํƒํ•˜๋Š” `์œ„์น˜ํƒ์ƒ‰ ์„ ํƒ์ž`์™€ ๋ฐฐ์—ด์— ๋‹ด๊ฒจ์ง„ ์š”์†Œ ์ค‘ ์ง€์ •๋œ ์†์„ฑ๊ณผ ๊ฐ’์œผ๋กœ ์„ ํƒํ•˜๋Š” `์†์„ฑ ํƒ์ƒ‰ ์„ ํƒ์ž`๊ฐ€ ์žˆ๋‹ค.  1. ์œ„์น˜ ํƒ์ƒ‰ ์„ ํƒ์ž โ–ผ๊ธฐ๋ณธ ์„ ํƒ์ž๋กœ ์„ ํƒํ•œ ์š”์†Œ๋Š” ๋ฐฐ์—ด์— ๋‹ด๊ธฐ๊ฒŒ ๋œ๋‹ค.๊ทธ๋ž˜์„œ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ์š”์†Œ๋ฅผ ์ข€ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ข…๋ฅ˜์šฉ๋ฒ•์„ค๋ช…$("์š”์†Œ ์„ ํƒ:first")$("์š”์†Œ ์„ ํƒ").first()$("li:first")$("li").first()์ „์ฒด ์š”์†Œ ์ค‘ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋งŒ ์„ ํƒ$("์š”์†Œ ์„ ํƒ:last")$("์š”์†Œ ์„ ํƒ").last()$("li:last")$("li").last()์ „์ฒด ์š”์†Œ ..
โญ ๋ฌธ์„œ๊ฐ€ ๋กœ๋“œ๋œ ํ›„ ์‹คํ–‰ํ•˜์žโญ jQuery ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋จผ์ € ๋กœ๋“œํ•˜์žโญ $ ์ถฉ๋Œ ๋ฐฉ์ง€ ํ•„์š” ์‹œ noConflict โญ ์ด๋ฒคํŠธ ์ค‘๋ณต ๋ฐฉ์ง€ off()โญ AJAX ์บ์‹ฑ ๋ฐฉ์ง€ (cache: false) โญ ๋™์  ์š”์†Œ์— ์ด๋ฒคํŠธ ์ ์šฉ on()โญ ์„ฑ๋Šฅ ์ตœ์ ํ™” (map(), .append() ์ตœ์†Œํ™”) 1. ๋ฌธ์„œ๊ฐ€ ์™„์ „ํžˆ ๋กœ๋“œ๋œ ํ›„ ์‹คํ–‰ํ•˜๊ธฐ์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์„œ ๊ฐ์ฒด๋ฅผ ๋จผ์ € ๋ถˆ๋Ÿฌ์™€์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ HTML์ด ๋กœ๋“œ๋˜๊ธฐ ์ „์— jQuery ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.๐Ÿ“Œ ํ•ด๊ฒฐ์ฑ…: $(document).ready() ์‚ฌ์šฉ ๋˜๋Š” ๋ณ€๊ฒฝ๋  ํ…์ŠคํŠธ โญ• [๋ฐฉ๋ฒ• 2] $(document).ready() ์‚ฌ์šฉ ๋ณ€๊ฒฝ๋  ํ…์ŠคํŠธ$(document).ready()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์„œ๊ฐ€ ์™„์ „ํžˆ ..
1. Object (๊ฐ์ฒด)  2. DOM (Document Object Model)2-1. DOM(๋ฌธ์„œ๊ฐ์ฒด๋ชจ๋ธ) ๋ฌธ์„œ๊ฐ์ฒด๋ชจ๋ธ(DOM) HTML CSS JS  2-2. innerHTML vs textContent ์˜ค๋Š˜์€ ๋ฌธ์„œ๊ฐ์ฒด๋ชจ๋ธ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด์•˜๋‹ค 2-3. querySelector vs getElementByID์š”์ฆ˜์—๋Š” ์–ด์ฐจํ”ผ ๋‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ์ง€๋งŒ DOM ํ™œ์šฉํ•ด๋ณด๊ธฐ h1ํƒœ๊ทธ ๋‚ด์šฉ ๋ณ€๊ฒฝ a ํƒœ๊ทธ ์ƒ์„ฑ ulํƒœ๊ทธ ์ƒ์„ฑ   2-4. addEventListener ๋‚œ๋ฒ„ํŠผ์ด์ง€๋กฑ 2-5. ์˜ˆ์ œ1_counting 0 ์ฆ๊ฐ€ ๊ฐ์†Œ 2-6. ์˜ˆ์ œ2_๋ฐ˜๋ณต๋ฌธ ์ถœ๋ ฅ..
์Œ์•…์ด ์žฌ์ƒ์ค‘์ผ๋•Œ๋งŒ ๊ณก ์ •๋ณด(์ œ๋ชฉ, ํ”„๋กœ๊ทธ๋ ˆ์Šค๋ฐ”)๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด ๋‹คํฌ๋ชจ๋“œ์—์„œ ์ด๋ป๋ณด์ด๋„๋ก ๋…ธ์„ ์ƒ‰์ƒ์œผ๋กœ ๋ฐฐ๊ฒฝ์„ ๋„ฃ์–ด ์ฃผ์—ˆ๋‹ค.์Œ์•… ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ํ•˜๋Š˜ ์ƒ‰๊น”์ด ๋ฐ”๋€Œ๊ฒŒ ์„ค์ •ํ•ด ๋ณด๋‹ˆ ์ด์˜๋‹ค! ๋นŒ๋”ฉ์ด๋ž‘ ๋‹ฌ์€ ๋ฌด๋ฃŒ svg ์‚ฌ์ดํŠธ์—์„œ ๊ฐ€์ ธ์™€์„œ ๋„ฃ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. CSS ๋กœ ํฌ๊ธฐ์™€ ์œ„์น˜ ์กฐ์ ˆํ•ด์„œ ์›ํ•˜๋Š” ๊ณณ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ๋ธ”๋กœ๊ทธ์—์„œ ๊ตฌ๊ธ€ ์• ๋“œ์„ผ์Šค๋‚˜ ๊ด‘๊ณ ๋กœ ์ˆ˜์ต ์ฐฝ์ถœํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ๋ฐฐ๊ฒฝ์Œ์•…์€ ์ž์ œํ•ด ์ฃผ์„ธ์š”์ƒ์—…์  ๋ชฉ์ ์œผ๋กœ ๋ธŒ๊ธˆ ์“ฐ์‹œ๋ฉด ๋…ธ๋…ธ๋…ธ  [html ์ฝ”๋“œ] ..
# ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด(Template Literal)ES6๋ถ€ํ„ฐ ์ƒˆ๋กœ ๋„์ž…๋œ ๋ฌธ์ž์—ด ํ‘œ๊ธฐ๋ฒ•๋ฌธ์ž์—ด ์ƒ์„ฑ์‹œ ๋”ฐ์˜ดํ‘œ ๋Œ€์‹ , ๋ฐฑํ‹ฑ(`)์„ ์‚ฌ์šฉvar str_01 = `hello world`;//๋ฐฑํ‹ฑ ์‚ฌ์šฉconst x='x';const y='y';const z='z';console.log(`${x}๋Š” x, ${y}๋Š” y, ${z}๋Š” z์ด๋‹ค. `); //x๋Š” x, y๋Š” y, z๋Š” z์ด๋‹ค. โ–ถ๏ธŽ ๋ฐฑํ‹ฑ(`)์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ JS ES6(ECMAScript 2015)๋ถ€ํ„ฐ ๋„์ž…๋˜์—ˆ๋‹ค.โ–ถ๏ธŽ ๊ฐœํ–‰ ๋ฌธ์ž(\n)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ž๋™ ์ค„๋ฐ”๊ฟˆ โ–ถ๏ธŽ ์ƒ๊น€์ƒˆ๊ฐ€ ์ž‘์€๋”ฐ์›€ํ‘œ(')์™€ ๋น„์Šทํ•˜๋‹ˆ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๋„๋ก ์ฃผ์˜# ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด - ๋ฐฑํ‹ฑ(`)์˜ ๊ธฐ๋Šฅ ์ค„๋ฐ”๊ฟˆ(๊ฐœํ–‰: Multi-line strings)  โ–ถ๏ธŽ ๋ฐฑํ‹ฑ(`)์œผ๋กœ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๋ฉด..
// JSON ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ JS ์‚ฌ์šฉ๋ฒ•// [1] : ๋ฐ์ดํ„ฐ const person = [ `{"name":"์ด์ˆœ์‹ ","age":20,"nationality":"๋Œ€ํ•œ๋ฏผ๊ตญ"}`, {"name":"๋งฅ์•„๋”","age":30,"nationality":"๋ฏธ๊ตญ"}, {"name":"์—˜๋ฆฌ์ž๋ฒ ์Šค","age":40,"nationality":"์˜๊ตญ"}, {"name":"์ž”๋‹ค๋ฅดํฌ","age":50,"nationality":"ํ”„๋ž‘์Šค"},]; console.log(typeof person); // objectconsole.log(typeof person[0]); // stringconsole.log(typeof person[1]); // object ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๋ฉด string ..
JSON๊ณผ XML์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํ˜•์‹์ด๋‹ค.1. XMLXML์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ „๋‹ฌํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ, ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ˆ ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด์ด๋ฉฐ EXtensible Markup Language์˜ ์•ฝ์ž์ด๋‹ค. - XML์€ ๋‹ค๋ฅธ ๋ชฉ์ ์˜ ๋งˆํฌ์—… ์–ธ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค๋ชฉ์  ๋งˆํฌ์—… ์–ธ์–ด- XML์€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๋ผ๋ฆฌ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์†์‰ฝ๊ฒŒ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.- XML์€ ์ƒˆ๋กœ์šด ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€ํ•ด๋„ ๊ณ„์†ํ•ด์„œ ๋™์ž‘ํ•˜๋ฏ€๋กœ, ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค. - XML์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๊ฒƒ๋งŒ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค.- XML์€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์–ธ์–ด๋กœ ๋ชจ๋“  XML ๋ฌธ์„œ๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„๋‹ค.XML ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด XHTML, SVG,..
์ƒ๋‹จ์œผ๋กœ