소프트웍스 앤솔러지 - 객체지향 생활 체조 학습하기

소프트웍스 앤솔러지 - 목차

객체지향 생활 체조 규칙 알아보기

소프트웍스 앤솔러지 책 내용 중에는 10장 내외로 짧은 내용이지만 따라 하다 보면 자연스럽게 객체지향적인 코드를 작성할 수 있는 좋은 규칙이 있습니다. 책에서는 이 내용을 "객체지향 생활 체조"라는 주제로 다루고 있는데 그 규칙은 총 9가지로 제안하고 있고 나열하면 다음과 같습니다.

 

  1. 한 메서드에 오직 한 단계의 들여 쓰기만 한다.
  2. else 예약어(keyword)를 쓰지 않는다.
  3. 모든 원시 값과 문자열을 포장(wrap)한다.
  4. 한 줄에 점을 하나만 찍는다.
  5. 줄여 쓰지 않는다(축약 금지).
  6. 모든 엔티티(entity)를 작게 유지한다.
  7. 2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
  8. 제일 클래스(first-class) 컬렉션을 쓴다.
  9. 게터getter/세터setter/프로퍼티property를 쓰지 않는다.

책에서 제시하는 객체지향 생활 체조 규칙은 언뜻 보면 간단해 보이지만 실제로 코드에 적용하면 생각보다 간단하지 않다는 것을 쉽게 알 수 있습니다. 개인적인 생각이지만 나 자신 스스로가 객체 지향이라는 것을 잘 안다고는 말할 수는 없어도 못한다고는 생각한 적이 없었는데 그 생각은 오만이었다는 것을 뼈저리게 느끼게 해 준 규칙이라고 생각합니다.. 처음에는 이런 규칙을 지킨다고 해서 무슨 객체지향이야 라고 생각을 가진 적도 있지만 규칙을 지키고 시간이 지날수록 처음에 가졌던 생각은 잘못되었다는 것을 알 수 있었습니다. 지금 이 시점에 이 글을 작성하고 있는 이유도 객체지향 생활 규칙을 글로 정리함으로써 개발을 할 때 습관화할 수 있도록 학습하기 위함입니다.

정리하기

"좋은 설계의 바탕에 있는 핵심 개념은 쉽게 알 수 있다. 예를 들어 보통 중요하다고 알고 있는 7가지 코드 품질 항목, 즉 응집력, 느슨한 결합, 무중복, 캡슐화, 테스트 가능성, 가독성, 그리고 초점이 있다. 하지만 그런 개념을 실제로 펼치기란 어렵다. 캡슐화가 데이터, 구현, 타입, 설계, 또는 생성의 은닉을 가리킨다고 이해하는 것과 캡슐화를 잘 구현하는 코드를 설계하는 것은 별개의 문제다. 그래서 좋은 객체지향 설계의 원칙을 자기 것으로 하고 실생활에서 쓰도록 도와주는 훈련을 소개하려 한다." 

소프트웍스 앤솔러지 - 객체지향 생활 체조 내용 중 일부 발췌

 

개인적인 사견만 적으면 객체지향 생활 체조를 저자가 의도하지 않은 방향으로 받아 들 일 수 있어 본문의 내용 중 서문 부분을 가져왔습니다. 저자가 말한 이야기에서 알 수 있듯이 좋은 설계의 개념을 이해하는 것과 코드를 작성하는 것은 별개의 개념입니다. 그러므로 그 차이를 인지하고 객체지향 생활 체조 규칙을 습관화 함으로써 스스로가 더 좋은 개발자가 될 수 있기를 자신에게 다짐해봅니다. 참고로 박재성님이 운영하고 있는 NEXT-STEP의 TDD, Clean Code with Java를 수강하게 되면서 객체지향 생활 체조를 배우고 익히게 되었습니다.

 

객체지향 생활 체조 내용 정리

 

객체지향 생활 체조 - 규칙 1: 메서드당 들여쓰기 한 번

Photo by Nick Fewings on Unsplash 한 메서드에 오직 한 단계의 들여쓰기만 한다. 이 규칙이 가지는 의미 이 규칙은 언뜻 보기에는 들여쓰기(indent)에 초점을 두고 있는 것처럼 보입니다. 실제로 내용 자체

7942yongdae.tistory.com

 

객체지향 생활 체조 - 규칙 2: else 예약어 금지

else 예약어(keyword)를 쓰지 않는다. 이 규칙이 가지는 의미 일반적으로 개발자라면 if/else 구문을 쉽게 이해할 수 있습니다. 구문 자체가 조건을 나타내는 동시에 간단하기 때문입니다. 그렇다 보

7942yongdae.tistory.com

 

객체지향 생활 체조 - 규칙 3: 원시값과 문자열의 포장

Photo by Viktor Forgacs on Unsplash 모든 원시값과 문자열을 포장(Wrap)한다. 이 규칙이 가지는 의미 "int 값 하나 자체는 그냥 아무 의미 없는 스칼라 값일 뿐이다" 책에서는 이 문장을 시작으로 규칙을 설

7942yongdae.tistory.com

 

객체지향 생활 체조 - 규칙 4: 한 줄에 한 점만 사용

Photo by Xiaofen P on Unsplash 한 줄에 점 하나만 찍는다. 이 규칙이 가지는 의미 "한 줄에 한 점만 사용"이라는 규칙은 단순히 코드를 작성할 때 한 줄에 "." 하나만 사용하라는 말이 아니라 디미터의 법

7942yongdae.tistory.com

 

객체지향 생활 체조 - 규칙 5: 축약 금지

줄여쓰지 않는다. (축약 금지) 이 규칙이 가지는 의미 int numCnt = 4; for(int i = 0; i < list.size(); i++) { ... } String btnText = "hello world"; 프로그래밍을 하다 보면 자주 보게 되는 변수명들이 있는..

7942yongdae.tistory.com

 

반응형

댓글

Designed by JB FACTORY