본문 바로가기

전체 글31

볼링게임 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.
[OKKYCON: 2018] 자바지기(박재성)- TDD 의식적으로 연습하기 의식적인 연습이란? 많은 연습은 역량을 보장하지 않는다. 그렇기에 온전히 집중하고 '의식적' 으로 행동할 것을 요구한다. 컴포트 존을 벗아난 지점에서 진행, 자신의 현재 능력을 살짝 넘어가는 작업을 지속적으로 시도한다. 명확하고 구체적인 목표를 가지고 진행한다. 피드백과 피드백에 따른 행동 변경을 수반한다. (코드리뷰, 짝 프로그래밍) 기존에 습득한 기술의 특정 부분을 집중적으로 개선함으로써 발전시키고, 수정하는 과정을 거친다. 자바 코드 컨벤션을 지키면서 프로그래밍한다. https://google.github.io/styleguide/javaguide.html indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. while 문 안에 if문이 있으면 들여쓰기는 2이다. indent d.. 2020. 9. 20.