본문 바로가기
자바스크립트

클래스, 오브젝트, 인스턴스

by Falto 2022. 9. 15.

요즘엔 대부분의 프로그래밍 언어가 객체지향이다.
객체 = object

참고로, 프로그램 언어의 최강자 c 는 객체지향 언어가 아니다.
그럼에도 불구하고 최강자이다. c를 객체지향 언어로 확대한 것이 c++이다.
중요한 점은, 객체지향 언어가 아니어도 못하는 것은 전혀 없다.

그럼에도 불구하고 객체지향 언어를 알아야 하고 배워야 하는 이유는?
1. 객체지향 언어가 편리하다.
2. 남들이 객체지향 언어로 짜 놓은 코드가 정말 많다.

소프트웨어는 혼자 다 할 필요없다. 인터넷 검색해보면 나보다 똑똑한 사람들이 짜 놓은 코드가 넘친다.
그걸 가져다가 조금 수정해서 쓰면 되는데, 수정할려면 그 코드를 읽을 수 있어야 한다.
즉, 남들이 짠 코드를 읽을려면 배워야 한다.

< 클래스(class)란 무엇인가? >
클래스는 어떤 일을 하기 위해 필요한 변수들, 함수들을 모아놓은 학급(class)이다.
어떤 사람은 붕어빵을 찍어내기 위한 빵틀이라고도 하는데, 그냥 (변수들+함수들) 모아놓은 것이라고 보면 된다.
예) class ABC = { a, b, c, ..., function1(), function2(), ...}

<객체(object)란 무엇인가?>
객체는 클래스의 copy본이다. 어떤 자료를 여러장 복사할 수 있듯이 하나의 클래스에서 무한개 복사할 수 있다. 복사한 것들의 이름이 같으면 헷갈리기 때문에 이름만 달리 부른다.
예)
obj_a = ABC.copy();
obj_b = ABC.copy();
obj_c = ABC.copy();
....

<인스턴스(instance)란 무엇인가?>
오브젝트와 같은 말이다.
????
같은 의미라면 굳이 하나의 용어만 있으면 되지 않을까? 뭔가 차이가 나니까 instance라고 하는게 아닐까?
차이가 있다고 말하는 사람이 있는가 하면 없다고 말하는 사람도 있다.
제일 중요한 점은,
오브젝트하고 인스턴스 의미 차이를 안다고 해서 프로그램 실력이 1도 좋아지지 않는다는 것이며,
오브젝트 = 인스턴스 라고 여기고 프로그램 해도 버그 1도 안생긴다는 것이다.
간단히 말해서,  오브젝트하고 인스턴스 차이점이 뭔지 시간 쏟는 것은 바보 인증이라는 것이다.
가끔 '오브젝트는 뭐고, 인스턴스는 뭐다..'라고 잘난 척하는 사람이 있을지 모르겠는데, 그땐 그냥 들어주는 척 하자. 1분이면 된다.



'자바스크립트' 카테고리의 다른 글

자바스크립트할 때 흔히 하는 실수들 모음  (0) 2022.09.14
1. 자바스크립트란?  (1) 2022.09.13

댓글