본문 바로가기

IT 관련 기타/개발 상식

객체지향 프로그래밍

객체지향 프로그래밍의 등장


 객체지향 프로그래밍이 무엇인지 알기전에 어떻게 해서 객체지향이란 개념이 생겨났는지 부터 이야기 하겠습니다.
처음의 프로그램들은 객체지향적이 아닌 절차지향적인 방식으로 짜여져 왔습니다. 하지만 하드웨어가 발전하며 더욱 큰 크기의 프로그램들이 하드웨어 위에 올라갈 수 있게 되었고,  그로인하여, 코드는 점점 더 복잡해지고, 그 양은 방대해지게 됩니다.
 여기서 문제는 절차지향은 컴퓨터의 처리방식이 중점인 프로그래밍 방식이여서, 코드가 위에서 부터 아래로 순차적으로 쓰여져가고, 프로그램 자체가 유기적으로 연결되어 있어서 코드가 복잡해짐에 따라 코드를 봤을때 파악하기 힘들고 심지어 코드를 짠 본인 마저도,  프로그램의 보완이나 유지 보수가 무척이나 어려워 진다는 것 이었습니다. 
객체지향은 이러한 문제를 해결하기 위해 프로그램을 여러가지 객체들의 모음으로 보는 것 입니다.
예를 들어서 선풍기를 절차지향 방식으로 만든다고 생각하면, 몸체 -> 메인컴퓨터 -> 모터 -> 날개 -> 덮개 순으로 만들어야지 제대로 동작하며, 이중 하나라도 문제가 생기면 동작에 문제가 발생하고, 새로운 부품으로 교체하기 위해서는 매우 까다로운 과정을 거쳐야 하는 것이 절차지향적인 방식이고, 
객체 지향적인 방식은 몸체, 메인컴퓨터, 모터, 날개, 덥개를 모두 하나하나의 객체로 보고, 이러한 객체들을 하나씩 만든 다음에 이들을  합쳐서 새로운 하나의 객체로 만드는 것입니다. 이러한 방식을 사용하면 고장이 나더라도 어디서 문제가 발생했는지 발견하기 쉬워지고, 이 부분의 교체등이 용이해지게 되는 것이 객체 지향적 방식입니다.
이러한 생각으로 프로그램을 좀 더 알아보기 쉽고, 유지보수가 용이하며 생산적인 방향으로 만들어보자란 생각에서 객체 지향이 등장하게 됩니다.

객체지향의 특징


 객체지향은 위에서 말한 것 과 같이 하나의 물체를 여러개로 나누어서 보는 특징이 있습니다. 이러한 특징은 전체적인 흐름보다 나누어진 사물(객체)를 조금 더 자세히 묘사하는데 큰 비중을 두게되는데 이렇게 프로세스가 아닌 사물을 자세히 표현하는데 비중을 두다보니 각각의 사물은 독립성을 유지할 수 있게 됩니다. 이렇게 객체가 독립성을 유지할 수 있게 되면 객체의 프로젝트 의존도가 낮아지게 되므로 이 객체를 또 필요로 하는 프로젝트가 있을 시 재사용이 가능하게 됩니다. 
 또한, 각각의 사물을 구현하는데 초점을 맞춤으로서 개개인의 역할을 명확하게 구분할 수 있게 되었고, 이는 분업이 중요한 대형 프로젝트에 적합한 모습을 갖추게 되었습니다.
단, 이러한 개개인의 역할을 명확하게 구분하기 위해서는 각각 객체간의 주고받는 정보가 명확해야 하고 이 주고 받는 정보를 정의하기 위해 인터페이스등으로 이를 공고해 줍니다.


'IT 관련 기타 > 개발 상식' 카테고리의 다른 글

[개발상식]설정 파일 정리  (0) 2020.05.19
JAVA 지역 변수의 범위 최소화  (0) 2019.10.01
자바 SE, EE, ME  (0) 2018.11.22
인터페이스란  (0) 2018.11.12