본문 바로가기

공학/소프트웨어

객체지향기법과 붕어빵

반응형

© mikesween, 출처 Pixabay

이번에는 가장 대중적인 프로그래밍 방법론인 객체지향 프로그래밍에 대해 알아보자. 객체지향 프로그래밍은 현실세계에 존재하는 개체를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립하듯이 프로그래밍을 진행하는 기법을 이야기한다.

개체와 객체를 이해하기 쉽게 비유해보자면 현실세계의 붕어빵 틀을 개체, 이 틀을 추상화하여 프로그래밍에 이용가능하게 바꾼것을 객체라 생각하면된다. 객체지향기법에서는 이렇게 설계한 붕어빵틀을 복사하거나 조금씩 변형하여 효율적으로 붕어빵기계를 제작한다. 한 붕어빵 기계에 5개의 틀이 필요하다고 할때, 이 5개를 하나하나 설계하여 제작하는 것이 아닌 한개의 틀만을 설계하여 간단하게 5개의 붕어빵 틀을 만드는 것이다.

이렇게 객체지향 기법을 사용하면 얻게되는 장점은 여러가지가 있는데 오늘은 붕어빵틀을 예시로 객체지향의 몇가지 특징을 알아보자.

1.상속

실제 세계에서 상속은 부모님이 가진 유산 일부를 물려받는 것을 이야기하지만, 객체지향에서 상속은 부모의 모든것을 물려받아 마치 '부모 + a'와 같은 형태가 되는 것을 이야기한다. 객체지향에서는 이 상속을 이용하여 자유로운 변형과 쉬운 분류를 가능하게 한다. 기존 붕어빵 틀을 상속받아 머리에 뿔이 달린 붕어빵 틀을 만들거나, 비늘에 꽃모양을 그린 붕어빵 틀을 만들 수 있다. 그리고 이 붕어빵 틀들은 '붕어빵 틀'이라는 부모에 속해있다고 할 수 있다.

© K_KAZUHIKO, 출처 Pixabay

2.다형성

붕어빵의 근본은 팥이 들어간 붕어빵이지만, 친구들 사이에서는 슈크림이 들어간 붕어빵이 더 인기있다. 이렇게 붕어빵은 팥, 슈크림맛뿐만 아니라 크림치즈맛, 피자맛, 초코맛 등 다양한 맛이 연구하여 판매되고 있다. 이렇게 같은 클래스(붕어빵) 틀에 다른 재료(자료형)이 들어갔을때 그에 맞는 결과물이 나오는 것을 다형성이라고 한다. 객체지향설계에서는 다양한 맛의 붕어빵을 만들고 싶을 때, 각 맛에 해당되는 틀을 새로 만드는 것이 아닌 한개의 틀에 재료만 다르게 해서 설계할 수 있다. '당연한거 아닌가?'라고 생각할 수 있지만, 객체지향기법이 발달되지 않았을 때는 맛에 해당되는 붕어빵 틀을 따로 제작해야 했다.

3.추상화

추상화는 필요한 부분만 보는 능력이다. 우리는 붕어빵 틀이 있으면 붕어빵을 만들때 비늘 하나하나를 모양내지 않아도 된다. 단순히 붕어빵 틀에 반죽을 넣고 팥을 넣으면 붕어빵이 완성된다. 우리는 붕어빵을 만들 때 붕어빵 모양을 하나하나 새길 필요도, 붕어빵 틀을 제작할 필요도 없이 그저 반죽과 팥만 준비하면 된다. 이렇게 객체지향기법은 사용자나 협업하는 사람이 특정 기능을 이용할 때 꼭 필요한 부분만 생각할 수 있게 해준다.


이런 객체지향 기법들을 보고 당연한 이야기가 아닌가 생각할지도 모르겠지만, 이런 객체지향 기법이 처음 등장했을때 굉장히 혁신적인 기법이라는 이야기를 들었다. 사실 이러한 기법들이 당연해 보이지만 실제로 적용해보려고 하면 쉽지 않을 것이다. 이런 객체지향 기법을 이용해 프로그램이나 삶을 설계하는 것이 처음에는 어렵겠지만, 꾸준히 적용하다 보면 일과 삶의 효율성이 크게 올라갈 것이다.

 

 

반응형

'공학 > 소프트웨어' 카테고리의 다른 글

테스트의 원리 -1  (0) 2020.09.30
협업 도구 정리  (0) 2020.09.25
객체지향기법과 자판기  (0) 2020.09.25
아키텍처 패턴을 배우는 이유  (0) 2020.09.25
완벽한 계획은 없다.(복잡계 프로젝트)  (0) 2020.08.02