객체지향 프로그래밍(OOP)은 프로그래밍 패러다임 중 하나로,
데이터를 ‘객체’라는 단위로 묶어서 처리하는 방식
객체는 상태(속성)와 동작(메서드)를 가지며, 현실 세계의 사물이나 개념을 모델링할 때 사용된다.
객체 지향 구성요소
- 클래스(Class): 특정 객체 내에 있는 변수와 메서드를 정의하는 일종의 틀
- 객체(Object): 물리적, 추상적으로 자신과 다른 것을 식별 가능한 대상
- 메서드(Method): 클래스로부터 생성된 객체를 사용하는 방법
- 메시지(Message): 객체 간 상호 작용을 하기 위한 수단, 객체에게 어떤 행위를 하도록 지시하는 방법
- 인스턴스(Instance): 객체 지향 기법에서 클래스를 통해 만든 실제의 실형 객체, 실제 메모리상에 할당
- 속성(Property): 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의, 성질, 분류, 식별, 수량, 현재 상태 등에 대한 표현 값
객체 지향 기법
- 캡슐화(Encapsulation)
- 서로 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만 밖으로 드러내는 기법
- 결합도가 낮아지고 재사용성이 용이
- 정보 은닉과 관계가 깊음
- 상속성(Inheritance)
- 상위 클래스의 속성과 메서드를 하위 클래스에서 재정의 없이 물려받아 사용하는 기법
- 다형성(Polymorphism)
- 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
- 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질
- 오버로딩, 오버라이딩이 대표적
- 추상화(Abstraction)
- 공통 성질을 추출하여 추상 클래스를 설정하는 기법
- 정보 은닉(Information Hiding)
- 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술
- 필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부 시스템이 다른 모듈의 구현에 영향을 받지 않게 설계됨
- 모듈 사이의 독립성을 유지하는 데 도움을 줌
- 관계성(Relationship)
- 두 개 이상의 엔터티 형에서 데이터를 참조하는 관계를 나타내는 기법
- 연관화, 분류화, 집단화, 일반화, 특수화
'Programming' 카테고리의 다른 글
MVC 패턴(Model-View-Controller Pattern) (0) | 2025.04.16 |
---|---|
디자인 패턴(Design Pattern) (0) | 2025.04.15 |