Programming

OOP(Object-Oriented Programming)

두잇츄우 2025. 4. 14. 03:24

객체지향 프로그래밍(OOP)은 프로그래밍 패러다임 중 하나로,

데이터를 ‘객체’라는 단위로 묶어서 처리하는 방식

객체는 상태(속성)와 동작(메서드)를 가지며, 현실 세계의 사물이나 개념을 모델링할 때 사용된다.


 

객체 지향 구성요소

  1. 클래스(Class): 특정 객체 내에 있는 변수와 메서드를 정의하는 일종의 틀
  2. 객체(Object): 물리적, 추상적으로 자신과 다른 것을 식별 가능한 대상
  3. 메서드(Method): 클래스로부터 생성된 객체를 사용하는 방법
  4. 메시지(Message): 객체 간 상호 작용을 하기 위한 수단, 객체에게 어떤 행위를 하도록 지시하는 방법
  5. 인스턴스(Instance): 객체 지향 기법에서 클래스를 통해 만든 실제의 실형 객체, 실제 메모리상에 할당
  6. 속성(Property): 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의, 성질, 분류, 식별, 수량, 현재 상태 등에 대한 표현 값

객체 지향 기법

  1. 캡슐화(Encapsulation)
    • 서로 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만 밖으로 드러내는 기법
    • 결합도가 낮아지고 재사용성이 용이
    • 정보 은닉과 관계가 깊음
  2. 상속성(Inheritance)
    • 상위 클래스의 속성과 메서드를 하위 클래스에서 재정의 없이 물려받아 사용하는 기법
  3. 다형성(Polymorphism)
    • 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
    • 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질
    • 오버로딩, 오버라이딩이 대표적
  4. 추상화(Abstraction)
    • 공통 성질을 추출하여 추상 클래스를 설정하는 기법
  5. 정보 은닉(Information Hiding)
    • 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술
    • 필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부 시스템이 다른 모듈의 구현에 영향을 받지 않게 설계됨
    • 모듈 사이의 독립성을 유지하는 데 도움을 줌
  6. 관계성(Relationship)
    • 두 개 이상의 엔터티 형에서 데이터를 참조하는 관계를 나타내는 기법
    • 연관화, 분류화, 집단화, 일반화, 특수화

'Programming' 카테고리의 다른 글

MVC 패턴(Model-View-Controller Pattern)  (0) 2025.04.16
디자인 패턴(Design Pattern)  (0) 2025.04.15