๋ฐ˜์‘ํ˜•

2025/11 ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 7๊ฑด

DOM์—์„œ ์š”์†Œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ์ด๋ฒคํŠธ๋Š” **์ž์‹ → ๋ถ€๋ชจ๋กœ ์ „ํŒŒ(๋ฒ„๋ธ”๋ง)**๋ฉ๋‹ˆ๋‹ค.์ด ํŠน์„ฑ์„ ์ด์šฉํ•ด์„œ, “์—ฌ๋Ÿฌ ์ž์‹ ์š”์†Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ๋ฅผ ๋ถ™์ด์ง€ ์•Š๊ณ  ๋ถ€๋ชจ ํ•˜๋‚˜์— ์ด๋ฒคํŠธ๋ฅผ ๋งก๊ธฐ๋Š” ๋ฐฉ์‹”์„ **์ด๋ฒคํŠธ ์œ„์ž„(Event Delegation)**์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.1. ๊ธฐ์กด ๋ฐฉ์‹: ์š”์†Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ ์ง์ ‘ ๋“ฑ๋กdeleteBtn.addEventListener("click", function(){ newDiv.remove();})โœ” ๋™์ž‘ ๋ฐฉ์‹์นด๋“œ 1๊ฐœ ์ƒ์„ฑ → ์‚ญ์ œ ๋ฒ„ํŠผ 1๊ฐœ → ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ 1๊ฐœ์นด๋“œ 100๊ฐœ ์ƒ์„ฑ → ์‚ญ์ œ ๋ฒ„ํŠผ 100๊ฐœ → ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ 100๊ฐœ์ฆ‰, ์š”์†Œ ๊ฐœ์ˆ˜๋งŒํผ ์ด๋ฒคํŠธ๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค. ์ด ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ :์นด๋“œ 100๊ฐœ๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋„ 100๊ฐœ ์ƒ๊น€์„ฑ๋Šฅ ๋–จ์–ด์ง€๊ณ  ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง๋™์ ์œผ๋กœ ์ถ”๊ฐ€๋œ ์š”์†Œ๋Š”..

DB ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ํด๋ผ์šฐ๋“œ๋‚˜ ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…(๋คํ”„)ํ•˜๊ณ ,์ด๋ฅผ ๋กœ์ปฌ ํ™˜๊ฒฝ์œผ๋กœ ๋ณต์›ํ•ด์•ผ ํ•  ์ผ์ด ์ž์ฃผ ์ƒ๊น๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” pg_dump๋กœ ๋ฐฑ์—…์„ ๋งŒ๋“ค๊ณ , pg_restore๋ฅผ ์ด์šฉํ•ด ๋กœ์ปฌ DB·ํŠน์ • ์Šคํ‚ค๋งˆ์— ๋ณต์›ํ•˜๋Š” ์ „์ฒด ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.1. pg_dump๋กœ DB ๋ฐฑ์—…(dump) ๋งŒ๋“ค๊ธฐ๋ฐฑ์—…(dump) ์ƒ์„ฑ์€ PostgreSQL์˜ pg_dump๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.Custom format(-F c)์œผ๋กœ ๋ฐฑ์—…ํ•˜๋ฉด ๋‚˜์ค‘์— pg_restore๋กœ ์Šคํ‚ค๋งˆ ๋‹จ์œ„ ๋ณต์›์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ ๋ช…๋ นpg_dump -h {host} -U {user} -d {database} -F c -f "๊ฒฝ๋กœ\ํŒŒ์ผ๋ช….dump" ์˜ต์…˜ ์„ค๋ช…์˜ต์…˜์„ค๋ช…-h์ ‘์†ํ•  ์„œ๋ฒ„ ์ฃผ์†Œ. Render ๋“ฑ ์™ธ๋ถ€ ์„œ๋ฒ„์ผ ๊ฒฝ์šฐ ์™ธ๋ถ€ ํ˜ธ์ŠคํŠธ, ๋กœ์ปฌ์€ loca..

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜๋Š” ์„ ์–ธ ๋ฐฉ์‹์— ๋”ฐ๋ผ ์Šค์ฝ”ํ”„(์œ ํšจ ๋ฒ”์œ„)๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. var : ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„(function scope)let, const : ๋ธ”๋ก ์Šค์ฝ”ํ”„(block scope)์—ฌ๊ธฐ์„œ "์Šค์ฝ”ํ”„"๋Š” ๊ทธ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์˜ ๋ฒ”์œ„๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„๋ž€?var๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์ „์ฒด์—์„œ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.์ฆ‰, if, for, { } ๊ฐ™์€ ๋ธ”๋ก({}) ๋‚ด๋ถ€์— ์„ ์–ธํ•ด๋„ ๋ธ”๋ก ๋ฐ–์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ž€?let์ด๋‚˜ const๋Š” ํ•ด๋‹น ๋ธ”๋ก({}) ์•ˆ์—์„œ๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ECMAScript 2015(ES6)์—์„œ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.์˜ˆ์ œ(1) var๋Š” ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„if (true) { var x = 5;}console.log(x); // 5 var x๋Š” if๋ฌธ ๋ธ”๋ก {} ์•ˆ์—์„œ ์„ ์–ธ๋์ง€๋งŒ,์ž๋ฐ”์Šค..

์•ˆ๋…•ํ•˜์„ธ์š” :) ์˜ค๋Š˜์€ ๋งŽ์€ ๋ถ„๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” Noto Sans KR ํฐํŠธ ์ ์šฉ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ดค์–ด์š”.Google Fonts๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , npm์œผ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.ํ”„๋กœ์ ํŠธ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ์„ ํƒํ•ด์„œ ์ ์šฉํ•ด๋ณด์„ธ์š”! Noto Sans KR๊ตฌ๊ธ€·์–ด๋„๋น„ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ์‚ฐ์„ธ๋ฆฌํ”„ ๊ณ„์—ด ๊ธ€๊ผด๋กœ ํ•œ๊ธ€·์˜๋ฌธ·ํ•œ์ž ๋“ฑ ๋‹ค๊ตญ์–ด ์ง€์›์ด ์ข‹๊ณ  ํ™”๋ฉด ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.์›น์šฉ์œผ๋กœ ๋„๋ฆฌ ์“ฐ์ด๋ฉฐ ์—ฌ๋Ÿฌ ๊ตต๊ธฐ(Weights)๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์–ด์š”.1. CDN์œผ๋กœ ์ ์šฉํ•˜๊ธฐ (๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•)jsDelivr (์ถ”์ฒœ)์œ„ ๋งํฌ๋ฅผ ์•ˆ์— ๋„ฃ์œผ๋ฉด**Thin(100)๋ถ€ํ„ฐ Black(900)**๊นŒ์ง€ ๋ชจ๋“  weight๋ฅผ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ดํ›„ CSS์—์„œ ์ด๋ ‡๊ฒŒ ์ง€์ •ํ•˜๋ฉด ๋ผ์š” ๐Ÿ‘‡body { font-fa..

์ผ๋ณธ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ๋น„์Šทํ•œ ํ‘œํ˜„๋“ค์ด ๋งŽ์•„์„œ ํ—ท๊ฐˆ๋ฆด ๋•Œ๊ฐ€ ๋งŽ์ฃ  ๐Ÿ˜…์˜ค๋Š˜์€ ์ €๋ฒˆ ๋™์‚ฌ 20๊ฐœ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๊ทธ ์™ธ์—๋„ ์ผ์ƒ์—์„œ ์ •๋ง ์ž์ฃผ ์“ฐ์ด๋Š” ์ผ๋ณธ์–ด ๋™์‚ฌ 20๊ฐœ๋ฅผ ์†Œ๊ฐœํ• ๊ฒŒ์š” ๐Ÿ’ก๋œป, ๋ฐœ์Œ, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ์˜ˆ๋ฌธ๊นŒ์ง€ ํ•จ๊ป˜ ์ตํžˆ๋ฉด ๋‹จ์–ด ์•”๊ธฐ๊ฐ€ ํ›จ์”ฌ ์‰ฌ์›Œ์งˆ ๊ฑฐ์˜ˆ์š” ๐Ÿ™Œ์ผ๋ณธ์–ด ๋™์‚ฌ 20๊ฐœ ์ •๋ฆฌํ‘œํ•œ๊ตญ์–ด ์ผ๋ณธ์–ด ๋ฐœ์Œํ•œ๊ตญ์–ด์ผ๋ณธ์–ด๋ฐœ์Œ์ž๋‹คๅฏใพใ™๋„ค๋งˆ์Šค์ผ์–ด๋‚˜๋‹ค่ตทใใพใ™์˜คํ‚ค๋งˆ์Šค๊ธฐ๋‹ค๋ฆฌ๋‹คๅพ…ใกใพใ™๋งˆ์น˜๋งˆ์Šค๋ณด๋‚ด๋‹ค้€ใ‚Šใพใ™์˜ค์ฟ ๋ฆฌ๋งˆ์Šค๋นŒ๋ฆฌ๋‹คๅ€Ÿใ‚Šใพใ™์นด๋ฆฌ๋งˆ์Šค๋Œ๋ ค์ฃผ๋‹ค่ฟ”ใ—ใพใ™์นด์—์‹œ๋งˆ์Šค์•Œ๋‹ค็Ÿฅใ‚Šใพใ™์‹œ๋ฆฌ๋งˆ์Šค๋ชจ๋ฅด๋‹ค็Ÿฅใ‚Šใพใ›ใ‚“์‹œ๋ฆฌ๋งˆ์„ผ๋ฐฐ์šฐ๋‹ค(์Šค์Šค๋กœ ์ตํžˆ๋‹ค)ๅญฆใณใพใ™๋งˆ๋‚˜๋น„๋งˆ์Šค์‰ฌ๋‹คไผ‘ใฟใพใ™์•ผ์Šค๋ฏธ๋งˆ์Šค์ผํ•˜๋‹คๅƒใใพใ™ํ•˜ํƒ€๋ผํ‚ค๋งˆ์Šค์“ฐ๋‹ค(ํŽœ์œผ๋กœ ์“ฐ๋‹ค ์™ธ์—)ไฝฟใ„ใพใ™์ธ ์นด์ด๋งˆ์Šค์ž…๋‹ค็€ใพใ™ํ‚ค๋งˆ์Šค๋ฒ—๋‹ค่„ฑใŽใพใ™๋ˆ„๊ธฐ๋งˆ์Šค๋„์™€์ฃผ๋‹คๆ‰‹ไผใ„ใพใ™ํ…Œ์ธ ๋‹ค์ด๋งˆ์Šคํ•„์š”ํ•˜๋‹ค่ฆใ‚Šใพใ™์ด๋ฆฌ๋งˆ์Šค์žˆ๋‹ค(์‚ฌ๋žŒ/์ƒ๋ฌผ)ใ„ใพใ™์ด๋งˆ์Šค์žˆ๋‹ค(์‚ฌ..

์›น ์Šคํƒ€์ผ๋ง์„ ํ•  ๋•Œ '์–ด๋–ค ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฅธ ์š”์†Œ๋ฅผ ์„ ํƒํ• ๊นŒ' ํ•˜๋Š” ๋ฌธ์ œ๋Š” ์•„์ฃผ ์ž์ฃผ ๋งˆ์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ธ์ ‘ ํ˜•์ œ ๊ฒฐํ•ฉ์ž(+), ์ผ๋ฐ˜ ํ˜•์ œ ๊ฒฐํ•ฉ์ž(~) ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ, ๊ด€๋ จ๋œ ์„ ํƒ์ž๋“ค์„ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์ •๋ฆฌํ•ด์„œ ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ์— ๋ฐ”๋กœ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ์˜ˆ์‹œ์™€ ์ž์ฃผ ์“ฐ์ด๋Š” ํŒจํ„ด, ์‹ค์ „ ํŒ๊นŒ์ง€ ๋‹ด์•˜์œผ๋‹ˆ ๋ณต์‚ฌํ•ด์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ธ์ ‘ ํ˜•์ œ(+), ์ผ๋ฐ˜ ํ˜•์ œ(~), ์ž์‹(>), ํ›„์†(์ŠคํŽ˜์ด์Šค) ์„ ํƒ์ž ์ฐจ์ด์™€ ์˜ˆ์ œ ์ •๋ฆฌ. ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ํŒจํ„ด๊ณผ ์ฃผ์˜์‚ฌํ•ญ๊นŒ์ง€ ํ•œ ๋ฒˆ์—. 1) ๊ฐœ์š” — ์„ ํƒ์ž(Combinators)๋ž€?CSS ๊ฒฐํ•ฉ์ž(combinator)๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ์„ ํƒ์ž ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ‘์–ด๋–ค ์š”์†Œ์˜ ๋ฐ”๋กœ ๋‹ค์Œ ํ˜•์ œ’๋ผ๊ฑฐ๋‚˜ ‘์–ด๋–ค ์š”์†Œ์˜ ์ž์‹’ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ์„ ..

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํฐํŠธ ํ™•์ธ ๋ฐฉ๋ฒ•sld ํŒŒ์ผ๋กœ ์•„๋ฌด๋ฆฌ ์™ธ๋ถ€ ํฐํŠธ๋ฅผ ์„ค์ •ํ•ด ๋†“๋Š”๋‹ค๊ณ  ํ•ด๋„geoserver๊ฐ€ ์„ค์น˜๋œ ์„œ๋ฒ„ ๋‚ด์—์„œ ํฐํŠธ๊ฐ€ ๊น”๋ ค์žˆ์ง€ ์•Š์œผ๋ฉด ์ œ๋Œ€๋กœ ์ธ์‹์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. geoserver ์›น์— ์ ‘์†ํ•œ ํ›„ ์™ผ์ชฝ ํƒญ์—์„œ ์„œ๋ฒ„์ƒํƒœ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” geoserver ip/geoserver/web ์„œ๋ฒ„์ƒํƒœ์—์„œ ๋ณด์‹œ๋ฉด ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํฐํŠธ์— ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํฐํŠธ ๋ณด๊ธฐ ๋งํฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด JVM์— ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํฐํŠธ ๋ชฉ๋ก์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. font-weight๋ฅผ bold๋กœ ์„ค์ •ํ•˜๋ฉด ๋ณดํ†ต ๊ตต๊ฒŒ ์•ˆ๋‚˜์˜ต๋‹ˆ๋‹ค.bold๊นŒ์ง€ ํฌํ•จ์—์„œ ์ด๋ฆ„์„ ์„ค์ •ํ•ด์•ผ ๊ตต๊ฒŒ ๋‚˜์˜ต๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ๋‚ด๊ฐ€ ์„ค์ •ํ•˜๊ณ  ์‹ถ์€ ํฐํŠธ๊ฐ€ bold๊ฐ€ ์—†๋‹ค? ๊ทธ๋Ÿผ ๋”ฐ๋กœ geoserver์— boldํฐํŠธ๋ฅผ ์„ค์น˜ํ•ด ์ฃผ์–ด์•ผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋‚ด์— ์„ค์น˜๋˜์–ด์žˆ๋Š” ํฐํŠธ๋งŒ ..

๋ฐ˜์‘ํ˜•