본문 바로가기

Java/객체지향

(OOP) 객체지향에 대해서(3) - 추상화

상황을 하나 만들어보자 대리님이 손가락을 가리키면서 저기 컵 좀 주세요 준우 씨라고 부탁하였다.
책상에 컵은 하나밖에 없었기 때문에 나는 컵을 대리님께 건네줄 수 있었다. 

컵은 엄밀히 말하면 스타벅스 텀블러였고 대리님은 준우 씨 저기 스타벅스 텀블러 주세요 라고 말하지 않았음에도 불구하고 나는 컵이라는 
말만 듣고도 무엇을 원하는지 알 수 있었다.

 

너무 당연한 이야기지만 나는 어떻게 저렇게 개떡같이 말해도 찰떡같이 알아들을 수 있을까?

 

인간은 본능적으로 공통적인 것을 그룹화하여 복잡한 개념을 단순화시키려고 한다.

그렇기 때문에 나는 애초에 텀블러든 유리컵이든 종이컵이든 컵이라는 하나의 개념으로 알고 있었기 때문에 무엇을 원하는지 인지할 수 있었던 것이다.

 

 

서론이 너무 길었지만 이것이 바로 추상화이다.

 

추상화는 공통적인 개념들을 한데 묶어서 최대한 단순화시키는 것이다. 

추상화를 하면 구체적인 정보를 얻을 수는 없지만 복잡한 것을 단순화하였기 때문에 정확성보다는 목적에 집중할 수 있게 만들어 준다.