객체지향 언어

객체 지향 프로그래밍(Object-Oriented Programming)은 컴퓨터 프로그래밍의 패러다임 중 하나입니다.
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것입니다. 
각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있습니다.
객체 지향 프로그래밍은 프로그램을 유연하고 변경이 쉽게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용됩니다. 
또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점이 있습니다. 
그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 합니다.

 

객체지향 언어의 역사

초창기에는 주로 과학실험이나 미사일 발사 실험과 같은 모의실험을 목적으로 사용되었습니다.
모의실험을 위해 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하고자 노력하였으며 이러한 노력을 바탕으로 객체지향 이론을 탄생시켰습니다.

 

객체지향이론 개념

객체지향 이론의 기본 개념은 실제 세계의 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물 간의 상호작용이다.라는 것입니다.
객체지향 이론은 상속, 캡슐화, 추상화 개념을 중심으로 점차 구체적으로 발전되었습니다.
최초의 객체지향 언어는 1960년대 중반에 객체지향이론을 프로그래밍언어에 적용한 시뮬라(Simula)라는 언어입니다.
자바가 1995년에 발표되고 1990년대 말에 인터넷의 발전과 함께 크게 유행하면서 객체지향언어는 프로그래밍 언어의 주류로 자리 잡았습니다.

 

객체지향 언어의 주요 특징

코드의 재사용성이 높다.
새로운 코드를 작성할 때 기존의 코드를 이용하여 작성할 수 있습니다.

코드 관리가 용이하다.
코드 간의 관계를 이용해서 코드를 변경할 수 있습니다.

신뢰성이 높은 프로그래밍을 가능하게 한다.
제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있습니다. 

 

객체 지향 프로그래밍 5 원칙

단일 책임 원칙 (Single responsibility principle)
한 클래스는 하나의 책임만 가져야 합니다.

개방-폐쇄 원칙 (Open/closed principle)
소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 합니다.

리스 코프 치환 원칙 (Liskov substitution principle)
프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 합니다.

인터페이스 분리 원칙 (Interface segregation principle)
특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫습니다.

의존관계 역전 원칙 (Dependency inversion principle)
프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안 된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나입니다.

 

후기

객체지향 언어를 이론적으로만 알았지만,  와닿았던 순간은 디자인 패턴을 공부했을 때입니다.

 

참조 자료: 자바의 정석

'JAVA' 카테고리의 다른 글

[JAVA] 자바(JAVA)란?  (0) 2022.01.18

+ Recent posts