본문으로 바로가기

객체지향 프로그래밍



객체지향 프로그래밍(Object Oriented Programming)은 문제를 여러 개의 객체 단위로 나눠 작업하는 방식을 말합니다. 

이 방식은 오늘날 가장 많이 사용하는 대표적인 프로그래밍 방식이고 JAVA, C# 등이 대표적인 객체지향 프로그래밍 언어입니다.  



객체지향 프로그래밍 특징 및 장점

객체지향 프로그래밍의 가장 큰 특징은 클래스를 이용해 연관 있는 처리부분(함수)과 데이터 부분(변수)를 하나로 묶어 객체(인스턴스)를 생성해 사용한다는 점입니다. 

그리고 객체지향 프로그래밍에서는 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에  여러 개발자와 협업해 규모가 큰 프로젝트를 진행할 수 있으며 유지보수측면도 뛰어나다는 장점이 있습니다.





객체지향 프로그래밍 VS 클래스 기반 프로그래밍

클래스 단위 프로그래밍과 객체지향 프로그래밍이 똑같은 내용 아닌가 하고 생각할 수도 있습니다.


결론부터 말씀드리자면 일부는 맞고 일부는 맞지 않습니다.


엄격한 의미에서 해석

일반적으로 객체지향 프로그래밍은 객체지향 프로그래밍의 네 가지 특징(추상화, 캡슐화, 상속, 다형성)을 골고루 사용해 코딩 하는 프로그래밍을 객체지향이라고 합니다. 클래스 단위 프로그래밍은 이런 객체지향 특징을 전혀 사용하지 않고 오직 클래스만을 이용해 코딩 하는 방식을 말합니다. 이와같이 이 둘은 전혀 다른 프로그래밍 방법입니다.



유연한 의미에서 해석

클래스 단위 코딩을 객체지향 프로그래밍이라고 부를 수 있는 이유는 클래스를 만들어 코딩 하는 자체에 이미 객체지향 프로그래밍 네 가지 특징 중 캡슐화와 은닉성을 사용하고 있기 때문입니다. 이처럼 클래스 기반 프로그래밍은 객체지향 프로그래밍에 포함되는 구조를 가지고 있습니다. 

그리고 객체지향 프로그래밍을 배우려면 우선 클래스 기반 프로그래밍에 익숙해져 있어야 한다는 점입니다. 이유는 객체를 생성하는 수단이 클래스(생성자함수)이기 때문입니다.




 구   분

절차 지향 프로그래밍 

객체 지향 프로그래밍 

    처리 방식

  문제를 여러 개의 함수로 나누어 순차적으로 

  호출하여  처리하는 방식 

  문제를 여러 개의 객체 단위로 나누어 처리하는 방식 

 단 점

  오래된 방식이며 협업해서 진행하는 큰 

  프로젝트에는 적합하지 않음.

   학습 난이도가 높음.

   개발자의 활용 능력이 중요함

 장 점

   간단하고 소규모 프로젝트에 용이함.

   비교적 배우기 쉬음. 

   최근 가장 많이 사용하는 방식임.

   협업이 중요한 대형 프로젝트에 적합함.



객체란?

물리적으로 존재하거나(자동차, 책, 사람), 추상적인 것(회사, 날짜) 중에서 자신의 속성과 동작을 가지는 모든 것을 말합니다.

객체는 속성(필드)과 메소드(동작)로 구성된 자바 객체로 모델링할 수 있다.


[객체간의 관계]

객체 지향 프로그램에서는 객체는 다른 객체와 다른 객체와 관계를 맺고 있다.

집합 관계 : 완성품과 부품의 관계

사용 관계 : 객체가 다른 객체를 사용하는 관계

상속 관계 : 종류 객체와 국체적인 사물 객체 관계 


[객체지향 프로그래밍]

부품객체를 만들고 이것들은 하나씩 조립해서 완성된 프로그래을 만드는 기법

ex) 슬라이딩 배너 (next,prev 버튼, auto 기능, 정지버튼 기능등의 부품 객체를 모두 조립하여 하나의 슬라이딩 객체가 완성




Jaehee's WebClub