공부/자기계발

객체, 클래스, 인스턴스 헷갈리지 않게 정리해드림!

셩잇님 2024. 1. 11. 10:47
반응형

 

댓글을 보니 나와 같은 생각으로 의견을 작성해주신 분이 있어 영상의 내용은 다음과 같이 정리한다.

 


 

좋은 영상 감사드립니다. 2023년도 고생 많으셨습니다. 제 의견을 하나 덧붙여도 될까요?

class, object, instance는 모두 미국에서 만들어진 영어 표현입니다.
영어와 한국어는 서로 다른  언어이며, 서로 다른 문화 및 세계관에 기반하고 있습니다.
따라서 일반적으로 1:1 매칭은 어렵지 않겠습니까?
영어를 무리하게 한국어로 설명하려고 (혹은 한 단어로 간단히 번역하려고) 하다보니 발생하는 문제점도 있는듯 합니다.

제가 권유하고 싶은것은 다양한 영문 학술 서적, 혹은 논문 (컴퓨터 과학 이외에도) 을 읽는 것입니다.
그러면 어느새 자연스럽게 영어식 세계관에 익숙해지면서 본건과 같은 어려움은 줄어들것이라 생각합니다.

굳이 한국어로 번역하자면..
class : 무엇인가의 모임 (수학에 관심 있으신 분들은 set vs class참고)
(클래스에  변수든, 메소드든 모아 놓죠? 따라서 프로그래밍의 맥락에서는 설계도로 해석 가능)

instance : 구체적 예시, 혹은 구체적으로 실현된것
(class를 구체적으로 실현하려면 메모리에 올려야겠죠? 따라서 어떤 변수를 선언하여 메모리에 올린다는것은, 어떤 인스턴스를 만드는 행위로 해석 가능)

object : 독립적, 영속적으로 존재하는 무언가를 지칭하는, 포괄적인 일반 명사 (컵, 책, 인간, 법인 등등)
(클래스는 하나의 독립된 단위, 혹은 부품으로서 상속 등과 관계없이 영속적으로 존재하죠? 따라서 오브젝트의 일부로 볼 수 있습니다.)

단어의 의미에 관해서 깊이 파고 들어가면, 위의 설명들에 대한 반례 혹은 철학적 고찰도 가능하겠습니다.
그러한 고찰은 바람직한 것입니다만, (저도 반례들에 대해서 생각해보았습니다.) 일단 CS관점에서는 일반적인 용례로 충분하다고 생각합니다. 이 세상의 모든 언어가 완벽하게 논리적이지는 않지요.

 


 

영상 출처 : 유튜브 - 널널한 개발자님

https://www.youtube.com/watch?v=alZBfnOiZQw&ab_channel=%EB%84%90%EB%84%90%ED%95%9C%EA%B0%9C%EB%B0%9C%EC%9E%90TV

 

반응형