본문 바로가기
PM 기술스터디

PM 기술 스터디 - 객체지향 프로그래밍(Object-Oriented Programming, OOP)

by Rocket Launch 2023. 5. 31.
반응형

객체지향 프로그래밍(Object-Oriented Programming, OOP)

객체지향 프로그래밍 (Object-Oriented Programming, OOP)

PM(Product Manager)업무를 하다보면 종종 개발자의 입에서 객체지향 프로그래밍이란 용어를 듣게 된다. 개발자와의 의사소통을 원활하게 하기 위해서는 이러한 개념은 어느정도 이해하고 있는 것이 좋다. 그래서 이번에는 객체지향 프로그래밍이 무엇인지 한번 알아보고자 한다.

객체지향 프로그래밍(Object-Oriented Programming, OOP)소프트웨어 개발 방법론 중 하나로, 프로그램을 작성하는 데에 사용되는 패러다임이다. 이 방법론은 현실 세계의 개념과 개체들을 프로그램 내의 "객체"로 모델링하는 것을 중심으로 한다.

객체는 데이터와 이를 처리하는 메서드로 구성되어 있다. 데이터는 객체의 상태를 나타내며, 메서드는 객체의 동작을 나타낸다. 이러한 객체들은 클래스라는 틀을 기반으로 생성되며, 클래스는 객체들의 공통된 특징을 정의하는 템플릿이다.

 

객비전공자를 위한 쉬운 설명

객체지향 프로그래밍(Object-Oriented Programming, OOP)을 위와 같이 설명해주면 비전공자는 와닿지 않는다. 조금 쉽게 설명해보도록 하자.

가족에 비유해서 설명을 해보자. 가족 구성원들은 각각의 역할과 특성을 가지고 있다. 부모, 자식, 형제 등 각각의 가족 구성원은 고유한 특징과 행동을 갖고 있다.

객체지향 프로그래밍 가족

이렇게 가족 구성원을 프로그래밍으로 표현하려면 객체지향 프로그래밍을 사용할 수 있다. 예를 들어, "부모"라는 클래스를 정의하면 부모 객체를 생성할 수 있다. 부모 객체는 이름, 나이, 직업 등의 속성 데이터를 가지며, 일하거나 가족을 돌보는 등의 메서드를 가질 수 있다.

마찬가지로 "자식"이라는 클래스를 정의하면 자식 객체를 생성할 수 있다. 자식 객체는 부모 객체의 특성을 상속받을 수 있으면서, 자신만의 특성과 행동을 추가할 수 있다.

이런식으로 가족 구성원들을 객체로 표현하고, 객체들 간의 관계를 형성하여 프로그램을 작성하면 가족 구성원들이 협력하면서 원하는 일을 수행하는 프로그램을 만들 수 있다.

객체지향 프로그래밍은 현실 세계의 객체들과 그들의 관계를 모델링하여 프로그램을 작성하는 방법이다. 클래스는 객체들의 속성과 행동을 정의하는 템플릿이고, 객체는 클래스로부터 생성된 실제 인스턴스이다.

이렇게 가족 구성원들을 가지고 가족을 모델링하는 것처럼, 프로그램에서도 다양한 개념들을 객체로 표현하여 유연하고 재사용 가능한 코드를 작성할 수 있다.

객체지향 프로그래밍의 개념과 원칙

캡슐화(Encapsulation)

관련 있는 데이터와 메서드를 객체로 묶고, 외부에서 직접 접근하지 못하도록 정보를 은닉하는 것을 의미한다. 이는 객체의 내부 구현 세부사항을 감추고 외부에 필요한 인터페이스만 제공하여 코드의 유지 보수성과 재사용성을 높인다.

상속(Inheritance)

이미 존재하는 클래스를 기반으로 새로운 클래스를 생성할 수 있으며, 기존 클래스의 특성을 상속받아 새로운 클래스에서 재사용할 수 있다. 이를 통해 코드 중복을 줄이고, 계층적인 구조를 통해 유연하고 확장 가능한 프로그램을 작성할 수 있다.

다형성(Polymorphism)

같은 이름의 메서드나 연산자가 서로 다른 객체에서 다르게 동작할 수 있는 능력을 말한다. 이를 통해 동일한 메서드를 사용하면서 다양한 객체를 처리할 수 있고, 유연한 코드 작성이 가능하다.

추상화(Abstraction)

복잡한 시스템이나 개체를 단순화하여 필요한 부분만을 표현하는 것을 의미한다. 이는 핵심적인 개념에 집중하여 복잡성을 감소시키고 코드의 가독성을 높인다.

 

반응형

댓글