Object   객체, 오브젝트

(2020-11-28)

1. 객체 (Object)

  ㅇ [일반]
     - 주체(主體)에 대응되는 객체(客體)
        . 처리의 대상이 되는 목적물
     - 실존하는 것일 수도, 난해한 개념적인 것일 수도 있음
        . 하나의 개념화, 추상화로 문제영역에서 뚜렷한 영역과 의미를 가지는 것

  ㅇ [공학]  
     - 스스로 제구실을 하는 부품과 같은 어떤 존재
        . 속성을 가지고 특정한 작업을 수행할 수 있도록 설계된 것

  ㅇ [객체지향]  
     - `속성`과 이들 속성을 다루는데 필요한 `행위`를 함께 캡슐화한 객체를 중심으로,
     - 이들 간의 관계성, 상속성, 메세지 주고받기 등이 가능


2. [프로그래밍]  객체란?
   
  ㅇ 객체의 `의미`  :  `속성(자료)` 및 `그 자료에 대한 연산(방법)`을 함께 묶어둔 것

  ㅇ 객체의 `특징`
     - 이름을 붙여 특징지울 수 있음 (thing, 즉, 세상의 모든 것)
        . 자기자신을 포함하여 서로 연관된 변수함수데이터 묶음
     - 어떤 정보를 표현하기 위해 기억장소가 할당됨
        . 객체는 메모리 상에 있게되고, 프로그래밍 조작의 대상이 되는 것임

  ㅇ 객체의 `모형화(분류)`  :  클래스
     - 객체를 그룹화시킬 수 있는 것
        . 객체들의 속성을 기술하는 구조의 명칭으로써, 주로 객체에 대한 정의를 의미
        . 즉, 같은 유형의 객체들은 공통 클래스를 사용하여 정의됨

  ㅇ 객체의 `구성` : 프로퍼티 + 메소드

     - 객체  =  프로퍼티  (변수,속성,성질,상태)  +   메소드 (처리방법,행동)
             =  데이터 멤버                      +   멤버 함수

        . Property/Attribute (속성)
           .. 데이타 그 자체 및 특징지우는 속성,성질들의 집합

        . Method (방법)
           .. Property 에 들어있는 데이타로 어떤 작업을 수행하는 것
           .. 다른 프로그래밍 언어에서의 함수와 유사
           .. 프로퍼티 값이 함수프로퍼티가 바로 메소드임

     ※ 결국, PropertyMethod에 의해 정의되는 객체를 사용하여
        - 실체를 표현하게됨

  ㅇ 객체의 `구현`  :  인스턴스
     - 그러한 구조를 갖는 객체가 구체적으로 실체화 된 것
        . 즉, 객체는 원본이고, 인스턴스는 구현된 복사본 이라고 할 수 있음
           .. (객체의 복제본을 만드는 것)

  ㅇ 객체 간의 `통신` :  메세지
     - `조작명` 및 그 `인수`가 지정됨


3. [프로그래밍]  객체지향 프로그래밍 (OOP)프로그램 상에 취급하는 모든 대상을 객체로 생각하고,
     - 그렇게 만들어진 객체를 중심으로 코드를 조립해가며 프로그램을 짜는 방법

  ㅇ 프로그램 내에서, 객체는, 
     - 문자열,숫자,배열 처럼 값으로 취급되기도 하며,
     - 변수에 담거나, 인수로 전달되거나, 반환값으로 나오기도 하며,
     - 객체 고유의 기능(동작,연산)도 가능 함



Copyrightⓒ written by 차재복 (Cha Jae Bok)