728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1327

[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

[JAVA] String ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”

1. ํฌ๊ธฐ๋งŒ ์ง€์ •ํ•ด์„œ ์ดˆ๊ธฐํ™” String[] configValArr = new String[5]; // ๊ธธ์ด 5์งœ๋ฆฌ ๋ฐฐ์—ด ์ƒ์„ฑ, ์ดˆ๊ธฐ๊ฐ’์€ null 2. ์ดˆ๊ธฐ ๊ฐ’์„ ํ•จ๊ป˜ ์ง€์ •ํ•ด์„œ ์ดˆ๊ธฐํ™” String[] configValArr = new String[] {"val1", "val2", "val3"}; 3. ์ถ•์•ฝํ˜• ์ดˆ๊ธฐํ™” String[] configValArr = {"val1", "val2", "val3"};

JAVA 2025.07.21

[Error][JAVA] error: package * does not exist

Java ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์•„๋ž˜ ์‚ฌํ•ญ๋“ค์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: โœ… 1. ํ•ด๋‹น ํŒจํ‚ค์ง€์™€ ํด๋ž˜์Šค๊ฐ€ ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ ํŒŒ์ผ์ด ํŒจํ‚ค์ง€์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.ํ•ด๋‹น ๊ฒฝ๋กœ์— ํŒŒ์ผ์ด ์—†์œผ๋ฉด importํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด:ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜๋‹ค๋ฅธ ์œ„์น˜์˜ DTO๋ฅผ importํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.โœ… 2. ํ”„๋กœ์ ํŠธ์— ํ•ด๋‹น ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ๋ชจ๋“ˆ์˜ build.gradle ๋˜๋Š” pom.xml์—์„œ ํ•ด๋‹น๋ชจ๋“ˆ์„ dependencies์— ์ถ”๊ฐ€ํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.Gradle ์˜ˆ์‹œ:implementation project(':module:redis')Maven ์˜ˆ์‹œ: salesinsight.nxtlvl.module redis 1.0.0โœ… 3. IDE์—์„œ ๋นŒ..

Error 2025.07.18

[DB][MySQL] ๊ณต๋ฐฑ๊ณผ Null ๋ชจ๋‘ ์ œ์™ธํ•˜๊ธฐ

SELECT *FROM your_tableWHERE your_column IS NOT NULL AND TRIM(your_column) != '';โœ… ์ฐธ๊ณ : TRIM() ์‚ฌ์šฉ ์ด์œ TRIM()์€ " "(์ŠคํŽ˜์ด์Šค), \t, \n ๋“ฑ์˜ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•ด์ค๋‹ˆ๋‹ค.๊ณต๋ฐฑ๋งŒ ์žˆ๋Š” ๋ฌธ์ž์—ด๋„ TRIM() ํ›„ ''๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

DB 2025.07.16

[js] URL ์ด๋™ ๋ฐ ํžˆ์Šคํ† ๋ฆฌ ์ œ์–ด ๋ฉ”์„œ๋“œ

โœ… 1. location.assign(url)์ง€์ •ํ•œ URL๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค (๋’ค๋กœ๊ฐ€๊ธฐ ๊ฐ€๋Šฅ).location.href = url๊ณผ ๋™์ผํ•œ ๋™์ž‘์ž…๋‹ˆ๋‹ค.location.assign("/login"); // ์ด๋™ + ๋’ค๋กœ๊ฐ€๊ธฐ ๊ฐ€๋Šฅ โœ… 2. location.replace(url)์ง€์ •ํ•œ URL๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.ํžˆ์Šคํ† ๋ฆฌ์— ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋’ค๋กœ๊ฐ€๊ธฐ ๋ถˆ๊ฐ€).๋กœ๊ทธ์ธ ํ›„ ๋ฆฌ๋””๋ ‰์…˜ ๋“ฑ์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.location.replace("/login"); // ์ด๋™ + ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ํžˆ์Šคํ† ๋ฆฌ์—์„œ ์ œ๊ฑฐโœ… 3. location.reload()ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•ฉ๋‹ˆ๋‹ค.์บ์‹œ ์—†์ด ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ ค๋ฉด location.reload(true) (์ผ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ฌด์‹œ๋จ)location..

Front/JS & jQuery 2025.07.15

[js] location ์†์„ฑ๋ณ„ ์„ค๋ช…

์†์„ฑ ์„ค๋ช…์˜ˆ์‹œ (https://example.com/customer/page.html?page=1#section1)location.href์ „์ฒด URL ๋ฌธ์ž์—ด (์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ฐ€๋Šฅ)"https://example.com/customer/page.html?page=1#section1"location.originํ”„๋กœํ† ์ฝœ + ํ˜ธ์ŠคํŠธ + ํฌํŠธ ๋ฒˆํ˜ธ"https://example.com"location.pathnameํ˜ธ์ŠคํŠธ ๋’ค์˜ ๊ฒฝ๋กœ ๋ถ€๋ถ„"/customer/page.html"location.search์ฟผ๋ฆฌ ๋ฌธ์ž์—ด (๋ฌผ์Œํ‘œ ํฌํ•จ)"?page=1"location.hashํ•ด์‹œ(anchor) (์ƒต ํฌํ•จ)"#section1"location.protocolํ”„๋กœํ† ์ฝœ"https:"location.hostnameํ˜ธ์ŠคํŠธ ์ด๋ฆ„(๋„๋ฉ”์ธ)"e..

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