728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1364

[DB][Oracle] LISTAGG

LISTAGG๋Š” Oracle DB๋ฅผ ํฌํ•จํ•œ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์—ฌ๋Ÿฌ ํ–‰์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์ง‘๊ณ„(Aggregation) ํ•  ๋•Œ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.์ฃผ๋กœ ๊ทธ๋ฃนํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์—ฐ๊ฒฐํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.๐Ÿ“Œ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•LISTAGG(column_name, 'delimiter') WITHIN GROUP (ORDER BY column_name) column_name: ์—ฐ๊ฒฐํ•  ์—ด ์ด๋ฆ„'delimiter': ๊ฐ ๊ฐ’ ์‚ฌ์ด์— ๋„ฃ์„ ๊ตฌ๋ถ„์ž (์˜ˆ: ',', ' | ', ๋“ฑ)WITHIN GROUP (ORDER BY ...): ์—ฐ๊ฒฐํ•  ๊ฐ’๋“ค์˜ ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ์ง€์ •๐Ÿ“Œ ์˜ˆ์‹œ์˜ˆ์ œ ํ…Œ์ด๋ธ”: STUDENT_COURSESTUDENT_IDCOURSE_NAME1001Math1001Science1001History โ–ถ LISTAGG ์‚ฌ์šฉS..

DB 2025.05.15

[js] ๋ฌธ์ž์—ด ์ถ”์ถœ split/ slice

slice์™€ split์€ ๋ชจ๋‘ ๋ฌธ์ž์—ด์—์„œ ๋ถ€๋ถ„ ๊ฐ’์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ์‚ฌ์šฉ ๋ชฉ์ ๊ณผ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์„ ํƒ์ด ๋‹ฌ๋ผ์ง. โœ… ์š”์•ฝ ๋น„๊ตํ•ญ๋ชฉslicesplit๋ชฉ์ ์œ„์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ถ”์ถœ๊ตฌ๋ถ„์ž ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฌธ์ž์—ด ๋ถ„๋ฆฌ๋ฐ˜ํ™˜๊ฐ’๋ฌธ์ž์—ด (String)๋ฐฐ์—ด (Array)์„ฑ๋Šฅ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋น ๋ฆ„๊ตฌ๋ถ„์ž๊ฐ€ ๋งŽ์œผ๋ฉด ๋А๋ฆด ์ˆ˜ ์žˆ์Œ์œ ์šฉํ•œ ๊ฒฝ์šฐ์‹œ์ž‘/๋ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ์„ ๋•ŒํŠน์ • ๋ฌธ์ž/๋ฌธ์ž์—ด๋กœ ๋‚˜๋ˆŒ ๋•Œ (์˜ˆ: CSV ๋“ฑ) ๐Ÿ” ์˜ˆ์ œ ๋น„๊ต: mrStm = "mrStm"์ผ ๋•Œ1. split ์‚ฌ์šฉlet mrStm = "mrStm"; let mrS = mrStm.split("Tm")[0]; // "mrS"์žฅ์ : "Tm"์ด๋ผ๋Š” ๊ตฌ๋ถ„์ž ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์„œ ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž์—ด์—๋„ ์ ํ•ฉ๋‹จ์ : ๊ตฌ๋ถ„์ž๊ฐ€ ์—†์œผ๋ฉด ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•„์š” 2. slice ์‚ฌ์šฉlet ..

Front/JS & jQuery 2025.05.14

[js] dropzone chunking, forceChunking

โœ… chunking: true์„ค๋ช…: ์—…๋กœ๋“œํ•  ํŒŒ์ผ์„ **์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๋ธ”๋ก(์ฒญํฌ)**์œผ๋กœ ๋‚˜๋ˆ„์–ด ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๊ฒ ๋‹ค๋Š” ์„ค์ •์ž…๋‹ˆ๋‹ค.์šฉ๋„: ํฐ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ๋•Œ ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ์— ๋ณด๋‚ด์ง€ ์•Š๊ณ  ์ผ์ • ํฌ๊ธฐ(๊ธฐ๋ณธ 2MB, chunkSize๋กœ ์กฐ์ ˆ ๊ฐ€๋Šฅ)๋กœ ๋‚˜๋ˆ ์„œ ๋ณด๋ƒ…๋‹ˆ๋‹ค.์žฅ์ :๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์‹คํŒจํ•œ ์ฒญํฌ๋งŒ ์žฌ์ „์†ก ๊ฐ€๋Šฅ.๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์—…๋กœ๋“œ ์•ˆ์ •์„ฑ ํ–ฅ์ƒ.โœ… forceChunking: true์„ค๋ช…: ํŒŒ์ผ ํฌ๊ธฐ์™€ ๊ด€๊ณ„์—†์ด ๋ฌด์กฐ๊ฑด ์ฒญํฌ ๋ฐฉ์‹์œผ๋กœ ์—…๋กœ๋“œํ•˜๊ฒŒ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.๊ธฐ๋ณธ ๋™์ž‘๊ณผ ์ฐจ์ด: chunking: true๋งŒ ์„ค์ •ํ–ˆ์„ ๊ฒฝ์šฐ, Dropzone์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์ •๋œ chunkSize๋ณด๋‹ค ์ž‘์€ ํŒŒ์ผ์€ ํ•œ ๋ฒˆ์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ forceChunking: true๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์€ ํŒŒ์ผ์ด๋ผ๋„ ์ฒญํฌ๋กœ ์ชผ๊ฐœ์„œ ์ „..

Front/JS & jQuery 2025.05.13

[jQuery] ๋ชจ๋‹ฌ ์ค‘๋ณต ์—ด๋ฆผ ๋ฐฉ์ง€

โœ… ๋ฐฉ๋ฒ• 1: ํ”Œ๋ž˜๊ทธ ๋ณ€์ˆ˜ ์‚ฌ์šฉlet isModalOpen = false;$("#createReport").on('click', () => { if (isModalOpen) return; isModalOpen = true; const modal = new TaskReportCreateModal(); modal.popup(); $(modal).one('save-complete', () => { isModalOpen = false; location.reload(); }); // ๋ชจ๋‹ฌ์ด ๋‹ซํž ๋•Œ ํ”Œ๋ž˜๊ทธ ์ดˆ๊ธฐํ™” (ํ•„์š”ํ•œ ๊ฒฝ์šฐ) $(modal).one('hidden', () => { isModalOpen = false; });}..

Front/JS & jQuery 2025.05.12

[intelliJ] Diff ํ™”๋ฉด์—์„œ ์œ ์šฉํ•œ ๋‹จ์ถ•ํ‚ค

โœ… Diff ํ™”๋ฉด์—์„œ ์œ ์šฉํ•œ ๋‹จ์ถ•ํ‚ค ์ •๋ฆฌ๋™์ž‘Windows/LinuxmacOS์„ค๋ช…๐Ÿ” Diff ๋ณด๊ธฐCtrl + DCmd + D์„ ํƒํ•œ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋น„๊ต (ํ˜„์žฌ vs ์ด์ „ ์ปค๋ฐ‹ ๋“ฑ)↔๏ธ ๋ณ€๊ฒฝ ์ ์šฉ (์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ)Alt + ← / Alt + →Alt + ← / Alt + →์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ํ˜„์žฌ ํŒŒ์ผ์— ์ ์šฉโฌ†๏ธโฌ‡๏ธ ์ด์ „/๋‹ค์Œ ๋ณ€๊ฒฝ ๋ธ”๋กF7 / Shift + F7F7 / Shift + F7๋ณ€๊ฒฝ๋œ ๋ธ”๋ก ๊ฐ„ ์ด๋™๐Ÿ“‚ ๋ฒ„์ „ ๋น„๊ต ์—ด๊ธฐCtrl + Shift + A → "Compare with..."Cmd + Shift + A → "Compare with..."์›ํ•˜๋Š” ๋ธŒ๋žœ์น˜/์ปค๋ฐ‹๊ณผ ๋น„๊ต

IT์ง€์‹ 2025.05.11

[JAVA] Stream๋ณด๋‹ค forEach๊ฐ€ ๋” ๋‚˜์€ ๊ฒฝ์šฐ

๐Ÿง  ์™œ Stream๋ณด๋‹ค forEach๊ฐ€ ๋” ๋‚˜์€๊ฐ€?Stream์€ ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต → ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์— ์ ํ•ฉ๋ณต์žกํ•œ ์กฐ๊ฑด ๋ถ„๊ธฐ(switch)์™€ ๋ถ€์ž‘์šฉ์ด ์žˆ๋Š” set ํ˜ธ์ถœ์€ **๋ช…ํ™•ํ•œ ์ˆœ์ฐจ์  ์ฒ˜๋ฆฌ(for, forEach)**๊ฐ€ ๋” ์ฝ๊ธฐ ์‰ฝ๊ณ  ๋””๋ฒ„๊น…๋„ ์‰ฌ์›€

JAVA 2025.05.10

[JAVA] ๋žŒ๋‹ค์‹ ํ‘œํ˜„์„ ๋ฉ”์„œ๋“œ ์ฐธ์กฐ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ + ์žฅ์ 

โœ… 1. ๋ฉ”์„œ๋“œ ์ฐธ์กฐ๋กœ ๋ณ€ํ™˜ ์˜ˆ์ œ ์œ ํ˜•๋žŒ๋‹ค์‹๋ฉ”์„œ๋“œ ์ฐธ์กฐ์„ค๋ช…์ •์  ๋ฉ”์„œ๋“œ ์ฐธ์กฐx -> Math.abs(x)Math::absํด๋ž˜์Šค์˜ static ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ (ํŠน์ • ๊ฐ์ฒด)s -> s.toLowerCase()String::toLowerCase์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ์ฐธ์กฐ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ (์ž„์˜ ๊ฐ์ฒด)x -> x.equals("A")"A"::equalsํŠน์ • ๊ฐ’์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐ์ƒ์„ฑ์ž ์ฐธ์กฐ() -> new ArrayList()ArrayList::new์ƒ์„ฑ์ž๋ฅผ ์ฐธ์กฐ๋ฐฐ์—ด ์ƒ์„ฑ์žsize -> new int[size]int[]::new๋ฐฐ์—ด ์ƒ์„ฑ์ž ์ฐธ์กฐโœ… ์˜ˆ์ œ ์ฝ”๋“œ๐Ÿ“Œ ์˜ˆ์ œ 1: forEach์—์„œ ์ถœ๋ ฅ// ๋žŒ๋‹ค์‹list.forEach(item -> System.out.println(item));// ๋ฉ”์„œ๋“œ ์ฐธ์กฐlist...

JAVA 2025.05.09

[JAVA] ํŠน์ • ๊ฐ’ ๋ฐฐ์—ด์— ํฌํ•จ๋˜๋Š”์ง€๋ฅผ ์ฒดํฌ (JAVA8 ์ดํ›„)

if (Stream.of("1", "2", "6", "7", "10").anyMatch(code -> code.equals(crchTp))) { contractMngService.updateCrItems();}์ด ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:Stream.of(...)๋กœ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐ’์„ ์ฒ˜๋ฆฌ ๊ฐ€๋ŠฅanyMatch(...)๋กœ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š”์ง€ ์ฒดํฌ ๊ฐ€๋Šฅ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์— ์ ํ•ฉ๋‹จ, ์ด ๋ฐฉ์‹์€ Arrays.asList(...).contains(...)์— ๋น„ํ•ด ์„ฑ๋Šฅ ์ฐจ์ด๋Š” ๊ฑฐ์˜ ์—†์œผ๋ฉฐ, ์ฝ”๋“œ ์Šคํƒ€์ผ์˜ ์„ ํ˜ธ์— ๋”ฐ๋ผ ์„ ํƒ. [๋ฉ”์„œ๋“œ ์ฐธ์กฐ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ]if (Stream.of("1", "2", "6", "7", "10").anyMatch(crchTp::equals)..

JAVA 2025.05.08

[JAVA] ํŠน์ • ๊ฐ’ ๋ฐฐ์—ด์— ํฌํ•จ๋˜๋Š”์ง€๋ฅผ ์ฒดํฌ (JAVA8 ์ด์ „)

if (Arrays.asList("1", "2", "6", "7", "10").contains(crchTp)) { switch (crchTp) { case "1": case "2": case "6": case "7": case "10": contractMngService.updateCrItems(); break; }} ํŠน์ • ๊ฐ’ ๋ฐฐ์—ด์— ํฌํ•จ๋˜๋Š”์ง€๋ฅผ ์ฒดํฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด,Java์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Arrays.asList()์™€ contains()๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€์žฅ ๊น”๋”ํ•ฉ๋‹ˆ๋‹ค.

JAVA 2025.05.07

[Error][DB] SQL Error [08S01]: Communications link failure

์ด ์˜ค๋ฅ˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ๋ถ„์„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค:๐Ÿ” ์˜ค๋ฅ˜ ์š”์•ฝ์˜ค๋ฅ˜ ์ฝ”๋“œ: 08S01 (ํ†ต์‹  ๋งํฌ ์‹คํŒจ)์›์ธ: ๋งˆ์ง€๋ง‰์œผ๋กœ ํŒจํ‚ท์„ ์ฃผ๊ณ ๋ฐ›์€ ์‹œ์ ์ด ์•ฝ 2์‹œ๊ฐ„ 44๋ถ„(= 9,873,514ms) ์ „์ž…๋‹ˆ๋‹ค.๊ฒฐ๋ก : DB ์—ฐ๊ฒฐ์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ์œ ์ง€๋˜๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ๋˜์—ˆ๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ๊ฐ€ ๋Š๊ฒผ์Šต๋‹ˆ๋‹ค.๐Ÿ›  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•1. Connection Pool ์„ค์ • ํ™•์ธ์—ฐ๊ฒฐ์„ ์˜ค๋žœ ์‹œ๊ฐ„ ์œ ์ง€ํ•˜๋ฉด MySQL ์„œ๋ฒ„๋Š” ๋น„ํ™œ์„ฑ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‹ค์Œ ์„ค์ •๋“ค์„ ์ ๊ฒ€ํ•˜์„ธ์š”:โœ… JDBC (์˜ˆ: HikariCP ์‚ฌ์šฉ ์‹œ)spring.datasource.hikari.max-lifetime=1800000 # 30๋ถ„spring.datasource.hikari.idle-timeout=6..

Error 2025.05.04
728x90
๋ฐ˜์‘ํ˜•