우아한 테크캠프 PRO 3기 - 로또 TDD
첫 과정은 로또 프로그램을 TDD로 개발하는 것이었습니다. 총 5 단계로 프로그램에 대한 기능을 추가해 나갔습니다.
프리코스를 진행하며 테스트코드를 작성한 것이 처음이기에, 테스트 코드 작성하는 것부터 꾀나 애를 먹었습니다.
처음 테스트 코드를 작성할 때는 당연한 결과에 대해 왜 코드를 또 작성해야 할까에 대한 의문도 있었지만,
이 후 리팩토링을 진행하면서 코드를 보호할 수 있는 것에 대한 필요성을 알게 되었습니다.
프로그래밍 요구사항
첫 단계에서는 “가독성을 위한 개행처리” 피드백을 받았습니다.
세 번째 단계부터 본격적으로 로또 프로그램 개발 미션을 수행하였습니다.
https://github.com/next-step/java-lotto-pro/pull/108
1) static 메소드만을 가진 Utility Class 는 private 생성자를 통하여 불필요한 객체 생성을 방지한다.
2) 도메인 중심 개발을 경험하다보니, 도메인에 대한 책임(로직)도 해당 클래스 안에 있어야 한다는 것을 배웠습니다.
3) 일급 컬렉션 사용에 대한 필요
4) 변수에 자료구조 타입을 사용하지 않는다.
5) 외부에서 컬렉션을 변화시키지 못하도록 read-only로 리턴한다. (Collections.unmodifiableList())
6) 원시 타입을 포장한다. 이로 인해 얻을 수 있는 이점은 상태를 내부 도메인에서 관리할 수 있다.
7) 숫자에는 언더스코어를 적용하여 가독성을 높인다.
8) 상수는 생성자보다 위에 배치한다.
4단계 : 로또(2등)
https://github.com/next-step/java-lotto-pro/pull/171
댓글남기기