3주 차 미션이 끝났다.
이번 문제도 상당히 많은 부분에서 신경 쓸게 많았다.
예외처리 부분이 좀 힘들었다고 생각한다.
우선 사용자의 입력이 잘못 들어온 경우
IllegalArgumentException을 발생시켜야 하는데,
따로 커스텀하지 않을 경우 다른 예외가 발생하기 때문이었다.
그래서 어떠한 예외가 발생할지 계속해서 생각하면서 리펙토링 하였다.
그리고 처음 미션을 받았을 때, 도메인 내부에서 예외처리가 진행되어 있었다.
나는 기존에 View에서 데이터를 받고,
도메인으로 넘기기 전에 빠르게 예외처리를 진행해왔다.
하지만 이번 미션은 통일성을 생각하여 도메인에서 진행하였다.
이러한 부분은 아직 공부가 부족하여 장단점에 대해 더 생각해봐야겠다.
미션을 진행할수록 커밋수가 증가하는 것 같다.
이번에도 역시 공통 피드백을 받았다.
1. 함수 라인에 대한 기준
2. 발생할 수 있는 예외 상황에 대해 고민한다.
3. 비즈니스 로직과 UI 로직을 분리한다.
4. 연관성이 있는 상수는 static final 대신 enum을 활용한다,
5. final 키워드를 사용해 값의 변경을 막는다.
6. 객체의 상태 접근을 제한한다.
7. 객체는 객체스럽게 사용한다.
8. 필드의 수를 줄이기 위해 노력한다.
9. 성공하는 케이스뿐만 아니라 예외에 대한 케이스도 테스트한다.
10. 테스트 코드도 코드다.
11. 테스트를 위한 코드는 구현 코드에서 분리되어야 한다.
12. 단위 테스트하기 어려운 코드를 단위 테스트하기 편하게 리펙토링 한다.
13. private 함수를 테스트하고 싶다면 클래스 분리를 고려한다.
이러한 피드백을 받고, 내가 잘했는지, 부족한 부분이 무엇인지 알게 되었다.
또한 피드백의 사항들이 전부 맞는 말이고, 매우 중요하다고 생각하였다.
느낀 점 및 배운 점
3주 차 미션을 진행하면서 정말 많은 것을 배우고,
성장하였다.
그중에 특히 많이 배웠다고 생각하는 부분은 enum의 활용이었다.
그전까지는 enum을 그저 상수처리 느낌으로 사용한다고 생각하였다.
하지만 enum을 잘 사용한다면 더욱 좋은 코드를 작성할 수 있다.
enum을 활용하여 위의 코드를 더욱 짧게 줄일 수 있었다.
마지막 미션이 남았는데,
마지막이라고 생각하니 뭔가 아쉬운 마음이 들었다.
마지막인 만큼 온전히 몰입하고 최선을 다할 것이다.
이번 미션에 대한 코드 링크를 걸어두겠습니다.
부족한 부분이 있다면 피드백 부탁드립니다.
https://github.com/kimtaesoo99/java-lotto/tree/kimtaesoo99
'활동' 카테고리의 다른 글
우아한테크코스 5기 - 불합격 및 배운점 (3) | 2022.12.15 |
---|---|
우아한테크코스 5기 - 4주차 후기 (1) | 2022.11.23 |
우아한테크코스 5기 - 2주차 후기 (0) | 2022.11.08 |
교내 SW 프로그램 경진 대회 수상 및 후기 (1) | 2022.11.04 |
우아한테크코스 5기 - 1주차 후기 (2) | 2022.10.31 |