하루 작성 Today Project

하루 작성 Today Project/Study

@CreatedDate Format 변경하기

@CreatedDate를 통해 컬럼의 생성일을 받게 되면, 보통 LocalDateTime으로 받아서 아래와 같은 형식으로 DB에 저장되게 된다. @CreatedDate // Entity가 생성되어 저장될 때 시간 자동 저장 @Column(updatable = false) // updatable = false : column 수정 시 값 변경을 막는다. private LocalDateTime createdDate; LocalDateTime.now()의 반환 형식 2022-11-01T16:23:47.960583 👉 이렇게 DB에 저장되니 나노초와 ‘T’가 가독성이 너무 안 좋아서 삭제하기 위해 Format을 변경하는 방법을 찾게 되었다. 기본적으로는, LocalDateTime의 포맷을 변경하고 싶다면 Loc..

하루 작성 Today Project/Study

LocalDateTime 주요 메소드 정리

포스트 작성 날짜에서 일자만 뽑아내는 로직을 구현 중에, @CreatedDate 로 생성한 생성일을 가져와서 어떻게 일자만 뽑아낼지 고민했다. 처음에는 String처럼 슬라이싱하여 일자만 뽑아낼 수 있지 않을까? 했었는데 구글링을 해보니, LocalDateTime 메소드에 이미 일자를 뽑아내는 메소드가 존재했다. 아래의 코드로 한번에 LocalDateTIme의 메소드들을 살펴보자. LocalDateTime 메소드 예제 LocalDate today = Year.of(2017).atMonth(12).atDay(17); System.out.println("Today : " + today); System.out.println("Year : " + today.getYear()); System.out.println..

하루 작성 Today Project/Study

Try-with-resource를 통한 자원 해제 처리

파일 업로드 코드를 작성하던 와중에, try-catch의 try에 파라미터가 들어가는 것을 보았다. try-catch 구문에서는 항상 catch에서 에러를 잡을 때 파라미터로 잡는 것으로만 파라미터를 봤는데, try에 파라미터가 있는 것은 처음 보았다. 구글링을 진행해보니 try-with-resource라는 방식이 따로 존재하고 있었다. 자원 해제를 더 쉽게 처리해준다는 장점이 있었다. 얼마나 자원 해제가 쉬워졌는지, 기존 try-catch-finally와 try-with-resources를 비교해보자. 기존 try-catch-finally로 자원 해제 public static void main(String args[]) throws IOException { FileInputStream is = null..

하루 작성 Today Project/Study

DTO에 기본 생성자가 필요한 이유

SignUpRequestDto @Data @NoArgsConstructor public class SignUpRequestDto { private String email; private String password; } 👉 이러한 DTO에서 습관적으로 @NoArgsConstructor 를 붙여서 사용하곤 했는데, 사용하는 이유를 제대로 알지 못해서 이번 기회에 제대로 알아보고자 한다. 우선, 기본 생성자가 필요한 이유를 알기 위해서는 스프링이 어떻게 Dto를 JSON으로 맵핑하는지 그 원리를 알아야 한다. 스프링은 바로 Jackson 라이브러리의 ObjectMapper를 사용하여 JSON으로 맵핑한다! ObjectMapper는 직렬화(serialize), 역직렬화(deserialize)를 수행하는데, 이..

BE_성하
'하루 작성 Today Project' 카테고리의 글 목록