Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enum 형식의 수정/삭제/추가가 일어나지 않는 테이블은 Enum Inner Class로 관리한다. #422

Open
3 tasks
gusah009 opened this issue Sep 20, 2022 · 0 comments
Labels
❤️ refactor 코드 리팩토링 (기능상 변경이 없어야 함) ✏️ test 테스트 코드 관련 추가 및 수정사항

Comments

@gusah009
Copy link
Member

gusah009 commented Sep 20, 2022

사전 수행 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의 값을 하드코딩해서 쓰고 있는 곳이 있으면 이를 수정한다

@gusah009 gusah009 added ❤️ refactor 코드 리팩토링 (기능상 변경이 없어야 함) ✏️ test 테스트 코드 관련 추가 및 수정사항 labels Sep 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
❤️ refactor 코드 리팩토링 (기능상 변경이 없어야 함) ✏️ test 테스트 코드 관련 추가 및 수정사항
Projects
None yet
Development

No branches or pull requests

1 participant