[객체지향의 사실과 오해] 책임과 메시지 -1

2025. 3. 29. 15:38·📚 개발자의 서재/객체지향의 사실과 오해
해당 포스팅은 조영호 작가님의  객체지향의 사실과 오해 (P.138~145)를 읽고 정리한 글입니다.

 

자율적인 책임

설계의 품질을 좌우하는 책임

객체지향 공동체를 구성하는 기본 단위는 '자율적'인 객체다.

 

자율적인 객체란 스스로 정한 원칙에 따라 판단하고 스스로의 의지를 기반으로 행동하는 객체다.

 

객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. 따라서 자율적인 객체란 스스로의 의지와 판단에 따라 맡은 책임을 수행하는 객체를 의미한다.

 

자신의 의지에 따라 증언할 수 있는 자유

객체가 책임을 자율적으로 수행하기 위해서는 객체에게 할당되는 책임이 자율적이어야 한다.

 

요청에 의해 행동해야 할 책임은 있지만 그것을 어떻게 처리할지는 그 객체가 결정하게 된다. 즉, 요청한 객체는 구현세부사항을 알 필요가 없다. 이렇게 되면 요청하는 객체는 요청이 자유로워진다.

 

만약 너무 구체적인 요청은 수행하는 객체의 자율성을 떨어뜨리고 해당 요청에 의존하게 만들게 된다. 그리고 요청을 하는 객체도 어떻게 처리해야 할 매뉴얼을 다 알아야 하는 문제가 발생하게 된다.

 

객체가 자율적이기 위해서는 객체에게 할당되는 책임의 수준 역시 자율적이어야 한다.

 

너무 추상적인 책임

책임이 수행 방법을 제한할 정도로 너무 구체적인 것도 문제지만 협력의 의도를 명확하게 표현하지 못할 정도로 추상적인 것 역시 문제다.

 

추상적이고 포괄적인 책임은 협력을 좀 더 다양한 환경에서 재사용할 수 있도록 유연성이라는 축복을 내려준다. 하지만 책임은 협력에 참여하는 의도를 명확하게 설명할 수 있는 수준 안에서 추상적이어야 한다. 즉, 자율성을 보장할 수 있을 정도로 충분히 추상적인 동시에 협력의 의도를 뚜렷하게 표현할 수 있을 정도로 충분히 구체적이어야 한다.

저작자표시 비영리 변경금지 (새창열림)

'📚 개발자의 서재 > 객체지향의 사실과 오해' 카테고리의 다른 글

[객체지향의 사실과 오해] 책임과 메시지 -3  (0) 2025.03.31
[객체지향의 사실과 오해] 책임과 메시지 -2  (0) 2025.03.30
[객체지향의 사실과 오해] 역할, 책임, 협력 -4  (0) 2025.03.28
[객체지향의 사실과 오해] 역할, 책임, 협력 -3  (0) 2025.03.27
[객체지향의 사실과 오해] 역할, 책임, 협력 -2  (0) 2025.03.26
'📚 개발자의 서재/객체지향의 사실과 오해' 카테고리의 다른 글
  • [객체지향의 사실과 오해] 책임과 메시지 -3
  • [객체지향의 사실과 오해] 책임과 메시지 -2
  • [객체지향의 사실과 오해] 역할, 책임, 협력 -4
  • [객체지향의 사실과 오해] 역할, 책임, 협력 -3
l'avenirJun
l'avenirJun
  • l'avenirJun
    오늘도 꾸준히 개발
    l'avenirJun
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 📚 개발자의 서재 N
        • 객체지향의 사실과 오해
        • Good Code, Bad Code
        • 도메인 주도 개발 시작하기 N
      • 🔧 트러블 슈팅
      • Java
      • Spring
      • 운영체제
        • 공룡책 학습
      • 알고리즘
      • GIT
      • 면접 지식
      • Spring 단기심화 2기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    책임
    모듈화
    specification
    오블완
    도메인 모델
    역할
    가독성
    코드트리
    애그리거트
    DIP
    객체
    메시지
    표현 영역
    캡슐화
    티스토리챌린지
    코딩트리조별과제
    리포지터리
    코드 계약
    유스케이스
    인터페이스
    good code bad code
    애그리거트 루트
    책임-주도 설계
    매핑 구현
    타입
    도메인 주도 개발 시작하기
    추상화
    코딩테스트
    객체지향의 사실과 오해
    협력
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
l'avenirJun
[객체지향의 사실과 오해] 책임과 메시지 -1
상단으로

티스토리툴바