객체지향언어의 역사
초창기 컴퓨터는 주로 과학실험이나 미사일 발사실험과 같은 모의실험(simulation)을 목적으로 사용했다.
과학자들은 실제 세계와 유사한 가상 사계를 컴퓨터 속에 구현하고자 노력했으며 이러한 노력은 객체지향이론을 탄생시켰다.
객체지향이론의 기본 개념은 "실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. " 라는 것이다.
실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상세계를 구현하고, 이 가상세계에서 모의 실험을 함으로써 많은 시간과 비용을 절약할 수 있었다.
객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 점차 구체적으로 발전되었으며 1960년대 중반에 시뮬라(Simula)라는 최초의 객체지향언어가 탄생하였다.
1980년대 중반에 C++을 비롯하여 여러 객체지향언어가 발표되면서 본격적으로 개발자들의 관심을 끌기 시작하였지만 사용자 층은 그렇게 넓지 못했다.
그러나 프로그램 규모가 점점 커지고 사용자들의 요구가 빠르게 변화되는 상황을 절차적 언어로 극복하기는 어렵다는 한계를 느끼고 객체지향언어를 이용한 개발방법론이 대안으로 떠오르게 되면서 조금씩 입지를 넓여갔다.
객체지향언어의 특징
- 코드의 재사용성이 높다
- 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성
- 코드이 관리가 용이하다.
- 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
- 신뢰성이 높은 프로그래밍을 가능하게 한다.
- 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 한다.
- 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.
너무 객체지향개념에 얽매여서 고민하기 보다는 일단 프로그램을 기능적으로 완성한 다음 어떻게 하면 보다 객체지향적으로 코드를 개선할 수 있을지를 고민하여 점차 개선해 나가는 것이 좋다.
이러한 경험들이 축적되어야 프로그램을 객체지향적으로 설계할 수 있는 능력이 길러지는것이지 이론을 많이 안다고 해서 좋은 설계를 할 수 있는 것은 아니다.
'Java' 카테고리의 다른 글
클래스의 또 다른 정의 (0) | 2021.09.13 |
---|---|
클래스(Class)와 객체(Object) (0) | 2021.09.13 |
String 배열(string array) (0) | 2021.09.13 |
다차원 배열(multi-dimensional array) (0) | 2021.09.13 |
배열(array) (0) | 2021.09.13 |