객체 지향 프로그래밍(OOP)

Mooby·2023년 3월 15일
0

개념정리

목록 보기
4/12

객체 지향 프로그래밍

객체 지향 프로그래밍은 컴퓨터 프로그래밍의 한 패러다임으로, 데이터와 해당 데이터를 처리하는 기능을 하나의 객체로 묶어 관리할 수 있다.

객체는 데이터와 메서드로 이루어져 있으며, 데이터는 객체의 속성으로, 메서드는 객체의 기능으로 사용된다. 객체 지향 프로그래밍에서는 캡슐화, 추상화, 상속, 다형성의 네가지 개념이 주요하게 사용되는데, 하나씩 알아보자.

캡슐화 (Encapsulation)

캡슐화는 객체 지향 프로그래밍에서 객체의 데이터와 메서드를 외부에서 직접적으로 접근하지 못하도록 은닉하고, 코드가 상징하는 실제 모습과 닮게 코드를 모아 느슨하게 결합하는 것을 의미한다.

캡슐화를 통해 객체의 데이터나 내부 메서드는 보호하고, 외부에서 필요한 메서드만 노출시킬 수 있고, 이를 통해 추후 유지보수 시에 내부 메서드의 구현만 수정하여 외부로 노출된 메서드를 사용하는 흐름을 바뀌지 않게 할 수 있는 점에서 객체의 재사용성도 높일 수 있다.

추상화 (Abstraction)

추상화는 복잡한 내부 구현은 숨기고 노출되는 부분은 단순하게 만든다는 개념이다. 추상화는 클래스를 정의하는 과정에서 사용되는데, 클래스는 객체를 생성하기 위한 청사진(Blueprint) 역할을 하며, 객체의 공통된 특성을 추상화하여 정의하므로, 객체를 생성할 때 해당 클래스를 기반으로 생성할 수 있다.

추상화는 객체를 간결하게 표현할 수 있도록 도와주며, 이를 통해 객체를 쉽게 이해하고 다룰 수 있게 된다. 따라서 코드의 재사용성과 유지보수성을 높일 수 있게 되며, 객체 지향 프로그래밍의 장점을 극대화할 수 있다.

상속 (Inheritance)

상속은 기존 클래스에서 새로운 클래스를 생성하는 방법 중 하나이다. 상속을 사용하면, 기존 클래스의 특성을 유지하면서 새로운 클래스를 만들 수 있다.

상속을 사용하면 코드의 재사용성을 높일 수 있다. 기존 클래스의 모든 속성과 메서드를 상속받아 새로운 클래스를 정의할 수 있으므로 코드의 중복을 줄이고 유지보수성을 향상시킬 수 있다.

상속을 통해 클래스 간의 관계를 구성할 수 있으며 이를 이해하는 데 매우 중요한 역할을 한다.

다형성(Polmorphism)

다형성은 여러가지 형태를 가질 수 있는 특성을 말한다. 같은 타입, 같은 인터페이스를 구현하는 객체들이 동일한 메서드를 호출하더라도 각 객체가 가지고 있는 구체적인 구현에 따라 다르게 동작할 수 있다. 이는 코드의 재사용성을 높이고 유지보수성을 향상시키는 데 도움이 된다.

다형성은 상속을 통해 구현될 수 있는데, 상속을 사용하여 부모 클래스에서 정의한 메서드를 자식 클래스에서 재정의하면, 같은 메서드를 호출하더라도 자식 클래스에서 재정의한 메서드가 호출된다. 이러한 과정을 통해 다형성이 구현된다.

profile
코린이

0개의 댓글