DKU-STUDY / InfoBoard

여러가지 정보를 공유하는 repository
https://dku-study.github.io/InfoBoard/
3 stars 0 forks source link

객체지향 생활 체조 원칙 #13

Open JunilHwang opened 4 years ago

JunilHwang commented 4 years ago

객체지향 생활체조 원칙이란?

객체지향 생활 체조 원칙은 소트웍스 앤솔러지 책에서 다루고 있는 내용으로 객체지향 프로그래밍을 잘 하기 위한 9가지 원칙을 제시하고 있다. 이 책에서 주장하는 9가지 원칙은 다음과 같다.

왜 객체지향 생활 체조 원칙인가?

객체지향 설계와 구현은 수학 공식을 외워서 문제를 푸는 것과 달리 이론을 안다고 해도 이 이론을 설계와 구현에 녹여내려면 지속적인 수련이 필요한 영역이다.

여기서 수련이라는 의미는 어느 누구나 야구공을 던지는 이론은 다 알고 있지만 이론을 안다고 누구나 다 프로선수 처럼 공을 던질 순 없고 지속적인 훈련(수련)을 통해서만 가능하다.

많은 개발자들이 지속적인 수련이 중요하다는 것은 알기 때문에 객체지향 설계와 구현 연습에 도전한다. 하지만 객체지향 설계를 다루고 있는 대부분의 책이 추상적인 이론을 다루고 있기 때문에 초보 개발자는 몇 번 도전 후에 포기하는 상황이 발생한다.

특히 어려운 점은 소스 코드 중 문제가 있는 부분을 찾는 것이다. 어떻게 리팩토링할 것인지는 그 다음 이슈이다. 개선할 부분을 찾지도 못하는 개발자들에게 아무리 객체지향 설계와 구현과 관련한 이론을 제시해도 무용지물이다.

객체지향 생활 체조 원칙은 추상적인 가이드가 아니라 구체적인 가이드를 제시하고 있다. 따라서 초보 개발자도 코드 중에서 리팩토링할 부분(Bad Smell이 있는 부분)이 있는 코드를 쉽게 찾을 수 있으며, 도전해 볼 수 있다.

예를 들어 "규칙 1: 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다."는 정말 구체적이다. 코드 중 들여쓰기가 2 이상인 코드가 있다면 그 부분을 어떻게 리팩토링할 것인지 고민하면 된다.

이와 같이 구체적인 가이드를 통해 꾸준히 수련하다보면 어느 순간 객체지향 설계와 관련한 추상적인 이론들이 이해되는 시점이 찾아온다.