Enum 형식의 수정/삭제/추가가 일어나지 않는 테이블은 Enum Inner Class로 관리한다.
gusah009 opened this issue · comments
사전 수행 issue
없음.
이슈 내용
enum
형식으로 row
가 많이 없고, 수정/삭제/추가가 잘 일어나지 않는 테이블은 AttendanceStatus
테이블 참고해서 그런 형식으로 수정하고, 테스트 코드를 반드시 작성해야 합니다. 테스트 코드는 SeminarAttendanceStatusRepositoryTest
를 참고하도록 합시다.
테스트 코드를 작성해야 배포 시에 실제 DB의 데이터 변경 사항과 코드 내부 enum의 데이터 정합성을 일치시킬 수 있습니다.
추가로, 해당 Entity의 값을 하드코딩해서 쓰고 있는 곳이 있으면 이를 수정해야 합니다.
@Table(name = "study")
public class StudyEntity {
// default 썸네일 ID를 하드코딩해서 쓰고 있다.
private static final Long RECTANGLE_DEFAULT_THUMBNAIL_ID = 1L;
private static final Long SQUARE_DEFAULT_THUMBNAIL_ID = 2L;
public String getThumbnailPath() {
if (getThumbnail() == null) {
return EnvironmentProperty.getThumbnailPath(SQUARE_DEFAULT_THUMBNAIL_ID);
}
return EnvironmentProperty.getThumbnailPath(getThumbnail().getId());
}
}
위 코드처럼 default 썸네일 ID를 하드코딩해서 쓰면 나중에 default 썸네일 ID나 데이터가 바뀌어도 알아차리기 힘들고 버그를 낳을
가능성이 높습니다. default 썸네일 정보는 enum 형식으로 ThumbnailEntity
에 있는 것이 좋을 것 같습니다.
public class MemberUtilService {
// 하드코딩 해서 사용중!
public static final Long VIRTUAL_MEMBER_ID = 1L;
}
위 코드도 VIRTUAL_MEMBER
에 대한 정보는 반드시 MemberEntity
의 enum에 들어가 있어야 합니다.
❗️ 예시로 보여드린 코드 외에도 위와 같이 사용하는 코드들이 많을 것 같습니다! 모두 찾아서 수정해야 합니다.
참고로
static final
키워드로 검색하면 하드 코딩해서 쓰고 있는 코드들을 쉽게 찾을 수 있습니다!
수행 내용
-
enum
형식으로row
가 많이 없고, 수정/삭제/추가가 잘 일어나지 않는 테이블은AttendanceStatus
테이블 참고해서 그런 형식으로 수정한다.-
enum
을 추가한 Entity는 반드시 테스트 코드를 작성해 데이터 정합성을 확인한다.
-
-
해당 Entity의 값을 하드코딩해서 쓰고 있는 곳이 있으면 이를 수정한다