728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1332

[Error][js] Uncaught SyntaxError: Unexpected token '>'

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ "Uncaught SyntaxError: Unexpected token '>'"๋Š” JavaScript ํŒŒ์‹ฑ ๋‹จ๊ณ„์—์„œ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. HTML ์ฃผ์„ ์•ˆ์— ๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ํ˜น์€ ์ฃผ์„ ๋‚ด๋ถ€์—์„œ JS ์ฝ”๋“œ ์ฃผ์„() ์‚ฌ์šฉ ๋“ฑ์ž…๋‹ˆ๋‹ค. JS ์ฝ”๋“œ์—์„œ HTML ์ฃผ์„์œผ๋กœ ์ธ์‹ํ•˜๊ณ , ๊ทธ ๋’ค์˜ > ๋•Œ๋ฌธ์— SyntaxError ๋ฐœ์ƒ ๊ฐ€๋Šฅ.JavaScript์—์„œ๋Š” // ๋˜๋Š” /* ... */ ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Error 2025.08.11

[DB][Oracle] RAW ํƒ€์ž…

Oracle์—์„œ RAW ํƒ€์ž…์€ **"๊ฐ€๊ณตํ•˜์ง€ ์•Š์€(binary) ๋ฐ์ดํ„ฐ"**๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค.์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์ˆœ์ˆ˜ํ•œ ๋ฐ”์ดํŠธ(byte) ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฑฐ์˜ˆ์š”.๐Ÿ“Œ RAW ํƒ€์ž… ํŠน์ง•๋ฌธ์ž์—ด์ด ์•„๋‹˜ → ์ธ์ฝ”๋”ฉ ์•ˆ ๋œ ๋ฐ”์ดํŠธ ์‹œํ€€์Šค ์ €์žฅ๋ณดํ†ต ๊ธธ์ด๋Š” ์ตœ๋Œ€ 2000 ๋ฐ”์ดํŠธ (RAW(n) ์—์„œ n ≤ 2000)VARCHAR2 ์™€ ๋‹ฌ๋ฆฌ ๋ฌธ์ž์…‹/์ธ์ฝ”๋”ฉ ๋ณ€ํ™˜ ์—†์Œ์ถœ๋ ฅํ•˜๋ฉด ๋ณดํ†ต 16์ง„์ˆ˜(hex) ํ˜•ํƒœ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค๐Ÿ“Œ ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ CREATE TABLE raw_test ( id NUMBER, data RAW(16) -- 16๋ฐ”์ดํŠธ ์ €์žฅ ๊ฐ€๋Šฅ);INSERTINSERT INTO raw_test VALUES (1, HEXTORAW('7F45C210'));SELECT SELECT data..

DB 2025.08.06

[DB][Oracle] DBMS_LOB.SUBSTR

DBMS_LOB.SUBSTR ๋Š” Oracle์—์„œ LOB ํƒ€์ž…(CLOB, BLOB) ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜๋ผ์„œVARCHAR2 ๋‚˜ RAW ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์˜ˆ์š”.CLOB ์€ ๊ทธ๋Œ€๋กœ๋Š” ORDER BY ๋‚˜ GROUP BY ์— ๋ชป ์“ฐ๊ธฐ ๋•Œ๋ฌธ์—, ์ด ํ•จ์ˆ˜๋กœ ๋ฌธ์ž์—ด์„ ์ž˜๋ผ๋‚ด ๋ณ€ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ ๊ธฐ๋ณธ ๊ตฌ์กฐ DBMS_LOB.SUBSTR( lob_loc IN CLOB/BLOB, -- ์ž˜๋ผ๋‚ผ LOB ๋ฐ์ดํ„ฐ amount IN INTEGER, -- ์ž˜๋ผ๋‚ผ ๊ธธ์ด (๋ฌธ์ž ์ˆ˜ ๋˜๋Š” ๋ฐ”์ดํŠธ ์ˆ˜) offset IN INTEGER := 1 -- ์‹œ์ž‘ ์œ„์น˜ (1๋ถ€ํ„ฐ ์‹œ์ž‘)) RETURN VARCHAR2 | RAW;๐Ÿ“Œ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๋ช…lob_loc์ž˜๋ผ๋‚ผ ๋Œ€์ƒ LOB (์˜ˆ: CLOB ์ปฌ๋Ÿผ, BLOB ์ปฌ๋Ÿผ..

DB 2025.08.05

[ERROR][Oracle] java.sql.SQLSyntaxErrorException: ORA-00932: ์ผ๊ด€์„ฑ ์—†๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•: -์ด(๊ฐ€) ํ•„์š”ํ•˜์ง€๋งŒ CLOB์ž„

ORA-00932: ์ผ๊ด€์„ฑ ์—†๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•: -์ด(๊ฐ€) ํ•„์š”ํ•˜์ง€๋งŒ CLOB์ž„์ปฌ๋Ÿผ์ด CLOB ํƒ€์ž…์ด๋ผ์„œ ์ •๋ ฌ์„ ์ง์ ‘ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.(Oracle์€ CLOB ํƒ€์ž…์„ ORDER BY, GROUP BY ๋“ฑ์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด์š”.) ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•CLOB์„ VARCHAR๋กœ ์บ์ŠคํŒ…๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๊ฐ€ 4000์ž ์ดํ•˜๋ผ๋ฉด DBMS_LOB.SUBSTR ๋˜๋Š” CAST๋กœ ์ž˜๋ผ์„œ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์—ฌ๊ธฐ์„œ 4000์€ ์ž˜๋ผ๋‚ผ ๊ธธ์ด, 1์€ ์‹œ์ž‘ ์œ„์น˜์˜ˆ์š”. (VARCHAR2 ์ตœ๋Œ€ 4000์ž๊นŒ์ง€ ์ •๋ ฌ ๊ฐ€๋Šฅ) ORDER BY M.TENANT_CD, DBMS_LOB.SUBSTR(M.SP_MEMO, 4000, 1) ASC, M.INS_DT DESCSP_MEMO๋ฅผ ๋‹จ์ˆœ ์กฐํšŒ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉ์ •๋ ฌ์ด ๊ผญ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด, ๊ทธ๋ƒฅ ORDER BY์—์„œ ๋นผ์„ธ..

Error 2025.08.04

[jQuery] toggleClass()

toggleClass() ๋Š” jQuery์—์„œ ํด๋ž˜์Šค๋ฅผ ์ผœ๊ณ  ๋„๋Š” ์Šค์œ„์น˜ ์—ญํ• ์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ๋™์ž‘ ๋ฐฉ์‹์ง€์ •ํ•œ ํด๋ž˜์Šค๊ฐ€ ์—†์œผ๋ฉด → ์ถ”๊ฐ€์ง€์ •ํ•œ ํด๋ž˜์Šค๊ฐ€ ์žˆ์œผ๋ฉด → ์ œ๊ฑฐ์ฆ‰, ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ƒํƒœ๊ฐ€ ํ† ๊ธ€(ON ↔ OFF)๋ฉ๋‹ˆ๋‹ค. $(this).find("a.panel").toggleClass("active");์ด ์ฝ”๋“œ๋Š” this ์š”์†Œ ์•ˆ์—์„œ a.panel ์š”์†Œ๋ฅผ ์ฐพ์•„์„œ:ํ˜„์žฌ .active ํด๋ž˜์Šค๊ฐ€ ์žˆ์œผ๋ฉด → ์ œ๊ฑฐ์—†์œผ๋ฉด → ์ถ”๊ฐ€

Front/JS & jQuery 2025.08.01

[js] FullCalendar.js ํ‘œ์‹œ ๊ฐฏ์ˆ˜ ์ œํ•œ ( ๋”๋ณด๊ธฐ ๊ธฐ๋Šฅ )

, eventLimit: true // ๋” ๋ณด๊ธฐ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”, eventLimitClick: 'popover', // "๋” ๋ณด๊ธฐ" ํด๋ฆญ ์‹œ ํŒ์—…์„ ๋„์›Œ์„œ ๋‚˜๋จธ์ง€ ์ด๋ฒคํŠธ ํ‘œ์‹œ, views: { dayGridMonth: { eventLimit: 4 // ๋”๋ณด๊ธฐ ํฌํ•จํ•ด์„œ๋ผ 4๋กœ ์„ค์ • }}, eventPositioned: (info) => { if (info.view.viewSpec.type == 'dayGridMonth') { const moreLink = $(".fc-more-cell").find(".fc-more"); if (moreLink.length) { moreLink.each(function() { ..

Front/JS & jQuery 2025.07.31

[js] FullCalendar.js ์ฃผ๊ฐ„ ๋ทฐ์—์„œ ์‹œ๊ฐ„ ํ‘œ์‹œ ์—†์• ๊ธฐ

header: { left: 'title', center: '', right: 'dayGridMonth,dayGridWeek,dayGridDay today prev,next',} ์ฃผ๊ฐ„ ๋ทฐ์—์„œ ์‹œ๊ฐ„์„ ์ œ์™ธํ•˜๊ณ , ์ผ ๋‹จ์œ„๋กœ๋งŒ ๋ณด๊ณ  ์‹ถ์œผ๋ฉดtimeGridWeek๋ฅผ ์“ฐ์ง€ ๋ง๊ณ  dayGridWeek๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค.

Front/JS & jQuery 2025.07.28

[js] FullCalendar.js groupId

groupId ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ™์€ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ธ ์ด๋ฒคํŠธ๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.const event = { id: 'MENU123_REQ', groupId: 'MENU123', // ← menuCd๋กœ ๊ทธ๋ฃนํ™” title: 'ํ…Œ์ŠคํŠธ', ...}FullCalendar์—์„œ eventClick ๋˜๋Š” eventMouseEnter, eventMouseLeave ๊ฐ™์€ ์ด๋ฒคํŠธ์—์„œ groupId๋กœ ๋ฌถ์ธ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โœ… ์˜ˆ์‹œ: eventClick์—์„œ groupId๋กœ ๋ฌถ์ธ ์ด๋ฒคํŠธ ์ „์ฒด ์„ ํƒํ•˜๊ธฐeventClick: function(info) { const calendarApi = info.view.calendar; const clickedEvent = i..

Front/JS & jQuery 2025.07.25

[js] FullCalendar.js id๊ฐ’

FullCalendar.js์—์„œ ์‚ฌ์šฉ๋œ id๋Š” ๊ฐ ์ด๋ฒคํŠธ๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„์ž(ID) ์ž…๋‹ˆ๋‹ค. โžก๏ธ์ด๋ฒคํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ์œ ๊ฐ’. ์ˆ˜์ •·์‚ญ์ œ·๊ฒ€์ƒ‰ ์‹œ ํ•„์š”โœ… ์‹ค๋ฌด์—์„œ์˜ ํ™œ์šฉid์— DB์˜ PK๋‚˜ ์œ ๋‹ˆํฌ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๐Ÿค”ํ‘œ์‹œํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ pk๋งŒ์œผ๋กœ๋Š” ์ค‘๋ณต์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐโœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1: devCd + ๊ตฌ๋ถ„๊ฐ’ ์กฐํ•ฉ โžก๏ธ id = menuCd + '_REQ', menuCd + '_RES' ๋“ฑ์œผ๋กœ ์œ ๋‹ˆํฌ ๋ณด์žฅโœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 2: UUID๋‚˜ ๊ณ ์œ ๋ฒˆํ˜ธ ๋ถ€์—ฌ

Front/JS & jQuery 2025.07.24

[js] FullCalendar.js

FullCalendar.js๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์บ˜๋ฆฐ๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.โœ… HTML ๊ธฐ๋ณธ ๊ตฌ์กฐ โœ… JavaScript ๊ธฐ๋ณธ ์ดˆ๊ธฐํ™” โœ… ์ฃผ์š” ์˜ต์…˜ ์„ค๋ช…์˜ต์…˜์„ค๋ช…initialView์ดˆ๊ธฐ ๋ณด๊ธฐ ํ˜•ํƒœ (dayGridMonth, timeGridWeek, timeGridDay, listWeek ๋“ฑ)headerToolbar์ƒ๋‹จ ํˆด๋ฐ” ์œ„์น˜ ๋ฐ ๋ฒ„ํŠผ ์ง€์ •events์ผ์ • ๋ฐ์ดํ„ฐ (๋ฐฐ์—ด ๋˜๋Š” URL๋กœ Ajax ํ˜ธ์ถœ ๊ฐ€๋Šฅ)locale์–ธ์–ด ์„ค์ • (ko ์‚ฌ์šฉ ์‹œ ํ•œ๊ตญ์–ด)editable๋“œ๋ž˜๊ทธ/์ˆ˜์ • ๊ฐ€๋Šฅ ์—ฌ๋ถ€selectable๋‚ ์งœ ์„ ํƒ ๊ฐ€๋Šฅ ์—ฌ๋ถ€eventClick์ด๋ฒคํŠธ ํด๋ฆญ ์‹œ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜dateClick๋‚ ์งœ ํด๋ฆญ ์‹œ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜ โœณ๏ธ ์š”์•ฝ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ์€ new FullCalendar.Calendar()๋กœ ์บ˜๋ฆฐ๋” ์ƒ์„ฑ → ..

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