728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1319

[HTML] ์•ŒํŒŒ๋ฒณ(ํŠนํžˆ ๋„์–ด์“ฐ๊ธฐ ์—†๋Š” ๊ธด ๋ฌธ์ž์—ด)์ด span์—์„œ๋Š” ์ž๋™ ์ค„๋ฐ”๊ฟˆ ๋˜๋Š” ์ด์œ 

์—์„œ๋Š” ์ค„๋ฐ”๊ฟˆ์ด ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๋Š” ์ด์œ  โœ… ํ•ต์‹ฌ ์ฐจ์ด: div vs span์š”์†Œ๊ธฐ๋ณธ display ์†์„ฑ์ค„๋ฐ”๊ฟˆ ๋ฐฉ์‹divblock์ค„๋ฐ”๊ฟˆ ๋ฐœ์ƒ (์ž์ฒด๊ฐ€ ํ•œ ์ค„ ์ฐจ์ง€)spaninline์ค„๋ฐ”๊ฟˆ ์•ˆ ๋จ, ํ•˜์ง€๋งŒ ํ…์ŠคํŠธ์ฒ˜๋Ÿผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ค„ ์•ˆ์—์„œ ๊ฐ๊น€

Front/HTML 2025.05.20

[DB][Oracle] ๋™์ ์œผ๋กœ ์ •๋ ฌ์ด ๋ฐ”๋€” ๋•Œ ํ–‰ ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ (ROWNUM, ROW_NUMBER())

โœ… ๋ฐฉ๋ฒ• 1: SQL์—์„œ ์—ฌ๋Ÿฌ ์ •๋ ฌ ๊ธฐ์ค€์„ ๋™์ ์œผ๋กœ ์„ค์ • (CASE WHEN ์‚ฌ์šฉ)SELECT ROW_NUMBER() OVER ( ORDER BY CASE WHEN :sort_col = 'emp_id' THEN emp_id END , CASE WHEN :sort_col = 'emp_name' THEN emp_name END , CASE WHEN :sort_col = 'salary' THEN salary END ) AS RN , emp_id , emp_name , salary FROM employees;:sort_col์€ ๋ฐ”์ธ๋”ฉ ๋ณ€์ˆ˜ (์˜ˆ: 'emp_id', 'emp_name', 'salary')์ •๋ ฌ ๊ธฐ์ค€์„ ๋ฐ”๊พธ๋ฉด ๊ทธ์— ๋”ฐ๋ผ..

DB 2025.05.19

[DB][Oracle] ROWNUM / ROW_NUMBER()

โœ… ROWNUM vs ROW_NUMBER() ์ฐจ์ด ์š”์•ฝํ•ญ๋ชฉROWNUMROW_NUMBER() (์œˆ๋„์šฐ ํ•จ์ˆ˜)Oracle ๋ฒ„์ „์˜ค๋ž˜๋œ ๋ฒ„์ „๋„ ์ง€์›10g ์ด์ƒ์ •๋ ฌ ๋ฐ˜์˜ ์—ฌ๋ถ€โŒ ์•ˆ๋จ (์ •๋ ฌ ์ „์— ์ ์šฉ๋จ)โœ… ๊ฐ€๋Šฅ (์ •๋ ฌ ๊ธฐ์ค€ ์ง€์ • ๊ฐ€๋Šฅ)ํŽ˜์ด์ง•์— ์ ํ•ฉํ•œ์ง€โŒ ๋ณต์žกํ•จโœ… ํŽ˜์ด์ง• ๊ตฌํ˜„์— ์ ํ•ฉ

DB 2025.05.18

[Error][SQL][MyBatis] org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "crCu1Tp")

org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "crCu1Tp") ์ด ์—๋Ÿฌ๋Š” MyBatis์˜ OGNL(Object-Graph Navigation Language) ํ‘œํ˜„์‹์„ ํ‰๊ฐ€ํ•˜๋Š” ์ค‘dldKeyMap์ด null์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์•„๋ž˜ ํ‘œํ˜„์‹์—์„œ: dldKeyMap ์ž์ฒด๊ฐ€ null์ด๋ผ์„œ .crCu1Tp๋ฅผ ํ‰๊ฐ€ํ•˜๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ OgnlException์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.๐Ÿ” ์›์ธ ์š”์•ฝdldKeyMap์ด null์ธ๋ฐ ๊ทธ ์•ˆ์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋ ค ํ•ด์„œ ์—๋Ÿฌ ๋ฐœ์ƒ.OGNL์—์„œ๋Š” ์ƒ์œ„ ๊ฐ์ฒด(dldKeyMap)๊ฐ€ null์ผ ๊ฒฝ์šฐ, ๊ทธ ํ•˜์œ„ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•1. dldKeyMap์˜ nul..

Error 2025.05.17

[DB] LISTAGG / STRING_AGG

โœ… 1. ๊ธฐ๋ณธ ๊ฐœ๋…ํ•ญ๋ชฉLISTAGG (Oracle)STRING_AGG (PostgreSQL, SQL Server)๋ชฉ์ ๋ฌธ์ž์—ด ์ง‘๊ณ„ (์—ฌ๋Ÿฌ ํ–‰ → ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด)๋™์ผ์ง€์› DBOraclePostgreSQL, SQL Server ๋“ฑ๊ธฐ๋ณธ ๊ตฌ๋ฌธLISTAGG(col, ', ') WITHIN GROUP (ORDER BY col)STRING_AGG(col, ', ')์ •๋ ฌWITHIN GROUP (ORDER BY col) ํ•„์š”ORDER BY col ์˜ต์…˜ ์ œ๊ณต (WITHIN GROUP ์•„๋‹˜)์ค‘๋ณต ์ œ๊ฑฐDISTINCT ์„œ๋ธŒ์ฟผ๋ฆฌ ํ•„์š”DISTINCT ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (PostgreSQL 13+) โœ… 2. ์˜ˆ์ œ ๋น„๊ต๐Ÿ“Œ Oracle (LISTAGG)SELECT DEPT_ID , LISTAGG(EMP_NAME, ', ') WIT..

DB 2025.05.16

[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
728x90
๋ฐ˜์‘ํ˜•