개발자 Saaad

[웹개발] OOP : 객체 지향 프로그래밍 본문

학습

[웹개발] OOP : 객체 지향 프로그래밍

Saaad 2024. 12. 11. 16:16

OOP(Object-oriented programming) 란?

객체 지향 프로그래밍(OOP) 은 Java 및 C++ 를 비롯한 많은 프로그래밍 언어의 기본이 되는 프로그래밍 패러다임 입니다.

객체 지향 프로그래밍은 여러개의 독립된 "객체"들의 모임으로 컴퓨터 프로그램을 파악합니다.

=> 객체 지향 프로그래밍은 객체들의 모임입니다.

 

객체 지향 프로그래밍이 나오기 이전에는 명령어의 목록을 나열(절차 지향)하는 기능 구현을 목적으로 작성했지만,

이렇게 코드를 길게 작성하다보면 매우 알아보기 힘든 복잡한 코드가 만들어졌습니다.

 

그래서 이 문제를 해결하기 위해 독립된 단위인 객체를 만들었으며, 알아보기 쉽고 재사용성이 높아졌습니다.


OOP 특징

 

1. 자료 추상화 (abstraction) 

자료 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것입니다.

이렇게 해서 그 객체 안에 자세한 내용을 몰라도 중요 정보를 이용해서 해당 객체를 사용할 수 있게 됩니다.

 

예를 들어서, 커피를 마시기 위해서 커피머신을 이용하면 되지, 커피머신의 작동원리를 알 필요가 없는 것과 같습니다.

 

2. 상속 (ingeritance)

상속은 새로운 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능입니다.

상속을 받는 새로운 클래스를 부클래스, 파생클래스, 하위클래스, 자식클래스라고 하며 새로운 클래스가 상속하는 기존의 클래스를

기반 클래스, 상위 클래스, 부모 클래스라고 합니다.

상속을 통해서 기존의 클래스를 상속받는 하위 클래스를 이용해 프로그램의 요구에 맞추어 클래스를 수정할 수 있고

클래스 간의 종속 관계를 형성함으로써 객체를 조직화할 수 있습니다.

 

 

3. 다형성(polymorphism)

같은 메소드라도 각 인스턴스에 따라 다양한 형태를 가질 수 있는 것을 다형성이라고 합니다.

객체의 변수나 메서드가 상황에 따라 다른 의미로 해석될 수 있는 것을 말합니다. Overriding 을 이용하여 구현합니다.

 

4. 캡슐화(encapsulation)

캡슐화는 클래스 안에 관련 메서드, 변수 등을 하나로 묶어줍니다.

이 매커니즘을 이용해서 바깥에서의 접근을 막아 보안이 강화되고 잘 관리되는 코드를 제공합니다.