๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Spring Boot ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด ๋‚ ์งœ/์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๋ฅผ ํ”„๋ก ํŠธ(JS)์™€ ๋ฐฑ์—”๋“œ(Java) ์–‘์ชฝ์—์„œ ๊ฐ๊ฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
"์–ด๋ผ? ํ•œ์ชฝ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋˜๋Š” ๊ฑฐ ์•„๋ƒ?" ์‹ถ์ง€๋งŒ, ์‚ฌ์‹ค์€ ๊ฐ์ž์˜ ์—ญํ• ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜ ๋‹ค ํ•„์š”ํ•œ ๊ฒƒ.
์•„๋ž˜์—์„œ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ๊ฐ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด์ž.

 

1. ๋ฐฑ์—”๋“œ์—์„œ ์‹œ๊ฐ„ ํฌ๋งท ์ฒ˜๋ฆฌ (Controller)

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime startDateTime = LocalDateTime.parse(startDate, formatter);

 

  • ํ”„๋ก ํŠธ์—์„œ ๋„˜๊ฒจ์ค€ ๋ฌธ์ž์—ด(String)์„ LocalDateTime ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ์˜ˆ: "2025-05-12 00:00:00" → LocalDateTime ๊ฐ์ฒด
  • @RequestParam์œผ๋กœ ๋ฐ›์€ ๋‚ ์งœ๊ฐ€ ๋น„์—ˆ์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋‚ ์งœ ๋ฒ”์œ„ ์„ค์ •๋„ ํ•จ๊ป˜ ์ฒ˜๋ฆฌ

๋ฌธ์ž์—ด → LocalDateTime ํŒŒ์‹ฑ + ๊ธฐ๋ณธ๊ฐ’ ์ฒ˜๋ฆฌ

 

2. ํ”„๋ก ํŠธ์—”๋“œ(js)์—์„œ์˜ ์‹œ๊ฐ„ ํฌ๋งท ์ฒ˜๋ฆฌ

function formatDate(dateStr) {
    const date = new Date(dateStr);
    date.setHours(date.getHours() + 9); // KST ๋ณด์ •
    return date.toISOString().replace('T', ' ').substring(0, 19);
}

 

  • Date ๊ฐ์ฒด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ UTC ๊ธฐ์ค€ → ํ•œ๊ตญ์‹œ๊ฐ„(KST)์œผ๋กœ ๋งž์ถฐ์ค˜์•ผ ํ•จ
  • .toISOString()์€ T ํฌํ•จ๋œ ํฌ๋งท์ด๋ผ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋ณด๊ธฐ ์–ด๋ ค์›€
  • ๊ทธ๋ž˜์„œ KST ๋ณด์ • + "yyyy-MM-dd HH:mm:ss" ํ˜•์‹์œผ๋กœ ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋ฐ”๊ฟˆ

UTC → KST ๋ณ€ํ™˜ + ์˜ˆ์˜๊ฒŒ ํฌ๋งทํ•ด์„œ UI์— ํ‘œ์‹œ

 

๋ฐฑ์—”๋“œ (Spring Boot Controller) ๋‚ ์งœ ๋ฌธ์ž์—ด์„ LocalDateTime์œผ๋กœ ๋ณ€ํ™˜
+ ๋น„์—ˆ์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋‚ ์งœ ์„ค์ •
ํ”„๋ก ํŠธ์—”๋“œ (JS) UTC → KST ๋ณด์ •
+ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๊ธฐ ์ข‹์€ ํ˜•ํƒœ๋กœ ํฌ๋งท

 

๋ฐฑ์—”๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํฌ๋งทํ•˜๊ณ ,
ํ”„๋ก ํŠธ๋Š” ์‚ฌ๋žŒ ๋ˆˆ์— ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋ณด์—ฌ์ฃผ๋ ค๊ณ  ํฌ๋งทํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•