ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [독서] 객체지향의 사실과 오해 1장
    책 리뷰 2024. 4. 2. 02:07

    조영호 지음
    🐯표시는 기존의 지식이나 생각을 덧붙인 것이다.

    1장 역할, 책임, 협력관계에서 본 객체지향


    객체들의 모임이란
    역할, 책임, 협력해야 하는 동적인 공동체이며
    이 공동체를 시스템이라고 한다.
    우리는 이 시스템을 작은 단위로 분할, 즉 객체로 분할하여 재사용할 수 있고 유지보수하기 쉽게 구성해야 한다.

    🐯유지보수와 재사용은 비용효율적이다.
    비용에는 시간도 포함이다.


    그리고 이러한 역할, 책임, 협력을 할 때 취하는 행위가 나오는 동시에 객체에는 상태가 존재한다.

    🐯앞으로 나아가기 위해 서있는 상태에서는 걸어가고 엎드린 상태에서는 기어가듯, 행위를 할 땐 항상 상태가 존재한다. 역할이 주어지면 그에 따른 책임이 존재하는 것처럼 말이다.


    객체의 덕목 : 협력적, 자율적
    Object같은 최고수준의 객체는 협력하지 않아도 전부 다룰 수 있을 것 같지만 결국 그 안의 복잡도로 인해 자멸한다. 그러므로 객체는 충분히 협력적이어야 한다.
    바리스타에 따라 커피제조를 스스로 다른 방법으로 할 수 있듯이, 송신자 객체가 메시지를 전송하면 수신자 객체가 요청에 응답할 때 자율적으로 판단하여 적절한 메서드를 선택할 수 있다.

    객체의 자율성을 보장하는 방식

    1. 전통적인 개발과 달리 데이터와 프로시저를 객체란 하나의 틀에 함께 넣어둔다. 캡슐화(encapsulation)

    🐯캡슐화는 정보은닉이다. 바리스타가 어떻게 커피를 제조할지에 대해 캐셔가 간섭하지 않듯 객체끼리는 그 내부 동작에 대해 알 수 없다.


    2. 외부요청인 메시지 전송과 요청을 처리하기 위한 구체적인 방식인 메서드를 판단한 후의 응답은 "분리"되어있다. 메시지와 메서드의 분리.

    절차지향적인 언어에서는 프로시저 호출에 대한 실행코드를 컴파일 단계에서야 하지만, 객체지향 언어는 메시지를 받은 후 요청에 따라 어떤 메서드를 쓸지는 미리 정해진 방식에 맞춰 반응한다.

    객체지향에서 정적인 관계를 가진 클래스는 구현을 위한 구성요소(construct)이지, 핵심이 아니다. 동적인 객체들간의 협력구조와 책임을 식별하는 게 우선이다.

    🐯구성요소는 component로 알고 있었는데 construct도 똑같이 책에서 쓰여 궁금했다.
    찾아보니 construct는 명사형으로 "구를 이루는 단어들"로도 쓰였다.

    절차부·제어부 또는 식별자, 명령문 등 구문상의 필요한 기술(설명)을 하기 위해 쓰이는 구성요소는 construct.

    디버깅의 최소단위, 컴퓨터 장치, 독립된 역할을 하는 모니터나 컴파일러, 데이터 속성을 나타내는 개체 등을 component라고 부름을 찾았다.




    2장 이상한 나라의 객체

    '책 리뷰' 카테고리의 다른 글

    [독서] 객체지향의 사실과 오해 2장~7장  (1) 2024.06.27
Designed by Tistory.