객체 vs 인스턴스

dev_Black_Snake·2024년 1월 15일

용어정리

목록 보기
22/25

사전적 정의

  • 객체 : 특정 사실을 객관화하여 인식하거나 이해하는 대상
  • 인스턴스 : 실행 중인 임의의 프로세스, 클래스의 현재 생성된 오브젝트

용어 설명

객체

객체는 현실 세계(시스템)에서 실제 인식할 수 있는 대상을 의미한다. OOP의 관점으로 보았을 때, 객체는 현실 세계를 디지털로 표현할 대상이라고 부를 수 있다. 현실 세계에서 객체의 개수는 무한대에 가깝다고 볼 수 있다.

객체는 다음과 같은 모든 대상을 지칭한다.

  • 물리적 객체
  • 개념적 객체 (만져지지는 않지만, 그 개념이 없으면 시스템을 설명할 수 없는 것)
  • SW적 개념을 갖는 객체

객체는 아래 3요소로 구성되어 있다.

  • 식별성 (identity)
  • 상태 또는 속성 (state, attribute)
  • 행위 (behavior)

객체가 갖는 상태나 행위 역시 무한대에 가깝다. 현실 세계에서 객체는 저마다 정말 다양한 상태를 갖고, 다양한 행동을 할 수 있으니까.

객체에 대해 더 자세한 내용을 보고 싶다면, 제 블로그에 'OOP' 또는 '객체지향'이라고 검색해서 하나씩 살펴보시기 바랍니다.

인스턴스

인스턴스는 class를 구현하여 메모리에 할당한 것이다. class는 객체를 추상화한 것으로, domain에 따라 제한된 상태와 행위를 갖는다. 즉, 객체와 달리 인스턴스는 유한한 상태와 행위를 갖는 것이 가장 뚜렷한 차이점이다. 인스턴스에서 상태는 '필드 또는 멤버 변수', 행위는 '메소드'라고 부른다.

결론

객체는 analog, 인스턴스는 digital라고 생각하면 그 차이를 정말 쉽게 이해할 수 있다.

참고문헌

https://iosdevlime.tistory.com/entry/CSBasic-%EB%84%88%EC%99%80-%EB%82%98-%EC%9A%B0%EB%A6%AC-%EB%AA%A8%EB%91%90-%EA%B0%9D%EC%B2%B4Object

profile
"개발 관련 용어 간단 정리"가 이 블로그의 메인 컨텐츠입니다. 목표는 "개발자들의 위키백과"를 만드는 것입니다. 포스트를 읽는데 요구되는 시간이 대부분 1분 내외이므로, 개발 용어를 리마인드하고자 하면 제 포스트들을 여러 개 읽어보는 것을 추천합니다.                                ※ 주의 : 현재 velog 검색엔진의 문제로, 제 블로그에서 검색하면 제 글이 검색이 안됩니다. 해결법은 제 블로그의 소개글을 확인해주세요.

0개의 댓글