DTO 를 Redis 에 넣어 호출하려는 와중 다음과 같은 에러가 발생하였습니다. org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 찾아보니 이 방법은 Java의 Jackson Mapper의 버전와 관련된 문제여서 이전의 경우 Serialize를 하지 못해 발생하는 문제였습니다. 그래서..
이전 글에서 날짜와 시간을 관여하는 클래스들을 살펴보았다면 이번 글에서는 연관되어 있는 클래스들을 살펴보려 합니다. 날짜 가져오기 LocalDate.now(); // 오늘 LocalDateTime.now(); // 지금 Year.of(2021).atMonth(6).atDay(30).atTime(10, 23); // 2021년 6월 30일 10시 23분 기간 가져오기 Period.ofYears(2); // 2년간 Period.ofMonths(5); // 5개월간 Period.ofWeeks(4); // 4주간 Period.ofDays(15); // 15일간 Duration.ofDays(2); // 48시간 Duration.ofHours(10); // 10시간 Duration.ofMinutes(27); // ..
이전 글에서 Java의 LocalDateTime에 대하여 정리를 하였습니다. 이를 실제 업무에 적용해서 사용할 때는 소스부분의 내용보다는 주로 Database와 연결되어 값을 비교하거나 데이터를 넣어주는, 즉 SELECT, INSERT 및 UPDATE 쿼리를 주로 사용할 것입니다. MyBatis vs Hibernate MyBatis와 같은 DB Mapper를 사용할 때는 테이블의 설계를 미리 진행하고 각각에 맞게 쿼리를 작성해주기 때문에 문제가 되지 않을 것입니다. Hibernate(JPA)의 경우는 테이블 생성의 옵션을 소스에서 직접 설정하고 자동으로 생성이 되는 차이가 있기 때문에 JPA를 사용하였을 때 Mapping 되는 컬럼의 타입이 달라지게 됩니다. 이렇게 되면 선택지가 2개가 생깁니다. Hib..
제가 이전에 자주 사용했던 클래스는 자바에서 기본적으로 제공해주는 Date 클래스를 주로 사용했었습니다. 보통의 경우 new Date().getMonth() 등과 같이 사용하곤 했었습니다. 헌데, Naver D2 글 하나를 본 후로 Date 클래스의 사용을 자중하기로 하였습니다. Date 클래스의 단점을 한번 나열해보겠습니다. 1. 애매한 월 계산 컴퓨터의 기초상 0부터 시작하기 때문에 JANUARY(1월)이 0부터 시작합니다. /** * Value of the {@link #MONTH} field indicating the * first month of the year in the Gregorian and Julian calendars. */ public final static int JANUARY =..