본문 바로가기
💊 Java & Kotlin & Spring/- Java & kotlin

[Java 심화] 추상화에 대한 심오한 고찰.

by Wonit 2019. 12. 23.
이 글은 추상화에 대한 개인적인 생각과 스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민 저를 읽고 나서 느낀 감정을 예술적? 문학적? 으로 접근하여 본인의 생각과 김종민 개발자의 생각을 추합하여 정리한 글 입니다.

 

Abstraction VS Abstract Art

 

제목에서 쓰인 Abstraction Computer Science에서 말 하는 추상화의 개념이고 Abstract Art피카소가 잘 하였던 추상 미술의 추상화 이다.

 

점점 학습을 하다 보니, 이 둘은 전혀 다른 분야의 용어지만 같은 의미로 쓰이게 된다는 것을 알게 되었다.

 

물론 뜻이라는게 같은 뿌리에서 나와 비슷한 느낌의 의미를 전달하긴 하지만, Computer Science에서 가장 잘 들어맞는것 중에 하나가 추상화가 아닐까라는 생각을 한다.

 

다음 그림을 봐보자.

 

 
이런 난해한 그림을 추상화라고 하는데, 나는 이제서야 추상화의 진정한 가치를 알게 되었다. 이 글을 끝까지 읽고 난다면 전혀 난해한 그림이 아니게 될 것이다.

 

위 그림에서 무엇이 보이는가? 필자는 많은 것들이 보이지만 3가지가 보인다.

 

  1. 바쁘게 살아가는 현대 사회
  2. 새들의 왕국
  3. 몸 속의 세포

 

이것은 순전히 나의 기준에서 작성된 글이기 때문에 최대한 내가 되려고 이해시켜보겠다.

 

  1. 바쁘게 살아가는 현대 사회

움직이는 생물들은 검정색으로 표현이 되었고 X축 Y축이 (30, 20)이 되는 그림이라고 가정했을 때, (0, 20)에 바퀴벌레 한 마리같은 생물이 열심히 무언가를 하고 있는 모습이 현대인과 같다고 생각했다.

  1. 새들의 왕국

이 그림에는 공작새들이 정말 많다. 공작새도 있고 좌측 하단에 소 한마리가 있고, 오리도 있는 모습이 새들의 왕국이라는 생각이 들었다.

  1. 몸 속의 세포

우리 몸 속에는 피와 세포가 있으며 세균들 또한 존재한다. 몸에 세균이 들어왔을 때 항체들이 열심히 검정색 세균들과 싸움을 벌이는 과정이라는 생각이 들었다.

 

나는 지금 독자들을 이해시키려고 노력하였고, 이해가 되었다고 가정하자.. ㅎㅎ. 그럼 나는 지금 한 가지의 그림에서 3가지의 각기 다른 미술품을 만들어 냈다.

 

이를 Computer Science 용어로 모델링이라고 하는데, 나는 추상화를 이용하여 세 가지의 그림을 모델링하였다.

 

이것이 바로 추상화 이다.

 

그럼 추상화의 대가인 피카소를 Computer Science에 세계로 인도해보자.

 

위 그림은 피카소가 라는 생물을 추상화 하여 으로 만드는 과정을 보여준다.

 

피카소는 우리가 하는 모델링을 역으로 하여 하나의 객체에서 으로 만들었다.

 

피카소는 너무나도 대단하고 아주 강력한 역추상화를 하였기 때문에 소라는 것을 누구나 알 수 있지만 저 선에서 소가 아닌 말이 나올 수 도 있고, 독수리가 나올 수 있다. 

 

이제 피카소는 저 선을 가지고 닭도 만들 수 있고, 상어도 만들 수 있고, 다른 생물들 까지 만들 수 있는, 즉 재사용이 가능하며 다양한 기능을 수행할 수 있는 추상 클래스를 만드셨다.

결론은 추상화는 모델링을 하는 과정이고 추상화의 결과로 각기 다른 기능을 수행하는 클래스가 나올수 있어야 한다.

댓글2