소프트웍스 앤솔러지 - 객체지향 생활 체조 학습하기
- 프로그래밍/객체지향 생활 체조 원칙
- 2021. 3. 27.
객체지향 생활 체조 규칙 알아보기
소프트웍스 앤솔러지 책 내용 중에는 10장 내외로 짧은 내용이지만 따라 하다 보면 자연스럽게 객체지향적인 코드를 작성할 수 있는 좋은 규칙이 있습니다. 책에서는 이 내용을 "객체지향 생활 체조"라는 주제로 다루고 있는데 그 규칙은 총 9가지로 제안하고 있고 나열하면 다음과 같습니다.
- 한 메서드에 오직 한 단계의 들여 쓰기만 한다.
- else 예약어(keyword)를 쓰지 않는다.
- 모든 원시 값과 문자열을 포장(wrap)한다.
- 한 줄에 점을 하나만 찍는다.
- 줄여 쓰지 않는다(축약 금지).
- 모든 엔티티(entity)를 작게 유지한다.
- 2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
- 제일 클래스(first-class) 컬렉션을 쓴다.
- 게터getter/세터setter/프로퍼티property를 쓰지 않는다.
책에서 제시하는 객체지향 생활 체조 규칙은 언뜻 보면 간단해 보이지만 실제로 코드에 적용하면 생각보다 간단하지 않다는 것을 쉽게 알 수 있습니다. 개인적인 생각이지만 나 자신 스스로가 객체 지향이라는 것을 잘 안다고는 말할 수는 없어도 못한다고는 생각한 적이 없었는데 그 생각은 오만이었다는 것을 뼈저리게 느끼게 해 준 규칙이라고 생각합니다.. 처음에는 이런 규칙을 지킨다고 해서 무슨 객체지향이야 라고 생각을 가진 적도 있지만 규칙을 지키고 시간이 지날수록 처음에 가졌던 생각은 잘못되었다는 것을 알 수 있었습니다. 지금 이 시점에 이 글을 작성하고 있는 이유도 객체지향 생활 규칙을 글로 정리함으로써 개발을 할 때 습관화할 수 있도록 학습하기 위함입니다.
정리하기
"좋은 설계의 바탕에 있는 핵심 개념은 쉽게 알 수 있다. 예를 들어 보통 중요하다고 알고 있는 7가지 코드 품질 항목, 즉 응집력, 느슨한 결합, 무중복, 캡슐화, 테스트 가능성, 가독성, 그리고 초점이 있다. 하지만 그런 개념을 실제로 펼치기란 어렵다. 캡슐화가 데이터, 구현, 타입, 설계, 또는 생성의 은닉을 가리킨다고 이해하는 것과 캡슐화를 잘 구현하는 코드를 설계하는 것은 별개의 문제다. 그래서 좋은 객체지향 설계의 원칙을 자기 것으로 하고 실생활에서 쓰도록 도와주는 훈련을 소개하려 한다."
소프트웍스 앤솔러지 - 객체지향 생활 체조 내용 중 일부 발췌
개인적인 사견만 적으면 객체지향 생활 체조를 저자가 의도하지 않은 방향으로 받아 들 일 수 있어 본문의 내용 중 서문 부분을 가져왔습니다. 저자가 말한 이야기에서 알 수 있듯이 좋은 설계의 개념을 이해하는 것과 코드를 작성하는 것은 별개의 개념입니다. 그러므로 그 차이를 인지하고 객체지향 생활 체조 규칙을 습관화 함으로써 스스로가 더 좋은 개발자가 될 수 있기를 자신에게 다짐해봅니다. 참고로 박재성님이 운영하고 있는 NEXT-STEP의 TDD, Clean Code with Java를 수강하게 되면서 객체지향 생활 체조를 배우고 익히게 되었습니다.
객체지향 생활 체조 내용 정리
'프로그래밍 > 객체지향 생활 체조 원칙' 카테고리의 다른 글
객체지향 생활 체조 - 규칙 5: 축약 금지 (6) | 2021.04.16 |
---|---|
객체지향 생활 체조 - 규칙 4: 한 줄에 한 점만 사용 (16) | 2021.04.10 |
객체지향 생활 체조 - 규칙 3: 원시값과 문자열의 포장 (6) | 2021.04.08 |
객체지향 생활 체조 - 규칙 2: else 예약어 금지 (11) | 2021.03.30 |
객체지향 생활 체조 - 규칙 1: 메서드당 들여쓰기 한 번 (4) | 2021.03.28 |