Conversation
jinsu4755
left a comment
There was a problem hiding this comment.
일단 진행 중인 부분에 대해서 리뷰 남겼습니다~~
리뷰 중에 통일해주면 좋을 내용 등이 있기 때문에 이를 확인하고 수정해보는 것도 좋을 것 같아요~
|
|
||
| @MappedSuperclass | ||
| @EntityListeners(AuditingEntityListener::class) | ||
| abstract class BaseTimeEntityCreated { |
There was a problem hiding this comment.
지금도 객체의 이름이 나쁘지는 않다고 생각은 들지만 조금 더 이해하기 쉬운 역할의 이름을 부여해 주는 것이 어떨까요?
이 추상 클래스가 해주고 싶은 역할은 결국 어떤 것일까요?
그 역할 이름을 부자연스러운 단어의 조합보다 그 역할 자체를 쉽게 풀어 쓰는 단어를 붙여주는 것이 좋지 않을까요?
마치 지금은 이름 자체만 보면 BaseTime 엔티티 생성된 과 같은 순서로 읽혀 정확히 어떤 일을 처리하고 싶은지 알기 힘든 것 같은 느낌이 듭니다.
| @CreatedDate | ||
| @Column(nullable = false, updatable = false) | ||
| @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| var createdAt: LocalDateTime = LocalDateTime.now() | ||
| protected set |
There was a problem hiding this comment.
modifiedAt 을 다루는 곳에서는 JsonFormat 을 사용하고 있는데 이로 인해 BaseTimeEntityCreated에서 createAt에 대한 포맷 문제가 있진 않을까요?
혹은 포맷 뿐 아니라 만약 컬럼명이 변하는 경우 두 파일을 모두 수정해야 하는 상황이 발생할 수 있는데
이 처럼 수정으로 인한 불일치가 생기지 않도록 처리가 필요하지 않을까요?
| ) : BaseTimeEntityModified() { | ||
| @Id | ||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
| var id: Long? = 0 |
There was a problem hiding this comment.
id에 대해 디폴트 초기화 값을 통일해주는 것이 좋을 것 같습니다!
본인만의 정확한 기준을 만들어 null 혹은 Default value 중 선택을 해보는 것이 어떨까요?
| ) : BaseTimeEntityModified() { | ||
| @Id | ||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
| val id: Long = 0; // ㅜㅜ 이거 어카지... |
There was a problem hiding this comment.
val 의 경우 자바의 final 변수와 동일하게 한번 선언 후 값을 변경할 수 없습니다.
만약 id 가 final 일 경우 어떤 문제가 발생할 수 있을까요? 혹은 예상되는 문제가 없을까요?
아직 엔티티 반 정도밖에 구현 못했구요!
그리고 전에 말했던 푸시 알림 세팅 fcmtoken 테이블에 합치려했던거 생각해보니까 fcm 토큰 삭제될 때마다 세팅 정보도 같이 사라지게 돼서
결국 분리하는 거로 결정했답니다 :)