[Java] LocalDate, LocalDateTime을 사용하는 이유

devdo·2023년 2월 11일
0

Java

목록 보기
54/56
post-thumbnail

Java 8에서 추가된 LocalDateTime 클래스는 특정 시점을 표현하는데 사용됩니다.

Date, Calendar와 비교

  • 편리성: LocalDateTime은 날짜와 시간을 직접 관리하기 때문에 java.util.Date와 java.util.Calendar와 같은 클래스보다 보다 사용하기 편리하고 정확한 결과를 제공할 수 있습니다.
    LocalDateTime은 날짜와 시간을 따로 표현하지 않고 하나의 클래스로 표현합니다. 이를 통해 날짜와 시간을 하나로 표현하고 관리하는 것이 편리합니다.

LocalDate, LocalDateTime의 메서드들이 훨씬 더 많아.

  • 보안성: LocalDateTime은 스레드에서 안정적으로 사용할 수 있는 자바 8의 새로운 날짜와 시간 API의 일부입니다. 따라서 스레드에서 동시에 날짜와 시간을 관리할 때 같은 객체를 여러 스레드에서 동시에 수정할 경우 발생할 수 있는 문제를 피할 수 있습니다.

참고

✳️ MySQL > LocalDateTime vs TimeStamp 비교

시스템 종속성: Timestamp 타입은 타임존(timezone)에 종속적입니다. 따라서 타임존을 변경할 경우에도 Timestamp 타입이 영향을 받습니다.

LocalDateTime 타입은 타임존의 영향을 받지 않기 때문에, 데이터베이스와 같은 외부 시스템과의 연동에서 보다 안정적인 날짜와 시간 표현이 가능합니다.

  • 편의성: LocalDateTime 타입은 날짜와 시간을 분리하여 관리할 수 있습니다. 또한, 날짜와 시간 연산이 쉽고 간결하다는 점이 장점입니다.

  • 보안성: Timestamp 타입은 시스템 시간을 사용하기 때문에, 시스템 시간을 변경하는 공격에 취약할 수 있습니다. LocalDateTime 타입은 JVM 안에서 처리되기 때문에, 외부 공격에서는 영향을 받지 않습니다.

profile
배운 것을 기록합니다.

0개의 댓글