우테코 프리코스 3주차 회고

서론

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주차까지 마무리하면서 많은 것들을 배운 것 같고 앞으로도 배울 것이 정말 많기 때문에 열심히 공부하고 블로그에 기록할 계획이다.

과제 제출 완료

 

 

구현코드

코드 링크 👇

 

GitHub - jchyng/wooteco_racing_car: 우테코 6기 프리코스 2주차 자동차 경주

우테코 6기 프리코스 2주차 자동차 경주. Contribute to jchyng/wooteco_racing_car development by creating an account on GitHub.

github.com

 

Reference

https://techblog.woowahan.com/2527

 

Java Enum 활용기 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다. 이번 사내 블로그 포스팅 주제로 저는 Java Enum 활용 경험을 선택하였습니다. 이전에 개인 블로그에 E

techblog.woowahan.com

 

https://jojoldu.tistory.com/137

 

Enum 활용사례 3가지

안녕하세요? 이번 시간엔 enum 활용사례를 3가지정도 소개하려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+

jojoldu.tistory.com

 

'활동 > 우테코' 카테고리의 다른 글

우테코 프리코스 2주차 회고  (1) 2023.11.21
우테코 프리코스 1주차 회고  (2) 2023.11.20