오늘 아침에 문제 3개를 풀었다. 하나는 어제 효율성 통과 못 했던 것을 다른 사람 풀이를 참조하고 다시 풀었다. 그 문제는 큰 수 만들기라는 문제였다. 그 후에 구명보트라는 문제를 풀었다. 정확성은 다 통과됐지만 효율성을 하나도 통과를 못 시켰다. nlogn으로 풀어야 했는데 nlogn 이상으로 시간 복잡도로 풀었더니 안됐다. 마지막에는 짝 프로그래밍으로 다트 게임을 풀었다.
오후에는 객체지향의 사실과 오해 그룹 스터디를 했다. 6장에 대한 스터디를 했다.
NextStep 문익점 ”내가 TDD, 리팩토링에 집착하는 이유”와 ”학습 테스트와 단위 테스트” 동영상을 시청했다. 시청 후 1단계 - 학습 테스트 실습을 했다. 테스트로 함수들이 어떻게 동작하고 어느 경우에 터지는지 테스트로 이것저것 넣어보고 공부했다.
Feelings
효율성 문제는 너무 어렵다. 그래도 쀅 앤드가 되려면 해야 한다. 효율 문제 풀었었는데 내 코드가 다른 사람에 비해 300배 더 걸렸다. 효율이 300배 차이 나면 돈이 300배 차이다. 끔찍하다.
티뒤뒤~ 뒤뒤뒤~ 알뒤뒤~ 클뒤뒤~ 피뒤뒤~
Findings
‘a’는 char이고 “a”는 String type이다.
tdd란 프로그래밍 의사 결정과 피드백 사이의 간극을 의식하고 이를 제어하는 기술이다.
TDD는 테스트 기술이 아니라 분석 기술이며, 설계 기술이다.
TDD 사이클은 test실패로 시작해서 test 통과 시킨후에 리펙토링한다. 그후에 다시 반복한다.
TDD의 핵심은 큰 단위를 작은 단위로 나눠 빠르게 실패하고 피드백을 통해 지소고적으로 개선, 달성하기 힘들 것으로 생각하는 일에 도전할 수 있는 용기이다.
Future Action
짝 프로그래밍을 자주 안 했더니 소통의 방법을 잊어버렸다. 다음에는 소통의 능력을 더 키우기 위해서 짝 프로그래밍을 자주 해야 할 것 같다.