[TIL-20260208] Instant๋กœ ํ† ํฐ ๋งŒ๋ฃŒ ์ž„๋ฐ• ์—ฌ๋ถ€ ์ฒดํฌ

2026. 2. 8. 21:55ยทToday I Learned ๐Ÿง

 

๐Ÿ€ To Do List

โœ”๏ธ ์ฝ”ํ…Œ ๊ฐ•์˜ - ๋ฒ„๋ธ” ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ

โœ”๏ธ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ - ๋งŒ๋ฃŒ ์˜ˆ์ • ํ† ํฐ ์—ฌ๋ถ€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

 

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Today I Learned ...

toDays()๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ 

val expiration = getExpiration(refreshToken).toInstant()
val now = Instant.now()
val duration = Duration.between(now, expiration) # 691199์ดˆ -> 7์ผ 23์‹œ๊ฐ„59๋ถ„59์ดˆ
return duration.toDays() in 0..7 # true

๋งŒ๋ฃŒ ์˜ˆ์ • ํ† ํฐ ์—ฌ๋ถ€ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ์ค‘, ๋งŒ๋ฃŒ์ผ์ด ์•ฝ 8์ผ์ด๋ผ ๋ฒ”์œ„์—์„œ ๋ฒ—์–ด๋‚˜๋ฏ€๋กœ ๊ฒฐ๊ณผ๊ฐ’์„ `false`๋กœ ๊ธฐ๋Œ€ํ–ˆ๋Š”๋ฐ

 `true`๊ฐ€ ๋‚˜์™”๋‹ค.

 

691199์ดˆ = 691199 / 86400 = 7.99998... ์ผ
691199์ดˆ.toDays() = 7์ผ // 8์ผ์ด ์•„๋‹˜

`toDays()`๋Š” ์†Œ์ˆ˜์ ์„ ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, `7.9998...`์ผ์ด `7`์ผ์ด ๋˜๊ณ  ์กฐ๊ฑด๋ฌธ ๋ฒ”์œ„์— ํ•ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— `true`๊ฐ€

๋ฐ˜ํ™˜๋œ ๊ฒƒ์ด๋‹ค.

 

 

Instant๋กœ ์ง์ ‘ ๋น„๊ตํ•˜๊ธฐ

val expiration = getExpiration(refreshToken).toInstant()
val now = Instant.now()
val deadline = now.plus(baseDays, ChronoUnit.DAYS)
return expiration in now..deadline

์ดˆ๊นŒ์ง€ ์ •ํ™•ํžˆ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด์ œ ๊ณ ๋ คํ–ˆ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ `toHours()`๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, `Instant`๋กœ ์ง์ ‘ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์ •์ด ํ•„์š”ํ–ˆ๋‹ค. ๊ตฌํ˜„์ด ์‰ฝ๊ณ  ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ํ›„์ž ๋ฐฉ์‹์„ ์„ ํƒํ–ˆ๋‹ค.

 

 public Instant plus(long amountToAdd, TemporalUnit unit) { /*...*/ }
 public Instant minus(long amountToSubtract, TemporalUnit unit) { /*...*/ }

`Instant` ํด๋ž˜์Šค์—๋Š” `plus()`, `minus()` ๋“ฑ์˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค.  `TemporalUnit`์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š”

๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„, ๋ถ„, ์ดˆ ๋“ฑ์˜ ๋‹จ์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Today I Learned ๐Ÿง' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL-20260212] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ณต์Šต - ํƒ‘(Tower) ๋ฌธ์ œ  (0) 2026.02.14
[TIL-20260211] ์ฝ”ํ…Œ - ๋ณ‘ํ•ฉ ์ •๋ ฌ , Open API 3.0 Swagger ๋ฌธ์„œ ์ž‘์„ฑ  (0) 2026.02.12
[TIL-20260206] Duration์œผ๋กœ ํ† ํฐ ๋งŒ๋ฃŒ ์ž„๋ฐ• ์—ฌ๋ถ€ ์ฒดํฌ  (0) 2026.02.07
[TIL-20260205] Access Token ์žฌ๋ฐœ๊ธ‰ ๊ตฌํ˜„  (0) 2026.02.05
[TIL-20260204] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ - ์žฌ๊ท€ ํ•จ์ˆ˜ (Recursive Function)  (0) 2026.02.04
'Today I Learned ๐Ÿง' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [TIL-20260212] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ณต์Šต - ํƒ‘(Tower) ๋ฌธ์ œ
  • [TIL-20260211] ์ฝ”ํ…Œ - ๋ณ‘ํ•ฉ ์ •๋ ฌ , Open API 3.0 Swagger ๋ฌธ์„œ ์ž‘์„ฑ
  • [TIL-20260206] Duration์œผ๋กœ ํ† ํฐ ๋งŒ๋ฃŒ ์ž„๋ฐ• ์—ฌ๋ถ€ ์ฒดํฌ
  • [TIL-20260205] Access Token ์žฌ๋ฐœ๊ธ‰ ๊ตฌํ˜„
ํ•ด๋‹ˆ ๐ŸŒฑ
ํ•ด๋‹ˆ ๐ŸŒฑ
๊ธฐ๋ก์ด ์ž์‚ฐ์ด๋‹ค ( •ฬ€แด—•ฬ )ูˆโœ๏ธ
  • ํ•ด๋‹ˆ ๐ŸŒฑ
    haeni.dev
    ํ•ด๋‹ˆ ๐ŸŒฑ
  • ๋งํฌ

    • github
    • velog
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (25)
      • ์šฐ์‚ฌ๊ธฐ ๊ฐœ๋ฐœ์ผ์ง€ ๐Ÿฐ (4)
      • Today I Learned ๐Ÿง (19)
      • ๋ถ„๋…ธ์˜ ํƒ€์ดํ•‘ ๋กœ๊ทธ ๐Ÿ”ฅ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๊ฐœ๋ฐœ
    ๋ฐฑ์—”๋“œ
    AWS
    springboot
    til
    ์ฝ”ํ…Œ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๊ฐœ๋ฐœ์ž
    IT
    ci/cd
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.5
ํ•ด๋‹ˆ ๐ŸŒฑ
[TIL-20260208] Instant๋กœ ํ† ํฐ ๋งŒ๋ฃŒ ์ž„๋ฐ• ์—ฌ๋ถ€ ์ฒดํฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”