💻문제점
문제점1. CreatedAt과 ModifiedAt 이 Null로 들어가는 문제 발생
문제점2. createdAt과 modifiedAt을 날짜만 나오게 하고 싶다.
📃시도
문제점2. 자동으로 저장된 날짜와 시간을 subString으로 잘라서 사용하려고 했다.
🔍해결
문제점1. 생성 날짜와 수정 날짜는 애노테이션을 사용해서 DB에 들어갈 때 자동으로 생성될텐데 하고 찾아보다가 main 메서드가 있는 곳에 @EnableJpaAuditing 애노테이션을 붙이지 않았음을 알게 되었다.
해당 애노테이션을 적용해야 createdAt, modifiedAt 처럼 DB에 저장되거나 수정될 때 자동으로 기록할 수 있다.
문제점2. 단순히 createdAt과 modifiedAt의 데이터 타입을 LocalDateTime이 아닌 LocalDate로 변경하면 된다.
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class TimeStamped {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime modifiedAt;
}
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class TimeStamped {
@CreatedDate
@Column(updatable = false)
private LocalDate createdAt;
@LastModifiedDate
private LocalDate modifiedAt;
}
💡알게 된 점
Http 요청 메시지 바디에 데이터를 담아서 보내는지 의문이었는데 이번에 게시글 프로젝트 과제를 하면서 있구나... 싶었다.
Postman
Postman을 사용하여 API를 호출하고 반환값을 확인할 수 있었다.
프론트까지 개발하여 확인하지 않아도 되기 때문에 편리한 도구인 것 같다.
API 명세서
다음이나 네이버 등에서 작성된 API 명세서를 확인해봤는데 API 하나당 매우 상세히 나와있다. 단순히 어떤 Http 메서드를 사용하고 어떤 기능을 하는지, 어떤 요청이 들어오면 어떤 응답을 줄건지 정도만 작성했었는데, 나중에 어떤 사람이 읽어도 이해할 수 있도록 상세히 API 명세서를 작성해두는 것이 좋을 것 같다.
Swagger라는 프로그램을 사용하여 API 명세서를 작성한다는데 사용해보면 좋을 것 같다.
'TIL' 카테고리의 다른 글
[TIL - 20230418] JWT (0) | 2023.04.18 |
---|---|
[TIL - 20230415] (0) | 2023.04.15 |
[TIL - 20230413] 세션 (0) | 2023.04.13 |
[TIL - 20230411] yml의 DB 정보 .gitignore 등록 (0) | 2023.04.11 |
[TIL - 20230410] DAO, DTO, VO (0) | 2023.04.10 |