Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

스터디

객체와 인스턴스 차이 본문

백엔드

객체와 인스턴스 차이

_민영 2023. 4. 5. 00:03

< 객체(Object) >

> 개념

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

> 특징

  • '클래스의 인스턴스(instance)'라고도 부른다.
  • 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다.
  • oop의 관점에서 클래스의 타입으로 선언되었을 때 '객체'라고 부른다.

 

 

 

 

 

< 인스턴스(Instance) >

> 개념

  • 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체이다.
  • 즉, 개체를 소프트웨어에 실체화하면 그것을 '인스턴스'라고 부른다.
  • 실체화된 인스턴스는 메모리에 할당된다.

> 특징

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

// 클래스
public class Animal {
    ...
}

// 객체와 인스턴스
public class Main {
    public static void main(String[] args) {
        Animal cat, dog; // 객체
        
        // 인스턴스화
        cat = new Animal() // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
        dog = new Animal() // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
    }
}

 

 

 

 

 

< 객체(Object) vs. 인스턴스(Instance) >

  • 클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
  • 객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다.
  • 객체는 '실체', 인스턴스는 '관계'에 초점을 맞춘다.
    • 객체를 '클래스의 인스턴스'라고도 부른다.
  • '방금 인스턴스화하여 레퍼런스에 할당한' 객체를 인스턴스라고 말하지만, 이는 원본(추상적인 개념)으로부터 생성되었다는 것에 의미를 부여하는 것일 뿐, 엄격하게 객체와 인스턴스를 나누긴 어렵다.

'백엔드' 카테고리의 다른 글

HTTP 상태 코드  (0) 2023.04.06
HTTP Method  (0) 2023.04.06
객체지향 5원칙(SOLID)  (1) 2023.04.04
JavaScript enum  (1) 2023.04.04
JavaScript REST API  (0) 2023.04.04