JoungSik/루비로 배우는 객체지향 디자인 9장

Created Wed, 01 Dec 2021 20:56:18 +0900 Modified Sat, 31 Dec 2022 01:31:35 +0900
860 Words

루비로 배우는 객체지향 디자인

처음 구매 했을때는 주변 루비 개발자분들이 좋은책 이라고 해서 구매했지만 막상 읽지를 않고 책장에 꽃혀있던 책을 블로그 포스팅을 위해 꺼내서 읽었습니다.

작성은 각 장에서 깨달은 내용을 적을 예정이고 총 9장까지 있습니다.

책 제목은 루비지만 꼭 루비가 아니더라도 객체지향 디자인을 원하는 사람에게는 좋은 책이라는걸 느꼈습니다.

9. 비용-효율적인 테스트 디자인하기

처음부터 마지막까지 꾸준히 목표로 하고 있는 수정하기 쉬운 코드를 작성하려면 세가지 기술이 필요합니다.

  1. 객체지향 디자인을 이해하고 있어야 합니다.
  2. 코드를 리펙토링 하는 법을 익혀야 합니다.
  3. 높은 수준의 테스트를 짤 수 있어야 합니다.

이를 한 문장으로 요약하면 이렇게 됩니다.

잘 디자인된 코드는 수정하기 쉽고, 리펙토링은 하나의 디자인을 외적인 작동방식을 바꾸지 않고 다른 디자인으로 변형시키는 방법이며 테스트는 이런 리펙토링의 두려움에서 우리를 해방시켜 줍니다.

테스트를 처음 작성하는 초보 디자이너는 테스트를 통해 얻는 이익보다 테스트를 작성하는데 들이는 비용이 클때 테스트를 작성하는 상황을 불편하게 생각하고 테스트가 유용한지에 대한 검증을 하고 싶어 합니다. 왜냐면 테스트 없이도 충분히 생상적인 상태였는데 테스트를 먼저 작성하면서 벽에 부딛치게 되고 결과물이 재대로 나오지 않기 때문입니다.

그러나 이때 테스트를 그만 두는게 아닌 테스트를 더 잘 짤 수 있도록 수련하는게 좋습니다. 왜냐면 테스트는 여러 이점을 가져다 주기 때문에 입니다.

  • 버그 찾기
  • 문서 제공하기
  • 디자인 결정 미루기
  • 추상화 돕기
  • 디자인의 결점 들어내기

테스트를 먼저 작성하면서 얻는 이점 입니다.

테스트를 처음에는 너무 과하게 짜는 경향이 있습니다. 이보다는 더 나은 가치를 얻기 위해 테스트를 적게 작성하는게 좋습니다. 모든 것을 단 한번만 테스트하고 재대로 된 곳에서 테스트 해야 합니다.

뒤의 내용은 실제 테스트를 진행하게 될 때의 방법에 대해 설명되어 있습니다.

이렇게 마지막장인 9장까지 살펴보았습니다. 객체지향 디자인을 설명하기 위한 코드를 루비로 작성했을뿐이지 그 내용 자체는 객체지향에 대해서 공부하는 사람들에게 좋은 영감을 준다고 느꼈습니다.

루비를 하지 않더라도 이론과 생각만으로도 충분히 큰 도움이 되는 책이였습니다.