개발/프론트엔드

[개발상식] 간단하지만 헷갈리는 개념들 (클래스, 객체, 인스턴스)

donggyu 2022. 10. 27. 18:46
반응형

이전에 노션에 작성했던 글들을 복습하며 노션에만 남겨두기 아쉬워, 작성 했던 글들을 블로그에 업로드 하려 한다.

 

쉬운내용이지만, 나뿐만 아니라 다른 개발자들도(?) 간간히 헷갈릴 때가 있을 것이라 생각되어 '클래스', '객체', '인스턴스' 에 대해 알아보려 한다.

클래스

객체를 정의하고 만들어 내기 위한 설계도 혹은 틀

클래스 안에는 객체를 만들어내기 위해 필요한 변수와 메서드들이 존재

객체

클래스에 선언된 모양 그대로 생성된 실체를 말하며 ‘클래스의 인스턴스’라고 한다

인스턴스

클래스를 통해서 구현된 대상(객체)이 실제로 구현된 구체적인 실제

즉, 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다. 실체화된 인스턴스는 메모리에 할당된다.

 

예를들어 붕어빵을 만든다고 상황을 가정해보자. 여기서 클래스는 붕어빵을 만들기 위한 틀이 되고 객체는 붕어빵이다. 그리고 인스턴스는 붕어빵 틀로 찍어낸 각각의 붕어빵이다.

 

팥붕어빵과 슈크림붕어빵은 같은 타입의 객체이지만, 인스턴스 관점으로 보았을 때는 다르다.

 


클래스와 객체를 비교해보자!

 

 

객체(Object) VS 인스턴스(Instance)


클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다.

 

 

추상화 기법
분류(Classification)
객체 -> 클래스
실재하는 객체들을 공통적인 속성을 공유하는 범부 또는 추상적인 개념으로 묶는 것

 

인스턴스화(Instantiation)

클래스 -> 인스턴스
분류의 반대 개념. 범주나 개념으로부터 실재하는 객체를 만드는 과정
구체적으로 클래스 내의 객체에 대해 특정한 변형을 정의하고, 이름을 붙인 다음, 그것을 물리적인 어떤 장소에 위치시키는 등의 작업을 통해 인스턴스를 만드는 것을 말한다.
‘예시(Exemplification)’라고도 부른다.

 

 

 

참고

https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html

 

[Java] 클래스, 객체, 인스턴스의 차이 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html

 

[Java] 클래스, 객체, 인스턴스의 차이 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

반응형