728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1388

[ERROR] ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ Unauthorized ์‘๋‹ต

์ตœ๊ทผ ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์—์„œ HTTP → HTTPS ์ „ํ™˜ ๋˜๋Š” API ๊ฒฝ๋กœ ๋ณ€๊ฒฝ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ์ „์—๋Š” http://apis.data.go.kr/... ์‚ฌ์šฉ ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ์ง€๊ธˆ์€ https://apis.data.go.kr/... ๋กœ ํ˜ธ์ถœํ•ด์•ผ Unauthorized๊ฐ€ ์•ˆ ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Error 2026.01.05

[JAVA] Text Block

โœ… Java Text Block ์ด๋ž€?Java 15 ์ด์ƒ์—์„œ๋Š” ๊ธด ๋ฌธ์ž์—ด(ํŠนํžˆ JSON, HTML, SQL)์„ ํŽธํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์—ฌ๋Ÿฌ ์ค„์˜ ๋ฌธ์ž์—ด์„ ๊ทธ๋Œ€๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.String mockJson = """{ "name": "test", "value": 123}""";๐Ÿ“Œ ์™œ 3๊ฐœ์ธ๊ฐ€?"""(Triple Quotes) ๋กœ ์‹œ์ž‘ํ•˜๊ณ """ ๋กœ ๋๋‚˜๋ฉด๊ทธ ์•ˆ์˜ ๋ชจ๋“  ์ค„๋ฐ”๊ฟˆ, ๊ณต๋ฐฑ, ๊ธ€์ž๋ฅผ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.์ฆ‰, ํŽธํ•˜๊ฒŒ ์—ฌ๋Ÿฌ ์ค„์„ ๋„ฃ์œผ๋ ค๊ณ  3๊ฐœ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ ๊ธฐ์กด ๋ฐฉ์‹ (๋ถˆํŽธํ•œ ๋ฐฉ์‹)Java 14๊นŒ์ง€String mockJson = "{\n" +" \"name\": \"test\",\n" +" \"value\": 123\n" +"}";\n ์ค„๋ฐ”๊ฟˆ ๋„ฃ์–ด์•ผ ํ•จ+ ์ด..

JAVA 2025.11.27

[Error][MyBatis]Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.

๐Ÿ‘‰ XML ์„ ์–ธ๋ฌธ()์ด ํŒŒ์ผ ๋งจ ์ฒ˜์Œ์— ์žˆ์ง€ ์•Š์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.ํŒŒ์ผ ๋งจ ์•ž์— ๋ณด์ด์ง€ ์•Š๋Š” ๋ฌธ์ž(BOM / ๊ณต๋ฐฑ / ์ค„๋ฐ”๊ฟˆ) ์žˆ์Œ (๊ฐ€์žฅ ํ”ํ•จ)(๊ณต๋ฐฑ)MyBatis XML์€ ์ง„์งœ 1๋ฐ”์ดํŠธ๋„ ํ—ˆ์šฉ ์•ˆ ํ•จ.

Error 2025.11.26

[js] closest() ์ฃผ์˜์‚ฌํ•ญ

.closest()๋Š” “์œ„๋กœ๋งŒ” ํƒ์ƒ‰ํ•จclosest() → ๋ถ€๋ชจ ๋ฐฉํ–ฅ๋งŒ ํƒ์ƒ‰ํ˜•์ œ / ์ž์‹์€ ์ ˆ๋Œ€ ๋ชป ์ฐพ์Œโœ… ์ •๋‹ต ํŒจํ„ด (ํ˜•์ œ label ์ฐพ๊ธฐ)๊ฐ€์žฅ ์•ˆ์ „ํ•œ ๋ฐฉ์‹ โญ (form-group ๊ธฐ์ค€)$el.find('#actTxt') .closest('.form-group') .find('label.form-label') .addClass('mb10');$el.find('#planTxt') .closest('.form-group') .find('label.form-label') .addClass('mb10');

Front/JS & jQuery 2025.11.21

[jQuery] wrap() / wrapInner() / wrapAll()

wrap() / wrapInner() / wrapAll() ํ•œ๋ˆˆ ๋น„๊ต๋ฉ”์„œ๋“œ๊ฐ์‹ธ๋Š” ๋ฒ”์œ„๋ถ€๋ชจ ๊ฐœ์ˆ˜wrap()์„ ํƒํ•œ ์š”์†Œ ๊ฐ๊ฐ์š”์†Œ ์ˆ˜๋งŒํผwrapInner()์š”์†Œ์˜ ์ž์‹๋“ค๊ธฐ์กด ๋ถ€๋ชจ ์œ ์ง€wrapAll()์„ ํƒ๋œ ์š”์†Œ ์ „๋ถ€1๊ฐœ

Front/JS & jQuery 2025.11.20

[jQuery] wrapAll()

wrapAll() ํ•œ ์ค„ ์ •์˜์„ ํƒ๋œ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ “ํ•˜๋‚˜์˜ ๊ณตํ†ต ๋ถ€๋ชจ”๋กœ ํ•œ ๋ฒˆ์— ๊ฐ์‹ผ๋‹ค๐Ÿ‘‰ ์—ฌ๋Ÿฟ → ํ•˜๋‚˜์˜ ๋ถ€๋ชจ (n : 1) ์‹คํ–‰ ์ „ABC $('.item').wrapAll(''); ์‹คํ–‰ ํ›„ A B Cโœ” .item ๊ฐ๊ฐ์˜ ๋ถ€๋ชจ โŒโœ” ๊ณตํ†ต ๋ถ€๋ชจ .group ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ โญ•

Front/JS & jQuery 2025.11.19

[jQuery] wrapInner()

wrapInner() ํ•œ ์ค„ ์ •์˜์„ ํƒํ•œ ์š”์†Œ “์•ˆ์— ์žˆ๋Š” ์ž์‹๋“ค๋งŒ” ์ƒˆ๋กœ์šด ์š”์†Œ๋กœ ๊ฐ์‹ผ๋‹ค๐Ÿ‘‰ ๋ถ€๋ชจ๋Š” ๊ทธ๋Œ€๋กœ, ๋‚ด์šฉ๋งŒ ํฌ์žฅ ์‹คํ–‰ ์ „ ๋‚ด์šฉ1 ๋‚ด์šฉ2 $('#box').wrapInner(''); ์‹คํ–‰ ํ›„ ๋‚ด์šฉ1 ๋‚ด์šฉ2 โœ” #box๋Š” ๊ทธ๋Œ€๋กœโœ” ์ž์‹๋“ค๋งŒ .inner๋กœ ๊ฐ์‹ธ์ง

Front/JS & jQuery 2025.11.18

[js][datatables] clientSide

1๏ธโƒฃ clientSide: true๋ž€?๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ ,์ด๋ฏธ ๋ธŒ๋ผ์šฐ์ €์— ๋กœ๋”ฉ๋œ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ง€๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.์ฆ‰,๊ฒ€์ƒ‰์ •๋ ฌํŽ˜์ด์ง•์„ ๋ชจ๋‘ ํ”„๋ก ํŠธ(JS) ์—์„œ๋งŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.๐Ÿ‘‰ ์„œ๋ฒ„ API (func) ํ˜ธ์ถœ ์•ˆ ํ•จ 2๏ธโƒฃ ๋™์ž‘ ํ๋ฆ„ ๋น„๊ตโœ… clientSide: true (ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ) [์ดˆ๊ธฐ 1ํšŒ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ] ← (๋˜๋Š” ์•„์˜ˆ ์ •์  ๋ฐ์ดํ„ฐ) ↓๋ธŒ๋ผ์šฐ์ € ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ↓๊ฒ€์ƒ‰ / ์ •๋ ฌ / ํŽ˜์ด์ง• ↓JS์—์„œ๋งŒ ํ•„ํ„ฐ๋ง & ๋ Œ๋”๋งโœ” ์„œ๋ฒ„ ํŠธ๋ž˜ํ”ฝ ์—†์Œโœ” ๋น ๋ฆ„โŒ ๋ฐ์ดํ„ฐ ๋งŽ์œผ๋ฉด ๋А๋ ค์งโŒ ์ตœ์‹  ๋ฐ์ดํ„ฐ ๋ณด์žฅ ์–ด๋ ค์›€โŒ func ํ˜ธ์ถœ ์•ˆ ๋จโœ… clientSide: false (์„œ๋ฒ„ ์‚ฌ์ด๋“œ)๊ฒ€์ƒ‰ / ํŽ˜์ด์ง• / ์ •๋ ฌ ์ด๋ฒคํŠธ ↓func(API) ..

Front/JS & jQuery 2025.11.13
728x90
๋ฐ˜์‘ํ˜•