본문 바로가기
공부/CS

[CS] 인스턴스화란 무엇일까?(클래스, 객체, 인스턴스)

by 초코팅촉 2024. 1. 2.
728x90

이번시간에는 "인스턴스화"에 대해서 알아보려고 한다.

아마 다들 여기저기서 수업을 듣거나 강좌를 볼때 인스턴스화한다 라는 말은 들어봤을 것이다.

근데 정확한 뜻은 모르고 그냥 느낌상 어떻다 라고만 알수있는데 이번에 확실히 알아보자.

 

인스턴스화란 객체지향에서 나오는 단어인데 주로 붕어빵틀과 붕어빵으로 얘기가 돌아다니는것을 확인할 수 있다.

하지만 이는 좀 부정확한 비유라는게 최근에 나오고 있다.

나도 동의한다. 그래서 나는 이왕 붕어빵틀로 얘기를 했으니까 붕어빵틀에서 크게 벗어나지 않으려 한다.

그래서 붕어빵틀의 설계도와 붕어빵틀로 얘기를 하려고 한다.

 

클래스(Class)와 구조체(Struct)

우리가 클래스나 구조체(스위프트에서는 주로 구조체(Struct)를 기본적인 구조와

내부 작동방식(메소드)등으로 작성한다. 붕어빵틀을 만들기 위한 붕어빵틀 설계도가 되는 셈이다.

한마디로 붕어빵틀 설계도(혹은 공장)인 셈이다.

 

객체(Object)

객체라 하면 기본적으로 우리가 실제로 보고 느낄 수 있는 현실세계에 존재하는 모든것들을 의미한다.

이러면 뭔소린가 싶을수 있는데 사실 클래스(혹은 구조체, 다음부턴 클래스만 말하겠다.)를 설명하기 위한 존재라고 봐야하나..

우리가 인간이라는 객체가 있다면 이 종이 만들어지기 위한 설계도가 있을것이다.(자연의 섭리속에 있지 않을까?)

그렇다면 이 설계도를 기반으로 객체가 만들어 지는것이기 때문에 설계도가 클래스, 객체는 그로부터 탄생한 것이라 볼 수 있겠다.

하지만 특정 설계도로만 만들어진것을 콕찝어 말할수도 아닐수도 있다.

그냥 인스턴스와 혼용되어 사용된다고 생각해도 되겠다만은 꼭 완전히 같은것은 아니고 객체가 더 큰범위라고 알고있으면 될것같다.

 

인스턴스(Instance)

특정 클래스를 사용해 생성된 객체를 "어쩌구 저쩌구 클래스의 인스턴스"라 한다.

"붕어빵틀 클래스의 인스턴스는 붕어빵틀"이라고 할수 있겠다.

다시말해 실체화된 객체를 인스턴스라 한다고 보면 된다.

인스턴스는 객체에 포함되는 더 작은 범위라고 보면 된다.

실제로 메모리에 객체가 할당되면(실제로 사용될때) 인스턴스라고 하는것이다.

한마디로 설계도를 기반으로 제작되어 만들어진 실제 붕어빵틀이라고 할 수 있겠다.

 

 

최대한 쉽게 설명해보려 했지만 처음보는 사람들한테는 어려울 수 있겠다라는 생각이 든다.

하지만 자꾸 보다보면, 자꾸 만들어보고 써보면 이해할 수 있을거라 본다! 화이팅!

'공부 > CS' 카테고리의 다른 글

[CS] 강타입 언어와 약타입 언어  (0) 2023.12.14
[CS] git 명령어들  (2) 2023.11.28
[CS] Git과 GitHub  (1) 2023.11.28
[CS] ADS(App Define Statement)란?  (2) 2023.11.22