ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [객체지향의 사실과 오해] 01장: 협력하는 객체들의 공동체
    객체지향 2020. 4. 27. 11:54

    객체지향의 사실과 오해라는 책을 시작했다.

    이 책을 읽게 된 계기는 7년정도 자바를 다루는 일을 해오면서 신입 땐 객체라는 것이 무엇인지 잘 모른다고 생각하고, 오히려 4-5년차일 때는 객체지향을 설명할 수 있다고 여기다가, 요즘 들어서 내가 객체 지향을 제대로 이해하고 있는 것이 맞는 것인가? 라는 고민에 빠졌기 때문이다. 

     

    또한 JPA 공부를 해가면서 데이터베이스의 객체화 라는 말을 많이 쓰고 듣고 있는데, 과연 객체도 정확하게 이해하지 못한 내가 데이터베이스를 객체화 하는 것을 공부하는 것이 순서에 맞는가 라는 생각이 들어서이다.

     

    일단 책을 회사 책방에서 빌려서 펼쳤다.

     

    처음은 객체지향을 단순하게 정의한다. 그리고 그 정의가 충분하지 않았음을 말한다.

    단순하게 정의하는 방법은 다음과 같다. 객체라는 것을 이용해 실세계를 모방한 새로운 세계를 표현한다.

     

    틀리다고 말할 수 없는 정의다. 틀리지 않았다. 하지만 맞다라고 말하기엔 조금 부족하다.

    책에서는 커피를 사러가는 일화를 들려주며 객체 지향에 대한 설명을 시작한다. 고객이 커피전문점에 도착한다.

    등장인물은 세명이다. 고객, 주문을 받는 캐셔, 커피를 만드는 바리스타.

     

    그 세명의 역할과 책임을 이야기 하면서 객체라는 것으로 실생활을 재설계 하는 것을 설명한다. 결국 손님객, 몸체 라는 한자 의미를 이용한다면 객체라는 가상의 단위를 만들어서 그에 역할과 책임을 주어, 그 객체들로 상호관계를 이루는 실세계를 모방한 세계를 만드는 것을 객체지향이라고 정의할 수 있을 것 같다.

     

    하지만 이도 불충분한 설명이다. 역할과 책임을 주었지만, 그 역할에는 자율성이 있고, 다른 객체는 그 객체의 행동에 대해 간섭하지 않는다. 객체지향적으로 설계된 코드는 코드가 실행될 당시에 행동을 결정한다. 앞서 간섭하지 않는다. 알지 못한다는 캡슐화와 관련이 있고, 행동은 코드가 실행될 당시에 결정된다는 것은 많은 종류의 행동이 있을 수 있다는 전제를 가지고 있으므로 다형성을 뜻한다.

     

    내가 이해한 내용은 위와 같다. 책을 읽은 후 덮고 썼기 때문에 제대로 이해했는지는 모르겠다.

    아마도 이 글을 읽은 사람이 그건 아니야 라고 말해주거나, 책을 다시 한번 읽으면서 다른 깨달음이 온다면 수정할 것이다.

    반응형
Designed by Tistory.