본문 바로가기

TDD6

볼링게임 TDD [3] 볼링게임 TDD[3] 을 끝으로 볼링게임 TDD를 마무리하려고 한다. 우선 남은 할 일 목록을 정리해보자. [] 볼링 점수 계산기를 만든다. (스트라이크, 스페어를 고려한다.) [] 투구(pitch) 후 쓰러진 pin은 BowlingScore에 전달되어야 한다. [] 볼링을 상속받는 객체로는 볼링 플레이어와 볼링 점수 계산기가 존재한다. (플레이어와 점수 계산기는 1 : 1 관계를 갖는다.) [] 점수 계산기를 통해 계산된 점수는 점수 표출기를 통해 점수를 볼 수 있어야 한다. 잘 못된 할 일 목록과 불 필요한 목록은 정리하고 볼링게임을 완성하기 위한 할 일 만 남겨두도록 하겠다. [] 스트라이크, 스페어등 볼링 룰을 적용한다. [] 점수 계산기를 통해 최종 점수를 계산해야 한다. [] 최종 점수는 점수.. 2020. 10. 3.
볼링게임 TDD [2] [v] 실패하는 테스트를 만들고 스텁으로 우선 빠르게 테스트를 작성할 것 이다. [v] 볼링 객체를 만든다. [v] 볼링 객체는 10개의 핀을 가지고 있고 21번의 투구 기회가 있다. [v] 볼링의 프레임은 총 10 프레임이고 한 프레임이 끝나면 핀의 갯수는 10개로 초기화된다. [v] 투구 2번 끝나면 한 프레임도 끝낸다. 단 마지막 프레임은 3번의 투구가 필요하다. [v] 볼링의 프레임과 핀은 점수 계산기와 연관이 있는데 이것은 나중에 생각해본다. [] 볼링을 상속받는 객체로는 볼링 플레이어와 볼링 점수 계산기가 존재한다. (플레이어와 점수 계산기는 1 : 1 관계를 갖는다.) [] 점수 계산기를 통해 계산된 점수는 점수 표출기를 통해 점수를 볼 수 있어야 한다. [] 투구(pitch)는 Bowlin.. 2020. 10. 2.
볼링게임 TDD [1] TDD를 공부하면서 TDD를 활용한 볼링게임을 구현해보기로 하였다. 아래의 할 일 목록 은 구현에 앞서 생각해본 볼링게임을 객체지향적으로 나태 내기 위한 방법이다. 이 방법이 정답은 아니지만 할 일 목록을 생각하면서 내가 어떤 구현을 해나갈지 명확해졌다. 다만 아직은 할 일을 작은 단위로 나누지 못한 것 같아서 우선 할 수 있는 것부터 하기로 했다. 할 일 목록 [ ] 볼링 객체를 만든다. [ ] 볼링의 하위 객체로는 볼링 플레이어와 볼링 점수 계산기가 존재한다. (플레이어와 점수 계산기는 1 : 1 관계를 갖는다.) [ ] 점수 계산기를 통해 계산된 점수는 점수 표출기를 통해 점수를 볼 수 있어야 한다. [ ] 볼링의 프레임과 핀은 점수 계산기와 연관이 있는데 이것은 나중에 생각해본다. [ ] 실패하는.. 2020. 9. 30.
[OKKYCON: 2018] 이규원 - 당신들의 TDD가 실패하는 이유 엔지니어링은 사이언스가 아니다. 프로그래머는 사이언스보단 엔지니어링에 훨씬 가깝다. 과학적 이론, 과학적 방법론을 가지고 정해진 시간, 정해진 인력, 정해진 자금 안에서 해결해야 한다. TDD 실패하는 사람들의 테스트 구현 테스트를 한다. 테스트들이 내부 코드들을 알고 있다. Mock을 많이 사용한다. Mock은 대부분 스텁이나 스파이를 위해 쓰는데 간접적이다. 우리가 제어할 수 없는 것 현실 세계 인프라 외부 서비스 레거시 우리가 보호해야 하는 것 AWS Spring Domain TDD 성공을 위한 방법 목적 소프트웨어 사용자에게 어떤 가치를 전달할 것인가? 명확한 정의가 중요하다. 분석 목적을 달성하기 위해 소프트웨어에 어떤 변경이 필요한가? 설계 낮은 결합 높은 응집 도메인 모델 보호 프로세스 : .. 2020. 9. 26.