OOP   Object Oriented Programming   객체지향 프로그래밍

(2023-09-29)

Object Oriented Language, 객체지향 언어


1. 객체지향 프로그래밍 (OOP)객체들 간에 상호작용을 기반으로 한 프로그램 개발 방법론
     - 프로그램을, `절차 및 데이터`로 함께 묶은 객체들의 집합으로 구성
     - 이때, 각 객체는 동적으로 변할 수 있음

  ㅇ 객체지향 프로그래밍을 지원하는 언어 例
     -  C++,  C#,  Java,  Objective-C,  Ada95,  SmallTalk 등


2. 절차식 프로그래밍, 객체지향 프로그래밍 비교                        ☞ 프로그래밍 패러다임 참조객체지향 프로그래밍절차식 프로그래밍은, 서로 대비가 됨

  ㅇ 절차식 프로그래밍은,
     - 함수(또는 프로시져)가 중심이되고, 데이터는 보조 기능을 함
        . 이때의 프로그래밍은, 함수 따로 데이터 따로 분리된 형태로 다루어야 함

  ㅇ 객체지향 프로그래밍은,
     - 함수가 아닌 객체가 중심이 되어, 절차와 데이터를 함께 묶음
        . 행위/기능/함수 보다는 객체 중심
        . 논리 보다는 데이터를 지향 함 
           .. 공통의 자료구조를 함께 사용하는,
           .. 서로 밀접하게 관련된 여러 함수(메소드)들로 엮어짐

     * 특히, 규모가 큰 소프트웨어를 개발할 때 효율적3. 객체지향 프로그래밍의 주요 특징추상화 (Abstraction)    : 모델링의 기초가 됨
     - 복잡한 실행 절차나 데이터를 하나로 묶어 단순화/추상화시키는 것
        . 데이터 추상화 (Data Abstraction) : 캡슐화, 정보은폐 등
        . 추상 클래스 (Abstract Class) 사용 등

  ㅇ 캡슐화 (Encapsulation)  : 정보 은닉
     - 복잡함을 감추고, 상호 영향을 작게하는 것
        . 데이터메소드논리적으로 하나로 묶어놓는 것

  ㅇ 상속성 (Inheritance)    : 재사용/확장 능력 제고
     - 코드의 재사용(reuse) 및 효과적인 확장(extend) 능력

  ㅇ 다형태성 (Polymorphism) : 사용 편의성이 좋아짐
     - 문맥에 따라 다른 형태나 동작을 할 수 있는 능력

  ㅇ 동적 바인딩 (Dynamic Binding)
     - 실행 중간에도 연결된 속성 변경이 가능


4. 객체지향 프로그래밍의 주요 구성 단위클래스 (Class)
     - 비슷한 특성을 가진 객체들의 모델링 (그룹화시키는 틀, 캡슐화한 것)

  ㅇ 객체 (Object)
     - 속성을 가지며 특정한 작업을 수행할 수 있도록 설계된 것

  ㅇ 인스턴스 (Instance)
     - 만일 객체(Object)가 값을 갖을 경우 보통 인스턴스(Instance)라고 함

  ㅇ 속성 (Attribute)
     - 객체와 관련된 특성이나 변수 같은 것

  ㅇ 메소드 (Method)
     - 객체에 대해 수행할 수 있는 작업/조작 (객체 외부와의 상호작용을 메소드를 통해 수행)

  ㅇ 연산 (Operation) 
     - 객체 자신을 바꾸거나, 외부적으로 바꿈의 효과가 나타나는 것

프로그래밍 방법론
   1. 프로그래밍 기법   2. 구조적 프로그래밍   3. 명령형 프로그래밍   4. 객체지향 프로그래밍   5. 함수형 프로그래밍   6. 프로그램 제어  
객체지향 프로그래밍
   1. 객체지향   2. 객체지향 프로그래밍   3. 메세지   4. 생성자   5. 접근 제한 수식자   6. 추상 클래스   7. 인터페이스  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"