주식 거래소를 운영하고 있다고 가정한다. 현재는 USD만 지원하지만 Franc도 지원하게 수정하고 싶다. 앞으로의 과정들은 이것을 설명한다.목록에서 구현을 시작하는 부분은 굵게, 끝난 부분은 줄을 그을 것이다.< 현재 구현해야할 목록 >$5 + 10CHF = $1
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림테스트는 통과했지만 해당 Dollar의 값이 영원히 바뀌어 버린다. 아래와 같은 기능을 사
우리는 어떤 정수에 1을 더했을 때 원래 정수가 변한다고 생각하기 보다는 원래 정수에 1이 더해진 새로운 값을 갖게 될 것을 예상한다. 하지만 객체는 우리 예상대로 작동하지 않는다.< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object개념적으로 Doll
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object첫번째 할 일을 구
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object\~~ 5CHF \
영어 속담에 "You can't compare apples and oranges"란 말이 있다\-> 서로 다른 걸 비교할 수 없다는 뜻< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 privat
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object\~~ 5CHF \
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object\~~ 5CHF \
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object\~~ 5CHF \
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object\~~ 5CHF \
< 현재 구현해야할 목록 >$5 + 10CHF = $10 (환율이 2:1일 경우)$5 \* 2 = $10amount를 private로 만들기Dollar 부작용Money 반올림equals()hashCode()Equal nullEqual object\~~ 5CHF \
모든 중복을 제거하기 전에는 $5 + $5 테스트에 완료표시를 할수 없다.\-> 코드 중복은 없지만 데이터 중복이 있다.Bank의 Money.dollar() 부분과 Test의 five.plus 부분이 같다.중복을 없애기 위해서 우선은 테스트를 아래와 같이 고친다.au
이제 달러가 아닌 프랑을 이야기해보자.아래와 같이 간단한 테스트를 작성할 수 있다.Money에서 프랑을 달러로 변환할 때 단순히 나누기 2를 하는 코드를 작성한다.Money가 환율을 어떻게 계산하는지 알게 됐다. 참 별로인 코드다. 하지만 우선 작성하자.이제 Bank에
드디어 이 모든 작업의 시초인 $5 + 10CHF에 대한 테스트를 추가할 준비가 됐다.하지만 현재는 에러가 많다.천천히 하나씩 고쳐나가자.통과한다. 이제 Expression이어야 하는 Money들을 없앨 수 있다.우리는 지금까지원하는 테스트를 작성하고 한 단계에 달성할
Expression.plus를 끝내려면 Sum.plus()를 구현해야 한다. 그리고 Exprssion.times()를 구현하면 전체 예제가 끝난다.Sum.plus()에 대한 테스트를 작성하자.Sum 클래스도 수정하자.지금가지 우리는 미래에 코드를 읽은 다른 사람들을 염