효과적으로 TDD, 리팩토링, OOP를 연습하는 방법

1 분 소요

평소에 어떻게 하면 효과적으로 OOP를 학습할 수 있을까 에 대해 고민을 하고 있던 중 코드스퀘어 블로그의 효과적으로 TDD, 리팩토링, OOP를 연습하는 방법은? 을 보게 되었다.

위의 블로그에서는 소트웍스 앤솔러지 책에서 다루고 있는 객체지향 생활 체조 9가지 원칙을 통해서 OOP 연습 방법을 제시해 주고 있다.

1단계 연습은 메소드(함수)를 분리하는 연습이다. 메소드를 분리하는 연습을 할 때 사용하기 적합한 원칙은 다음과 같다.

  • 규칙 1: 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다.
  • 규칙 2: else 예약어를 쓰지 않는다.
  • 9가지 원칙에 포함되어 있지는 않지만 “메소드의 라인 수를 10라인을 넘지 않는다.”와 같은 원칙을 추가하는 것도 좋다. 라인 수는 프로그래밍 언어, 자신의 도전 단계에 따라 조정해 나갈 수 있다.

메소드 분리에 대한 자신감이 생겼다면 다음 단계는 객체를 분리하는 연습이다. 객체를 분리하는 연습을 할 때 적합한 원칙은 다음과 같다.

  • 규칙 3: 모든 원시값과 문자열을 포장한다.
  • 규칙 6: 모든 엔티티를 작게 유지한다.
  • 규칙 7: 2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
  • 규칙 8: 일급 콜렉션을 쓴다.

마지막 단계로 객체 지향의 참맛을 느끼고 깔끔한 코드(clean code)를 구현하기 위한 원칙을 연습하는 것에 도전한다.

  • 규칙 4: 한 줄에 점을 하나만 찍는다.
  • 규칙 5: 줄여쓰지 않는다(축약 금지).
  • 규칙 9: 게터/세터/프로퍼티를 쓰지 않는다.

위의 9가지의 원칙을 지키면서 코딩하기란 쉽지 많은 않다. 위의 원칙을 지키면서 코드 작성을 하기 위해선 지속적인 리팩토링으로 구조를 변경해 나가야 하며, 리팩토링을 하기 위한 선행 조건은 자동화된 단위테스트이다. 따라서 이 원칙을 지키기 위한 노력은 자연스럽게 TDD, 리팩토링, OOP 연습을 할 수 있다.

필자는 기존에 주로 SI프로젝트를 진행하다보니 코드 품질보다는 빡빡한 일정안에서 기능구현을 위주로 코딩을 하게되었다. 그로인해 TDD, 리팩토링, OOP와는 거리가 멀었다. 앞으로 객체지향 생활체조를 통해 보다 책임감있는 코드를 작성할 수 있게 되었으면 한다.

태그: , ,

카테고리:

업데이트:

댓글남기기