우아한 테크코스 5기 프리코스 3주차 미션 후기

정훈희·2022년 11월 16일
0

Java

목록 보기
5/6
post-thumbnail

3주차 미션 Repository

https://github.com/woowacourse-precourse/java-lotto

내 Repository

GitHub - JeongHunHui/java-lotto at JeongHunHui

진행과정

  1. 객체 별 기능 체크리스트 작성
  2. 기능구현
  3. 기능을 테스트할 테스트코드 작성
  4. 리팩토링

저는 위와 같은 순서로 3주차 미션을 진행하였습니다.

2주차에서 배운부분들을 최대한 적용시키며 진행하는 것을 목표로 진행하였습니다.

느낀점

  1. 에러 클래스를 따로 만들어서 한번에 관리하자.

    이번 요구사항에 예외 상황 시 [ERROR] 로 시작하는 에러 문구를 출력하도록 하였는데, 처음에 생각없이 여러 클래스에 예외들이 흩어져 있으니까, 에러 메세지를 수정하기 힘들었다.

    이에 대한 해결책으로 에러 클래스들을 빼서 따로 관리를 하면, 재사용되는 에러 클래스의 메세지를 변경하기 위해서 해당 에러를 던지는 모든곳을 수정할 필요 없이 에러 클래스의 메세지만 수정하면 되기 때문에 편하다는 생각이 들었다.

  2. 리팩토링(클린코드) 연습하자

    이 부분은 저번주에도 느꼈었지만, 아직 많은 연습이 필요한 것 같다.

    특히 이번 미션에는 여러 요구사항이 추가되어 클린코드에 더 많은 신경을 쓰게 되었던 것 같다.

    앞으로 개인적으로 코드를 짤 때도 규칙을 정하고 짜는 연습을 해봐야겠다.

    • 들여쓰기 2이하, 3항 연산자 금지, 한 함수 당 15줄 이하로 구현, else, swich case 사용 금지 등
  3. 비즈니스 로직과 UI 로직을 분리하자

    비즈니스 로직과 UI로직을 한 클래스가 담당하지 않도록 한다.

    현재 객체의 상태를 보기 위한 로그 메시지 성격이 강하다면 toString() 메소드를 통해 구현한다.

    View에서 사용할 데이터라면 getter 메서드를 통해 데이터를 전달하자.

  4. 수시로 테스트 코드를 작성하자

    한 번에 많은 기능을 짜고 그에 맞는 단위 테스트코드를 다 짜려고 하니까 테스트 코드에 대한 고려를 전혀 하지 않고 짜서 그런지 정말 힘들었다.

    작은 단위로 기능을 구현하고, 이에 맞는 테스트 코드를 짠뒤에 리팩토링을 하며 테스트 코드를 활용하면 좋을 것 같다고 느꼈다.

    이번에는 시간을 많이 투자하지 못해서 모든 테스트 코드를 짜지는 못했지만, 이번주에는 정말 시간을 많이 써서 테스트 코드에도 투자를 해봐야겠다.

  5. Enum 활용

    이번에 당첨금, 숫자 일치 수, 보너스 번호 일치 여부 등을 Enum을 통해서 관리하였는데, 좋은 선택이었던 것 같다. 다른 사람의 코드를 더 참고하여서 잘 다듬어서 다음 미션에 적용해봐야 겠다.

  • 다음 미션은 미리미리 해야겠다… 시간 투자를 너무 못한 것 같다 ㅠㅠ
profile
DB를 사랑하는 백엔드 개발자입니다. 열심히 공부하고 열심히 기록합니다.

0개의 댓글