객체지향언어의 특징
객체지향언어의 특징은 크게 캡슐화, 상속, 다형성, 추상화 4가지로 나눌 수 있습니다.
1. 캡슐화
데이터와 알고리즘을 하나로 묶어 하나의 캡슐처럼 만드는 것입니다. 이 특징 때문에 데이터와 코드의 형태를 외부에서 알 수 없습니다.
당연히 캡슐화되어있지 않은 데이터와 코드는 사용하기 어렵습니다.
2. 상속
부모가 자식에게 유전자를 물려주듯, 상위 클래스의 모든 것을 하위 클래스가 이어 받는 것입니다.
3. 다형성
상속과 연관된 개념으로, 하나의 객체가 다른 여러 객체로 재구성되는 것입니다.
부모가 쌍둥이 자식을 낳으면 부모의 유전자가 두 명의 자식으로 재구성되는 것과 같은 이치입니다.
하지만, 그렇다고 해서 두 쌍둥이(재구성된 객체들)의 유전자가 부모(원 개체)의 유전자와 똑같다고 볼 수는 없습니다.
자바의 오버로드, 혹은 오버라이드 다형성이 이 다형성을 드러내는 대표적인 예입니다.
4. 추상화
실존하는 객체의 여러 특성 중, 프로그램을 만드는데 필요한(공통적인) 부분만 파악해서 추출하고 필요하지 않은 것은 제거하는 것입니다.
객체지향언어의 장점
객체지향언어의 재사용성, 생산성 증가, 자연스러운 모델링이라는 장점이 있습니다.
1. 재사용성
'상속'이 가능하기 때문에 코드를 재사용할 수 있어 편리합니다.
2. 생산성 증가
컴퓨터가 고장났을 때, 문제가 되는 부품만 수리하면 다시 정상 가동됩니다.
마찬가지로 독립된 객체로 이루어져있기 때문에 생산적으로 작업할 수 있고, 유지 및 보수가 용이합니다.
3. 자연스러운 모델링
앞서 말했듯, 객체는 세상에 존재하는 모든 것입니다. 객체지향언어 자체가 우리가 사는 세상을 닮았기 때문에 개발자가 생각하는 대로 자연스럽게 구현할 수 있습니다.
객체지향언어의 단점
단점 역시 3가지입니다.
1. 느린 개발 속도
모든 객체의 역할과 기능을 이해해야 하기 때문에 프로그래밍에 많은 시간이 소요됩니다.
2. 느린 실행 속도
객체지향언어의 처리 속도는 절차지향언어보다 느립니다.
3. 높은 난이도
객체지향언어는 대체로 난이도가 높습니다. 특히 다중 상속이 지원되는 c++는 악명이 높습니다.
객체지향언어가 절차지향언어의 단점을 보완하고자 등장했다고 해서 무조건적으로 우수하다고 할 수는 없습니다.
구조와 특징이 명확히 다를 뿐, 어떻게 활용하느냐에 따라 다를 것입니다.
TIL 9월 10일
'TIL (ToDay I LearNEd) > Definition' 카테고리의 다른 글
Java 톺아보기 (Java 소개) avec. Spring Framework (0) | 2024.09.05 |
---|