
참고
자바의 정석
요즘 현대시대에는 컴퓨터를 사용하지 않는 분야가 없을 정도로 많은 사람들이 사용하고 있다. 하지만, 초창기에는 과학실험이나 미사일 발사실험 같은 모의실험을 목적으로 사용해왔다. 이 때, 과학자들은 모의실험을 할 가상세계를 구축하는데 실제 세계와 똑같이 구현하고자 노력을 하였고 이때 객체지향론이 등장하였다.
객체지향이론의 기본개념은 '실제 세계는 사물(객체)로 이루어져 있으며 발생하는 모든 사건들은 객체간의 상호작용이다' 라는 것이다. 실제 사물의 속성과 기능을 데이터(변수)와 함수로 정의함으로 실제세계를 가상세계에 그대로 구현을 하면서 가상세계에서 모의실험을 함으로 시간과 비용을 절감을 할 수 있었다. 그 이후, 객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 발전하였으며 이 이론을 반영한 최초 객체지향언어 시뮬라 라는 언어가 개발되었다. 그 이후에, C++을 비롯하여 여러 객체지향언어가 알려지기 시작했고, 많은 개발자들의 시선을 잡았지만, 사용자층은 그렇게 많지가 않았다.
하지만, 많은 기술들의 발전이 일어나고 인터넷이 등장함으로 많은 사람들은 절차지향적 언어의 한계를 느끼고, 객체지향 언어가 주류를 잡기 시작하였다. 우리가 흔히 생각하는 마인크래프트도 실제세계를 가상세계로 만들어둔 게임으로 자바를 이용하여 만들어졌다.
객체지향언어는 완전 새로운 언어가 아니라, 기존의 프로그래밍 언어에서 몇가지 규칙들을 추가한 발전된 언어이다. 이 규칙들이 코드간의 관계를 맺어줌으로 유기적인 개발이 가능해졌다. 그럼 객체지향의 규칙들을 알아보자.
- 코드의 재사용성이 높다.
- 새로운 코드를 작성할 때, 기존의 코드를 이용하여 쉽게 작성할 수 있다.
- 코드의 관리가 용이하다.
- 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
- 신뢰성 높은 프로그래밍을 가능하게 한다.
- 제어자와 메서드를 이용해서 데이터를 보호하고, 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.