객체(Object)와 인스턴스(Instance)에 대한 이해

현정재·2024년 6월 15일
0

프로그래밍을 하다 보면 객체(Object)와 인스턴스(Instance)라는 용어를 자주 접하게 됩니다. 이 둘은 클래스에 정의된 내용에 따라 생성된 것으로, 비슷하지만 약간의 차이가 있습니다. 이번 글에서는 객체와 인스턴스의 개념을 명확히 하고, 그 차이점을 이해해 보겠습니다.

객체(Object)

개념

  • 객체는 소프트웨어 세계에 구현할 대상이며, 클래스에 선언된 모양 그대로 생성된 실체입니다.

특징

  • 객체는 "클래스의 인스턴스"라고도 부릅니다.
  • 모든 인스턴스를 포괄하는 포괄적인 의미를 가집니다.
  • OOP의 관점에서 클래스의 타입으로 선언되었을 때 "객체"라고 부릅니다.

OOP란?

객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍 패러다임 중 하나로, 현실 세계의 사물이나 개념을 객체로 표현하고, 이러한 객체들 간의 상호작용을 통해 프로그램을 구현하는 방법론입니다. OOP는 크게 네 가지 주요 개념으로 구성됩니다:
1. 캡슐화: 데이터와 메서드를 하나의 단위로 묶는 것.
2. 상속: 상위 클래스의 속성과 메서드를 하위 클래스가 물려받는 것.
3. 다형성: 동일한 인터페이스를 통해 다양한 구현을 사용하는 것.
4. 추상화: 복잡한 시스템에서 핵심적인 개념만을 모델링하는 것.

인스턴스(Instance)

개념

  • 인스턴스는 설계도(클래스)를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체입니다.
  • 즉, 객체를 소프트웨어에 실체화하면 그것을 "인스턴스"라고 부릅니다.
  • 실체화된 인스턴스는 메모리에 할당됩니다.

특징

  • 인스턴스는 객체에 포함된다고 볼 수 있습니다.
  • OOP의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 "인스턴스"라고 부릅니다.
  • 추상적인 개념과 구체적인 객체 사이의 관계에 초점을 맞출 경우에 사용됩니다.
    • "~의 인스턴스" 형태로 사용됩니다.
    • 객체는 클래스의 인스턴스입니다.
    • 객체 간의 링크는 클래스 간의 연관 관계의 인스턴스입니다.
    • 실행 프로세스는 프로그램의 인스턴스입니다.
  • 인스턴스라는 용어는 반드시 클래스와 객체 사이의 관계로 한정지어 사용할 필요는 없습니다.
  • 인스턴스는 어떤 원본(추상적인 개념)으로부터 생성된 복제본을 의미합니다.

요약

  • 객체(Object): 클래스에 정의된 모양 그대로 생성된 실체. 모든 인스턴스를 포괄하는 의미를 가짐.
  • 인스턴스(Instance): 클래스라는 설계도로부터 생성된 구체적인 실체. 객체가 메모리에 할당될 때 인스턴스라고 부름.

객체는 모든 인스턴스를 포괄하는 포괄적인 개념이며, 인스턴스는 구체적인 실체를 의미합니다.

profile
wonttock

0개의 댓글