서론
3주 차 미션은 Enum과 테스트 코드 작성 요구사항이 추가되었다.
2주 차부터 테스트 코드 작성을 연습했지만, 여전히 테스트 코드 작성은 너무 어려웠다. 그 이유는 아무래도 어디까지 테스트해야 하는가? 테스트 코드가 프로덕션 코드에 영향을 미쳐도 괜찮은가? 테스트하기 좋은 코드를 만들기 위해 클래스 분리하는 방법 등에 대한 고민 때문이었다.
하지만 2주 차 회고에서 말했다시피 3주 차가 끝나고 공통 피드백을 통해 어느 정도 의문을 해결할 수 있었다.
그래서 오늘은 Enum을 중심으로 회고해 볼 생각이다. (다 쓰고보니 그냥 Enum 설명 글이다..)
Enum의 장점
편리한 상수 관리
Enum은 상수를 정의하기 위한 열거형으로써 객체보다는 값 타입으로 선언하는 상수가 여러 가지 값을 가질 수 있다.
static final을 사용했을 때도 객체에 필요한 데이터를 담아서 쓸 수 있지만, 가독성과 작성의 편의성 측면에서 Enum이 더 좋다고 생각한다.
또한 Enum 파일에서 필요한 상수 데이터와 로직을 한 번에 관리할 수 있으며, Enum.values()를 통해 상수를 순회하는 등의 상수에 대한 처리를 도와주는 기본 메서드가 많이 존재한다.
동적인 상수 값
상수가 가지는 값을 Functional Interface를 통해 동적으로 설정할 수 있다.
그룹화
상수를 사용하면 연관된 상수끼리 구분하고 싶은 경우가 있다. 이때 Enum에서 구분을 위한 상태 값을 통해 특정 그룹으로 그룹화할 수 있다.
Enum의 단점
Enum의 단점은 변경 사항을 적용할 때 일일이 Enum 파일에서 수정해줘야 한다는 점이다.
만일 잦은 변경이 이루어지는 값이라면 DB에 저장하여 관리자 페이지에서 수정하는 것이 더 편리할 수 있다.
요약하면 편의성은 Enum이 유리하고, 유연성은 class가 더 유리하다.
마무리
이전까지 단순히 상수 이름을 나열해놓고 사용하는 줄만 알고 Enum의 필요성을 느끼지 못했다.
하지만 이번 3주 차 미션 덕분에 Enum의 장점에 대해 알게 되어 앞으로는 자주 사용할 것 같다.
4주차 회고는 1,2,3 주차 때 돌아본 내용을 복습했어서 내용이 겹쳐 따로 작성하지는 않을 예정이고, 4주차까지 마무리하면서 많은 것들을 배운 것 같고 앞으로도 배울 것이 정말 많기 때문에 열심히 공부하고 블로그에 기록할 계획이다.
구현코드
Reference
https://techblog.woowahan.com/2527
https://jojoldu.tistory.com/137
'활동 > 우테코' 카테고리의 다른 글
우테코 프리코스 2주차 회고 (1) | 2023.11.21 |
---|---|
우테코 프리코스 1주차 회고 (2) | 2023.11.20 |