Search
📁

객체 지향

객체 지향(Object-Oriented Programming, OOP)

OOP는 소프트웨어를 객체 라는 기본 단위로 구성하고, 객체들이 상호작용하도록 설계하는 프로그래밍 방식
클래스와 객체
현실 세계의 실제 사물을 모델링한 클래스를 사용하여 객체를 생성함.
클래스는 객체를 만들기 위한 틀이며, 객체는 클래스의 인스턴스이다.
각 객체는 데이터와 해당 데이터를 처리하는 메서드를 가지고 있음.

주요 특징

1.
캡슐화(Encapsulation)
관련된 데이터와 메서드를 하나의 단위로 묶어서 객체를 생성하는 것.
캡슐화를 통해 객체의 내부 구현을 외부에 숨기고 객체 간의 인터페이스를 통해서만 상호작용할 수 있다.
안정성과 유지보수성이 향상.
2.
상속(Inheritance)
상속은 부모 클래스의 속성과 메서드를 하위 클래스가 물려받는 것을 의미.
코드의 재사용성을 높이고 클래스 간의 계층 구조를 형성.
3.
다형성(Polymorphism)
같은 이름의 메서드가 서로 다른 동작을 수행할 수 있는 능력을 의미.
같은 인터페이스를 가진 객체들이 서로 다른 방식으로 동작할 수 있음.
4.
추상화(Abstraction)
복잡한 것을 단순하게 표현하는 것. 현실 세계에서 중요한 부분만을 간추려서 나타내는 것.
자동차를 추상화한다면 바퀴, 엔진, 핸들과 같은 중요한 특징만을 고려하여 모델링.
자동차의 복잡한 내부 동작이나 세부 구현 내용을 숨길 수 있고, 우리가 필요한 기능에만 집중할 수 있다.
이러한 추상화를 통해 프로그램을 간결하게 만들고, 코드를 이해하기 쉽게 할 수 있음.
코드의 가독성을 높이고, 유지보수를 용이하게 할 수 있음.

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

코드의 재사용성이 높아진다.
코드의 가독성과 유지보수성이 향상.
소프트웨어의 개발 및 유지보수 비용이 감소.
대규모 프로젝트의 개발과 관리가 용이.
협업이 용이하고 팀원 간의 코드의 충돌이 줄어듬.
객체 지향 프로그래밍은 Java, C++, Python 등의 프로그래밍 언어에서 기본적으로 지원.
이러한 특징과 장점들로 개발자들에게 선호되는 프로그래밍 방법론 중 하나이다.