728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1319

[js] URL ์ด๋™ ๋ฐ ํžˆ์Šคํ† ๋ฆฌ ์ œ์–ด ๋ฉ”์„œ๋“œ

โœ… 1. location.assign(url)์ง€์ •ํ•œ URL๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค (๋’ค๋กœ๊ฐ€๊ธฐ ๊ฐ€๋Šฅ).location.href = url๊ณผ ๋™์ผํ•œ ๋™์ž‘์ž…๋‹ˆ๋‹ค.location.assign("/login"); // ์ด๋™ + ๋’ค๋กœ๊ฐ€๊ธฐ ๊ฐ€๋Šฅ โœ… 2. location.replace(url)์ง€์ •ํ•œ URL๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.ํžˆ์Šคํ† ๋ฆฌ์— ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋’ค๋กœ๊ฐ€๊ธฐ ๋ถˆ๊ฐ€).๋กœ๊ทธ์ธ ํ›„ ๋ฆฌ๋””๋ ‰์…˜ ๋“ฑ์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.location.replace("/login"); // ์ด๋™ + ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ํžˆ์Šคํ† ๋ฆฌ์—์„œ ์ œ๊ฑฐโœ… 3. location.reload()ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•ฉ๋‹ˆ๋‹ค.์บ์‹œ ์—†์ด ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ ค๋ฉด location.reload(true) (์ผ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ฌด์‹œ๋จ)location..

Front/JS & jQuery 2025.07.15

[js] location ์†์„ฑ๋ณ„ ์„ค๋ช…

์†์„ฑ ์„ค๋ช…์˜ˆ์‹œ (https://example.com/customer/page.html?page=1#section1)location.href์ „์ฒด URL ๋ฌธ์ž์—ด (์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ฐ€๋Šฅ)"https://example.com/customer/page.html?page=1#section1"location.originํ”„๋กœํ† ์ฝœ + ํ˜ธ์ŠคํŠธ + ํฌํŠธ ๋ฒˆํ˜ธ"https://example.com"location.pathnameํ˜ธ์ŠคํŠธ ๋’ค์˜ ๊ฒฝ๋กœ ๋ถ€๋ถ„"/customer/page.html"location.search์ฟผ๋ฆฌ ๋ฌธ์ž์—ด (๋ฌผ์Œํ‘œ ํฌํ•จ)"?page=1"location.hashํ•ด์‹œ(anchor) (์ƒต ํฌํ•จ)"#section1"location.protocolํ”„๋กœํ† ์ฝœ"https:"location.hostnameํ˜ธ์ŠคํŠธ ์ด๋ฆ„(๋„๋ฉ”์ธ)"e..

Front/JS & jQuery 2025.07.14

[js] location.origin

location.origin์€ ํ˜„์žฌ ์›น ํŽ˜์ด์ง€์˜ **๊ธฐ๋ณธ URL(= ์ถœ์ฒ˜, origin)**์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.์ฆ‰, ํ”„๋กœํ† ์ฝœ + ํ˜ธ์ŠคํŠธ + ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. โœ… location.origin ๊ตฌ์„ฑ ์š”์†Œ๊ตฌ์„ฑ ์š”์†Œ ์˜ˆ์‹œ location.protocol"https:" ๋˜๋Š” "http:"location.hostname"example.com" ๋˜๋Š” "localhost"location.port":8080" (ํฌํŠธ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ)์ „์ฒด ์กฐํ•ฉ (origin)"https://example.com" ๋˜๋Š” "http://localhost:8080" โœ… ์˜ˆ์‹œ์˜ˆ 1: ๊ธฐ๋ณธ ํฌํŠธURL: https://example.com/path/page.htmllocation.origin // "https://example.com"..

Front/JS & jQuery 2025.07.10

[js] navigator.clipboard.writeText()

๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…์ŠคํŠธ๋ฅผ ํด๋ฆฝ๋ณด๋“œ(๋ณต์‚ฌ ์˜์—ญ)**์— ์ €์žฅํ•˜๋Š” ํ‘œ์ค€ JavaScript API์ž…๋‹ˆ๋‹ค. โœ… ๊ธฐ๋ณธ ์„ค๋ช…navigator.clipboard.writeText(text) text: ๋ณต์‚ฌํ•  ๋ฌธ์ž์—ด์ด ๋ฉ”์„œ๋“œ๋Š” Promise๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.๋ณต์‚ฌ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด .then()์ด ํ˜ธ์ถœ๋˜๊ณ , ์‹คํŒจํ•˜๋ฉด .catch()์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.โœ… ์˜ˆ์‹œnavigator.clipboard.writeText("https://example.com") .then(() => { alert("ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!"); }) .catch(err => { alert("๋ณต์‚ฌ ์‹คํŒจ: " + err); });

Front/JS & jQuery 2025.07.09

[jQuery] .is()

โœ… .is() ๋ฌธ๋ฒ•$(selector).is(selectorOrFunction) selectorOrFunction: CSS ์„ ํƒ์ž, DOM ์š”์†Œ, jQuery ๊ฐ์ฒด, ๋˜๋Š” ํ•จ์ˆ˜๋ฐ˜ํ™˜๊ฐ’: true ๋˜๋Š” false ๐Ÿ“Œ .is() ์˜ˆ$('.box').each(function() { if ($(this).is('.box')) { console.log('์ด ์š”์†Œ๋Š” box ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.'); }}); .is('.box'): ์ž์‹ ์ด .box ํด๋ž˜์Šค์ธ์ง€ ํ™•์ธ

Front/JS & jQuery 2025.07.08

[jQuery] .has()

jQuery์˜ .has()๋Š” ์„ ํƒ๋œ ์š”์†Œ ์ง‘ํ•ฉ ์ค‘์—์„œ ํŠน์ • ์ž์‹์„ ํฌํ•จํ•˜๋Š” ์š”์†Œ๋งŒ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค.๐Ÿ“Œ ๋ฌธ๋ฒ•$(selector).has(selectorOrElement) selectorOrElement: ํŠน์ • ์ž์‹ ์š”์†Œ(selector) ๋˜๋Š” DOM ์š”์†Œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.๋ฐ˜ํ™˜๊ฐ’: ํ•ด๋‹น ์ž์‹ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ƒ์œ„ ์š”์†Œ๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ƒˆ๋กœ์šด jQuery ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.โœ… ์˜ˆ์ œ 1: ํŠน์ • ์ž์‹ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ๋ถ€๋ชจ ํ•„ํ„ฐ๋ง Apple Banana Cherry $('li').has('span').css('color', 'red');๐Ÿ“Œ ๊ฒฐ๊ณผ: ์š”์†Œ ์ค‘ ์„ ์ž์‹์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์š”์†Œ๋งŒ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ฐ”๋€œ์ฆ‰, 2๋ฒˆ์งธ์™€ 3๋ฒˆ์งธ ๋งŒ ์„ ํƒ๋จ โœ… ์˜ˆ์ œ 2: ํŠน์ • DOM ์š”์†Œ๊ฐ€ ์ž์‹์œผ๋กœ ์žˆ๋Š”์ง€ ํ™•์ธ$('#parent1, #p..

Front/JS & jQuery 2025.07.07

[html] href์†์„ฑ # / javascript:void(0) ์ฐจ์ด

ํ•ญ๋ชฉ #javascript:void(0)์˜๋ฏธํ˜„์žฌ ํŽ˜์ด์ง€ ์ตœ์ƒ๋‹จ ์ด๋™JS ์ฝ”๋“œ ์‹คํ–‰ ํ›„ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Œ๊ธฐ๋ณธ ๋™์ž‘ํŽ˜์ด์ง€ ์ตœ์ƒ๋‹จ์œผ๋กœ ์Šคํฌ๋กค ์ด๋™์—†์ŒpreventDefault ํ•„์š” ์—ฌ๋ถ€ํ•„์š” (evt.preventDefault())๋ถˆํ•„์š”SEO ์นœํ™”๋„๋น„๊ต์  ๋‚˜์จ (๋นˆ ๋งํฌ)๋” ๋‚˜์จ (JS ์ง์ ‘ ์‚ฌ์šฉ์€ ๊ถŒ์žฅ ์•ˆ ๋จ)์•ˆ์ •์„ฑ/์ง๊ด€์„ฑ์ค‘๊ฐ„ (์ œ๋Œ€๋กœ ๋ง‰์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ)๋” ์•ˆ์ „ํ•˜๊ฒŒ ์ด๋ฒคํŠธ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅ โœ… ์™œ href="javascript:void(0)"์€ SEO์— ์•ˆ ์ข‹์„๊นŒ?๋งํฌ๋กœ์จ ์˜๋ฏธ ์žˆ๋Š” ๋ชฉ์ ์ง€๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.๊ฒ€์ƒ‰ ๋กœ๋ด‡์ด "์ด๊ฑด ํด๋ฆญํ•ด๋„ ๊ฐˆ ๊ณณ์ด ์—†๋Š” ๋งํฌ๋„ค"๋ผ๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.๋‚ด๋ถ€ ๋งํฌ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜์ง€ ๋ชปํ•˜๋ฉด ํŽ˜์ด์ง€ ๋žญํฌ ์ „๋‹ฌ, ์ƒ‰์ธ ๋“ฑ๋ก ๋“ฑ SEO ์ ์ˆ˜๊ฐ€ ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.์ฆ‰, a ํƒœ๊ทธ๋Š” ์‹ค์ œ๋กœ ์ด๋™ํ•  ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ..

Front/HTML 2025.07.06

[js] hide() / remove()

hide()๋Š” ํ™”๋ฉด์—์„œ๋งŒ ์ˆจ๊ธฐ๊ณ  DOM์—๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ๋Š” ๋ฐ˜๋ฉด,remove()๋Š” DOM ์ž์ฒด์—์„œ ์š”์†Œ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.๋ฉ”์„œ๋“œ ์„ค๋ช…hide()์š”์†Œ๋ฅผ display: none์œผ๋กœ ๋งŒ๋“ค์–ด ํ™”๋ฉด์—์„œ ์ˆจ๊น€. DOM์—๋Š” ์กด์žฌ.remove()์š”์†Œ๋ฅผ DOM ํŠธ๋ฆฌ์—์„œ ์™„์ „ํžˆ ์ œ๊ฑฐ. ์ดํ›„ .find()๋กœ๋„ ๋ชป ์ฐพ์Œ.detach()DOM์—์„œ ์ œ๊ฑฐํ•˜์ง€๋งŒ, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ/๋ฐ์ดํ„ฐ๋Š” ์œ ์ง€. ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ถ™์ผ ์ˆ˜ ์žˆ์Œ. โœ… ์–ธ์ œ remove๋ฅผ ์“ธ๊นŒ?ํผ์—์„œ ์•„์˜ˆ ํ•ด๋‹น ํ•ญ๋ชฉ์ด ํ•„์š” ์—†์„ ๋•Œ์„ฑ๋Šฅ์ƒ ํ•„์š” ์—†๋Š” ๋…ธ๋“œ๋ฅผ ์ค„์ด๊ณ  ์‹ถ์„ ๋•Œ์‚ฌ์šฉ์ž์—๊ฒŒ ํ˜ผ๋ž€์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋น„ํ™œ์„ฑํ™” ํ•„๋“œ ์ž์ฒด๋ฅผ ์•ˆ ๋ณด์—ฌ์ค„ ๋•Œํ•„์š”์— ๋”ฐ๋ผ hide() vs remove() ์„ ํƒํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.remove()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ดํ›„ ํ•ด๋‹น ์š”์†Œ๋Š” ๋‹ค์‹œ show()๋กœ ๋ณต๊ตฌํ•  ์ˆ˜..

Front/JS & jQuery 2025.07.05

[DB][Oracle] LISTAGG(DISTINCT ...)

https://imswengineer.tistory.com/1301 [DB][Oracle] LISTAGGLISTAGG๋Š” Oracle DB๋ฅผ ํฌํ•จํ•œ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์—ฌ๋Ÿฌ ํ–‰์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์ง‘๊ณ„(Aggregation) ํ•  ๋•Œ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.์ฃผ๋กœ ๊ทธ๋ฃนํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์—ฐ๊ฒฐํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.๐Ÿ“Œ ๊ธฐ๋ณธ ๋ฌธimswengineer.tistory.com ์ค‘๋ณต ์ œ๊ฑฐ: ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค‘๋ณต ์ œ๊ฑฐ๋Š” ์•ˆ ๋จ → DISTINCT ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ์œผ๋กœ ์ž‘์„ฑํ•˜์˜€๋Š”๋ฐ โœ… ์˜ค๋ผํด 21c ์ด์ƒ์ผ ๊ฒฝ์šฐ LISTAGG(DISTINCT ...)๋„ ๊ฐ€๋Šฅ์˜ค๋ผํด 21c ์ด์ƒ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์ด ๊ณต์‹ ์ง€์›๋ฉ๋‹ˆ๋‹ค:LISTAGG(DISTINCT CI.EXHL_CD, ', ') WITHIN GROUP (ORDER BY ..

DB 2025.07.04

[CSS] pointer-events

pointer-events๋Š” CSS ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋กœ, ๋งˆ์šฐ์Šค ํด๋ฆญ์ด๋‚˜ ํ„ฐ์น˜ ๊ฐ™์€ "ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ"๋ฅผ ํ•ด๋‹น ์š”์†Œ์— ์ „๋‹ฌํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.๐Ÿ” ์‰ฝ๊ฒŒ ๋งํ•ด:pointer-events: none;์„ ์ฃผ๋ฉด,ํ•ด๋‹น ์š”์†Œ๋Š” ํด๋ฆญ๋˜์ง€ ์•Š์œผ๋ฉฐ, hover, active ๋“ฑ๋„ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.๐Ÿงช ์˜ˆ์‹œํด๋ฆญ ์•ˆ ๋จํด๋ฆญ ๋จ none → ํด๋ฆญํ•ด๋„ ์•„๋ฌด ์ผ๋„ ์•ˆ ์ƒ๊น€auto → ๊ธฐ๋ณธ ๋™์ž‘ (ํด๋ฆญ ๊ฐ€๋Šฅ) ์ด ๋ฒ„ํŠผ๋„ ํด๋ฆญ ์•ˆ๋จ ๋ถ€๋ชจ์ธ ์— pointer-events: none์„ ์ค˜๋„, ์ž์‹์ธ ๋ฒ„ํŠผ๋„ ํด๋ฆญ ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ’์„ค๋ช…auto๊ธฐ๋ณธ๊ฐ’, ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ ์ •์ƒ ์ฒ˜๋ฆฌnoneํฌ์ธํ„ฐ ์ด๋ฒคํŠธ ๋ฌด์‹œ (ํด๋ฆญ, hover ๋ชจ๋‘ ๋ฌด์‹œ)inherit๋ถ€๋ชจ ์š”์†Œ์˜ ๊ฐ’์„ ์ƒ์†

Front/CSS 2025.07.03
728x90
๋ฐ˜์‘ํ˜•