객체 지향 설계 연습하기 - 블랙잭 (13)
들어가며
- 업무에 Java를 사용하고 있지만, 깊은 이해도가 부족하다는걸 절감.
- 단순 객체 생성 및 비즈니스 로직 구현에만 매달리고 있음. 회의감이 듦.
- 신규 개발 뿐만 아니라 유지 보수 및 리팩토링시 객체 지향의 묘미를 살려보고자 함
- 객체 지향적 시야와 사고는 연습뿐이라는 것을 여러 커뮤니티에서 수집
- 객체 지향 설계 연습을 통해 객체 지향적 시야와 이해력을 높이고지 함
정신이 없습니다.
TEST 코드 없이는 기능 코드를 작성하지 않으려 했지만… 테스트 코드 작성하고, 기능쪽을 보니 바꾸고 싶은게 태산이고… 왔다 갔다 왔다 갔다… 정신은 없고… 지키고자 했던 원칙은 온데 간데 없습니다…
다만 한가지는 분명합니다. 작성되 있던 기능을 이렇게 저렇게 바꾸고 전체 테스트를 돌려보면 이전에 작성해놨던 회귀 테스트들이 제기능을 다하고 있습니다. 아주 조그만 변경이라도 미리 작성해놨던 든든한 회귀 테스트가 있다면, 사소한 변경이라도 안심하고 변경한 뒤 테스트를 통해
피드백
을 받을 수 있다는 것입니다.
오늘은 테스트 코드 먼저 까볼게요!
![20180412-blackjack-v3-testcase.JPG][./20180412-blackjack-v3-testcase.JPG]
gist:ppzxc/c0b59dad90a350514c7fef0b18f18c8f#1.java
gist:ppzxc/c0b59dad90a350514c7fef0b18f18c8f#2.java
gist:ppzxc/c0b59dad90a350514c7fef0b18f18c8f#3.java
gist:ppzxc/c0b59dad90a350514c7fef0b18f18c8f#4.java
gist:ppzxc/c0b59dad90a350514c7fef0b18f18c8f#5.java
소스코드
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#1.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#2.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#3.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#4.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#5.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#6.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#7.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#8.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#9.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#10.java
gist:ppzxc/b0f9c120d73fea5e5ae6f0288acc8852#11.java
오늘까지의 후기
- 그때 그때 시간 날때마다 조금씩 고치며 적용해보고 있는거라 진도가…
- 사실.. 마음에 안들어서 폐기, 코드 버리고 다시, 다시, 다시,,
- 다만 V3는 TDD를 적용해 저 스스로 객체 지향적 원칙을 적용하려 노력하며 짜다보니, 상당히 안정적인 느낌이 듭니다.
- 이런 느낌이라는 것도… 느낌 보다는 확신이나 증거, 증명이 필요할텐데 말입니다…
- 음…