ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [객체지향의 사실과 오해] 03장: 타입과 추상화
    객체지향 2020. 5. 3. 15:38

    이번 챕터는 연휴의 시작과 함께 읽기 시작하여, 물리적인 날짜는 굉장히 길었던 챕터이다.

    타입과 추상화는 제목하고 순서가 다르게 추상화부터 시작한다.

     

    지하철 노선도의 추상화를 통해서 추상화라는 것에 대한 개념을 설명한다. 우리가 쓰고 있는 지하철 노선도는 실제 지형과 위치와는 다르다. 대신 우리가 편하게 환승할 수 있게 도식화하여 볼 수 있게 간편하게 표현하고 있다. 객체지향이라는 세계에서, 현실세계를 모방한 새로운 세계를 창조하는데 필요한 것은 추상화이다. 객체라는 것은 역할을 가지고 서로 협력하고, 상태와 행동, 식별자를 가지고 있다. 하지만 인간 세상의 모든 물건이나 개념을 상태와 행동, 식별자로 정의하는 것은 쉽지 않다. 사용자의 입맛에 맞게 추상화 과정을 통해 간소화하는 과정을 거쳐야만 한다.

     

    추상화를 위한 방법은 두가지가 있다.

    첫번째는 사물 간의 공통점은 취하고, 차이점은 버리는 일반화가 필요하다.

    두번째는 불필요한 세부사항은 버리는 것이다.

     

    어렵게 써놨지만 종합하면 오히려 단순하다. 입맛에 필요한 부분만 취하라. 그리고 단순화하라.

     

    그리고 개념이라는 단어를 통해, 객체를 설명하고자 한다.

    개념은 우리 생활에서 개념원리 수학과 같은 유명한 책들과 같이, 이미 많이 쓰이고 있는 단어이다. 하지만 객체를 설명하는데 있어서 개념은 조금 더 일반적인 이야기를 하고자 한다. 그리고 그 개념을 타입으로 이야기 하고 있다.

     

    개념과 타입. 그럼 혼동이 생긴다. 개념을 통해 객체를 설명할 껀데 개념을 타입으로 이야기한다. 그럼 객체, 개념, 타입의 구분은?

     

    타입과 개념은 동일하다. 그리고 어떤 객체에 타입을 적용할 수 있을 때 그것을 인스턴스 라고 부른다.

     

    읽었을 때는 이해가 가는 것 같지만, 막상 설명하려면 쉽지 않다. 다시 정리해본다면, 객체라는 새로운 세계의 구성원을 우리가 생각하고, 그 객체를 표현하기 위해 우리는 개념을 정의하고 그것을 타입으로 표현한다. 그리고 그 타입을 객체로 표현할 수 있을 때 그때서야 우리는 그것을 인스턴스라고 부를 수 있다는 것이다.

     

    그렇기 때문에 객체를 분류하는 기준은 타입이다. 그리고 그 타입을 나누는 기준은 객체가 수행하는 행동이다. (객체는 상태와 행동, 식별자를 가지고 있다.) 객체를 분류하기 위해 가장 먼저 할 일은 타입을 결정하는 것이다. 그리고 그 여러가지 방법 중에 클래스를 이용한 방법이 있는 것이다.

     

    중요한 점은 객체지향과 클래스는 그 구현 방법 중에 하나라는 사실이다.

     

    반응형
Designed by Tistory.