728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1376

[jQuery] $.getScript

$.getScript()๋Š” jQuery์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ์™ธ๋ถ€ JavaScript ํŒŒ์ผ์„ ๋™์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์™€์„œ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•ด.์•„์ฃผ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•ด์ค„๊ฒŒ!โœ… 1. $.getScript() ๊ธฐ๋ณธ ๊ฐœ๋…๐Ÿ“Œ ์™ธ๋ถ€ JS ํŒŒ์ผ์„ “AJAX ์š”์ฒญ์ฒ˜๋Ÿผ ๋‹ค์šด๋กœ๋“œํ•ด์„œ ์‹คํ–‰”HTML์— ๋„ฃ๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ํšจ๊ณผ.๐Ÿ“˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• $.getScript("๊ฒฝ๋กœ/ํŒŒ์ผ๋ช….js");์ด๋ ‡๊ฒŒ๋งŒ ์จ๋„ ํ•ด๋‹น JS ํŒŒ์ผ์ด ๋‹ค์šด๋กœ๋“œ๋˜๊ณ , ์ฆ‰์‹œ ์‹คํ–‰๋ผ.โœ… 2. ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ $.getScript("/js/src/partnerKeyman.js");์ด๋Ÿฌ๋ฉด /js/src/partnerKeyman.js ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€์„œ ์‹คํ–‰ํ•จ.โœ… 3. ์ฝœ๋ฐฑ ์ถ”๊ฐ€ ๊ฐ€๋ŠฅํŒŒ์ผ ๋กœ๋”ฉ ํ›„ ํ•ด์•ผ ํ•  ์ž‘์—…์ด ์žˆ์„ ๋•Œ:$.getScript("/js/src/myFile.js", fun..

Front/JS & jQuery 2025.11.05

[js] window.hasOwnProperty

โœ… 1. window๋Š” “๋ธŒ๋ผ์šฐ์ € ์ „์ฒด ์ „์—ญ ๊ฐ์ฒด”๋ธŒ๋ผ์šฐ์ €์—์„œ ์ „์—ญ ๋ณ€์ˆ˜๋‚˜ ์ „์—ญ ํ•จ์ˆ˜๋Š” ์ „๋ถ€ window ์•ˆ์— ์ €์žฅ๋จ.์˜ˆ) var a = 10; ์ด๊ฑด ์‚ฌ์‹ค: window.a = 10; ๊ณผ ๊ฐ™์•„.โœ… 2. hasOwnProperty()๋Š” “์ง์ ‘ ๊ฐ€์ง„ ์†์„ฑ์ด๋ƒ?” ํ™•์ธ์˜ˆ์‹œ: window.hasOwnProperty("a") // truewindow.hasOwnProperty("b") // false์ฆ‰,window ์•ˆ์— a๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ.โœ” ์‰ฝ๊ฒŒ ๋น„์œ ํ•ด๋ณด์ž๐Ÿ  window = ์šฐ๋ฆฌ ์ง‘๐Ÿ“ฆ ์†์„ฑ(property) = ์ง‘ ์•ˆ ๋ฌผ๊ฑด๐Ÿ” hasOwnProperty(“๋ฌผ๊ฑด”) = ๊ทธ ๋ฌผ๊ฑด์ด ์ง‘ ์•ˆ์— ์žˆ๋‚˜ ํ™•์ธ if (!window.hasOwnProperty("lodingAccountJsCheck..

Front/JS & jQuery 2025.11.04

[Error][JAVA][MyBatis] Cannot read the array length because "<local2>" is null

์ด ๋กœ๊ทธ๋ฅผ ๋ณด๋ฉด MyBatis๋‚˜ Java ์ฝ”๋“œ ์‹คํ–‰ ์ค‘ Cannot read the array length because "" is null ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ”๋“œ์—์„œ ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ๋ ค ํ•˜๋Š”๋ฐ, ์ฐธ์กฐ๊ฐ€ null์ด๋ผ ๊ธธ์ด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ์›์ธ๋ผ๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜๊ฐ€ null ์ƒํƒœ์ธ๋ฐ length ๋˜๋Š” size()๋ฅผ ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ–ˆ์Œ.ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” ์ผ€์ด์Šค:์ปจํŠธ๋กค๋Ÿฌ์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋œ ๋ฐฐ์—ด/๋ฆฌ์ŠคํŠธ๊ฐ€ null.์„œ๋น„์Šค/DAO์—์„œ ๋ฐ˜ํ™˜ํ•œ ๊ฒฐ๊ณผ๊ฐ€ null์ธ๋ฐ, ์ฝ”๋“œ์—์„œ ๋ฐ”๋กœ .length ๋˜๋Š” .size() ์ ‘๊ทผ.JSON ๋ฐ”์ธ๋”ฉ์—์„œ ๋ฐฐ์—ด์ด ๋ˆ„๋ฝ๋˜์–ด null๋กœ ๋“ค์–ด์˜ด.

Error 2025.10.30

[JAVA] ์‚ฌ์—…์ž๋ฒˆํ˜ธ ํฌ๋งทํŒ…

public class BizNumberFormatter { public static String formatBizNumber(String bizNumber) { if (bizNumber == null || bizNumber.length() != 10 || !bizNumber.matches("\\d{10}")) { throw new IllegalArgumentException("10์ž๋ฆฌ ์ˆซ์ž๋งŒ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค."); } // 3-2-5 ํ˜•ํƒœ๋กœ ํฌ๋งท String part1 = bizNumber.substring(0, 3); String part2 = bizNumber.substring(3, 5); Strin..

JAVA 2025.10.29

[DB][MySQL] JSON_OVERLAPS()

โœ… JSON_OVERLAPS() — JSON ๋ฐฐ์—ด๋ผ๋ฆฌ ๊ฒน์น˜๋Š” ๊ฐ’์ด ์žˆ๋Š”์ง€ ๋น„๊ต๐Ÿ“Œ ์šฉ๋„JSON ๋ฐฐ์—ด๋ผ๋ฆฌ ๊ณตํ†ต๋˜๋Š” ์š”์†Œ๊ฐ€ ์žˆ์œผ๋ฉด TRUE๊ฒน์น˜๋Š” ๊ฐ’์ด ํ•˜๋‚˜๋„ ์—†์œผ๋ฉด FALSE.์˜ˆ)์ œํ’ˆ ํƒœ๊ทธ id = [1,3]๊ฒ€์ƒ‰ ์กฐ๊ฑด ํƒœ๊ทธ id = [3,5]→ 3์ด ๊ฒน์น˜๋ฏ€๋กœ ๋งค์นญ๋จ.๐Ÿ“Œ ์˜ˆ์ œ ํ…Œ์ด๋ธ”product(product_id, tags)-- tags → {"items":[{"id":"1"},{"id":"3"}]}๐Ÿ“Œ JSON_OVERLAPS ์‚ฌ์šฉ ์˜ˆSELECT *FROM product pWHERE JSON_OVERLAPS( JSON_EXTRACT(p.tags, '$.items[*].id'), JSON_ARRAY('3', '5') );๐Ÿ‘‰ ๋™์ž‘ ์›๋ฆฌJSON_EXTRACT(p.tags, ..

Front/JS & jQuery 2025.10.28

[DB][MySQL] JSON_TABLE - GROUP_CONCAT()

โœ… 2. GROUP_CONCAT() — ์—ฌ๋Ÿฌ ํ–‰์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์นจ๐Ÿ“Œ ์šฉ๋„์—ฌ๋Ÿฌ row์˜ ๊ฐ’์„"A, B, C" ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์น˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ.๐Ÿ“Œ ์˜ˆ์‹œ์œ„์—์„œ JSON_TABLE๋กœ ํŽผ์นœ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋ฉด?SELECT p.product_id, GROUP_CONCAT(jt.name ORDER BY jt.id SEPARATOR ', ') AS tag_namesFROM product pCROSS JOIN JSON_TABLE( p.tags, '$.items[*]' COLUMNS ( id VARCHAR(10) PATH '$.id', name VARCHAR(100) PATH '$.name' )) AS jtGROUP BY p.product..

DB 2025.10.27

[DB][MySQL] JSON_TABLE()

โœ… 1. JSON_TABLE() — JSON ๋ฐฐ์—ด์„ ํ–‰(row)์œผ๋กœ ํŽผ์น˜๋Š” ํ•จ์ˆ˜๐Ÿ“Œ ์šฉ๋„ํ…Œ์ด๋ธ” ์•ˆ์— JSON ํ˜•์‹์œผ๋กœ ๋“ค์–ด ์žˆ๋Š” ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ๋ฅผ์ •๊ทœ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ํ–‰ ๋‹จ์œ„๋กœ ๊บผ๋‚ด ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜.๐Ÿ“Œ ์˜ˆ์ œ ํ…Œ์ด๋ธ”product ( product_id INT, tags JSON -- ์˜ˆ: {"items":[{"id":"1","name":"์ „์ž"},{"id":"3","name":"๊ฐ€์ „"}]})๐Ÿ“Œ JSON_TABLE ์‚ฌ์šฉ ์˜ˆSELECT p.product_id, jt.id AS tag_id, jt.name AS tag_nameFROM product pCROSS JOIN JSON_TABLE( p.tags, '$.items[*]' COLUMNS ( i..

DB 2025.10.26

[DB][MyBatis][MySQL] MyBatis + MySQL์—์„œ ์‹ค์ œ๋กœ ๊ฐ€๋Šฅํ•œ resultSetType

๐Ÿ’ก ์ค‘์š”MySQL JDBC ๋“œ๋ผ์ด๋ฒ„(mysql-connector-j)์—์„œ๋Š” ์‚ฌ์‹ค์ƒ FORWARD_ONLY๋งŒ ์™„์ „ ์ง€์›๋ฉ๋‹ˆ๋‹ค.resultSetTypeMySQL ์‹ค์ œ ์ง€์› ์—ฌ๋ถ€FORWARD_ONLYโœ… ์ •์ƒ ์ง€์›SCROLL_INSENSITIVEโŒ ๋‚ด๋ถ€์ ์œผ๋กœ FORWARD_ONLY๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋จSCROLL_SENSITIVEโŒ ์ง€์› ์•ˆ ๋จ → ๊ฒฐ๊ตญ FORWARD_ONLY๊ฐ€ ๋จโžก MyBatis XML์—์„œ SCROLL_INSENSITIVE๋ผ๊ณ  ์จ๋„ ๊ทธ๋Œ€๋กœ FORWARD_ONLY๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.โœ” 2. ์‹ค๋ฌด์—์„œ ์–ด๋–ค ํƒ€์ž…์„ ์จ์•ผ ํ•˜๋‚˜?โญ ๊ฒฐ๋ก : MySQL + MyBatis์—์„œ๋Š” ๊ทธ๋ƒฅ FORWARD_ONLY ์“ฐ๋Š” ๊ฒŒ ์ •๋‹ต์ž…๋‹ˆ๋‹ค.์–ด์ฐจํ”ผ MySQL์ด SCROLL_* ์ง€์›์„ ์•ˆ ํ•จ๊ฐ€์žฅ ๋น ๋ฅด๊ณ , ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์žฅ ์ ๊ฒŒ ์“ฐ๊ณ , ์•ˆ์ •..

DB 2025.10.22

[DB][MyBatis] resultSetType ๋น„๊ต ๊ทธ๋ฆผ

๐Ÿ” ResultSet Type ๋น„๊ต ๊ทธ๋ฆผ1๏ธโƒฃ FORWARD_ONLYโžก๏ธโžก๏ธโžก๏ธ ์•ž์œผ๋กœ๋งŒ ์ด๋™ ๊ฐ€๋Šฅ[ row1 ] → [ row2 ] → [ row3 ] → [ row4 ] ↑ ์‹œ์ž‘์  (๋’ค๋กœ ์ด๋™ ๋ถˆ๊ฐ€)์ปค์„œ๋Š” ์˜ค์ง ํ•œ ๋ฐฉํ–ฅ, ์•ž์œผ๋กœ๋งŒ ์ด๋™๋’ค๋กœ ์ด๋™ โŒํŠน์ • row๋กœ ์ ํ”„ โŒ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ ์•„์ฃผ ๋งŽ์€ ๋ฐ์ดํ„ฐ ์กฐํšŒํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ (๊ธฐ๋ณธ๊ฐ’)2๏ธโƒฃ SCROLL_INSENSITIVEโฌ…๏ธโžก๏ธ ์•ž๋’ค ์ž์œ  ์ด๋™ ๊ฐ€๋Šฅ[ row1 ] ↔ [ row2 ] ↔ [ row3 ] ↔ [ row4 ] ์ปค์„œ๋ฅผ ์•ž๋’ค๋กœ ์ž์œ ๋กญ๊ฒŒ ์›€์ง์ผ ์ˆ˜ ์žˆ์ŒํŠน์ • row๋กœ ์ ํ”„ ๊ฐ€๋Šฅ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ฐ˜์˜๋˜์ง€ ์•Š์Œ(์กฐํšŒ ํ›„ DB ๊ฐ’์ด ๋ฐ”๋€Œ์–ด๋„ ResultSet์—๋Š” ๋ฐ˜์˜ ์•ˆ ๋จ)3๏ธโƒฃ SCROLL_SENSITIVEโฌ…๏ธโžก๏ธ ๐Ÿ”„ ์‹ค์‹œ๊ฐ„..

DB 2025.10.21

[DB][MyBatis] resultSetType

1. ๊ธฐ๋ณธ ์˜๋ฏธresultSetType ์†์„ฑ์€ MyBatis๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ JDBC ResultSet์„ ์ƒ์„ฑํ•  ๋•Œ ์ปค์„œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ด๋™์‹œํ‚ฌ์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.FORWARD_ONLY์ปค์„œ๋ฅผ ์•ž์œผ๋กœ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Œ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ, ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ๋น ๋ฆ„์ด์ „ ํ–‰์œผ๋กœ ๋Œ์•„๊ฐ€๊ฑฐ๋‚˜ ๋žœ๋ค ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํฐ ๋ฐ์ดํ„ฐ์…‹ ์กฐํšŒ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋‹ด์ด ์ ์ŒSCROLL_INSENSITIVE์ปค์„œ๋ฅผ ์•ž๋’ค๋กœ ์ด๋™ ๊ฐ€๋ŠฅResultSet์ด ๋ณ€๊ฒฝ๋˜์–ด๋„ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ๋Œ€ํ˜• ๋ฐ์ดํ„ฐ์…‹์—์„œ๋Š” ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์ŒSCROLL_SENSITIVE์ปค์„œ๋ฅผ ์•ž๋’ค๋กœ ์ด๋™ ๊ฐ€๋ŠฅDB์—์„œ ResultSet์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ฐ”๋กœ ๋ฐ˜์˜๋จ์—…๋ฐ์ดํŠธ ์‹ค์‹œ๊ฐ„ ๋ฐ˜์˜์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ2. ์–ธ์ œ ์“ฐ๋Š”๊ฐ€?๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๊ณ , ๋‹จ์ˆœํžˆ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ฝ์–ด์˜ค๋Š” ๊ฒฝ์šฐ → FORWARD_ONLY ์‚ฌ์šฉํŠน์ • ํ–‰์œผ๋กœ ๋Œ์•„๊ฐ€์„œ..

DB 2025.10.20
728x90
๋ฐ˜์‘ํ˜•