(node.js) 클래스, 인스턴스, 객체, 프로퍼티, 메서드의 개념

김형주·2021년 4월 8일
0

Class

함수는 기능을 포장하는 기술이라면 클래스는 그렇게 만들어진 변수와 함수 중 연관있는 변수와 함수를 선별해 포장하는 기술. 포장하는 이유는 객체 단위로 코드를 그룹화하고 재사용하기 위함. 기본적으로 Class라는 것은 객체 단위로 묶어서 어떠한 기능을 덩어리하는 것이 중점적인 아이디어다. 이것은 기능에 국한된 것이 아니라 특정한 개체를 만드는 용도로도 사용될 수 있으며, 이 클래스를 이용해서 객체를 실체화하는 것을 인스턴스화라고 한다. Class는 어떤 것을 명시적으로 정의하는 것을 의미한다.

class Human{
constructor(name, age, height, gender){ //생성자 함수 (인스턴스 조건 전달인자)
	this.name = name;
	this.age = age;
	this.height = height;
	this.gender = gender;
	}
    eat(food){
	console.log(`${this.name}${food}를 먹습니다...`
	}
    walk(){
	console.log(`${this.name}이 걷고 있습니다.`);
    }
}

class field와 멤버 변수(property)

위의 코드를 잘 살펴보면, Human이라는 클래스를 명시적으로 선언하므로써 이런 형태의 class를 정의한다. constructor는 class field 상에서 다양한 멤버 변수를 가지고 있다.

constructor(name, age, height, gender){ //생성자 함수 (인스턴스 조건 전달인자)
	this.name = name;
	this.age = age;
	this.height = height;
	this.gender = gender;
	}

class field(constructor 내부 scope)안에서 정의하는 변수들을 멤버변수(member variable) 혹은 멤버 데이터(member data)라고 부른다. 이들은 초기에 인스턴스(instance)가 생성될 때, 가지고 있는 변수들을 초기화시키는 역할을 한다.

class method

    eat(food){
	console.log(`${this.name}${food}를 먹습니다...`
	}
    walk(){
	console.log(`${this.name}이 걷고 있습니다.`);
    }

위의 것들은 메소드(method)라고 부르게 되는데, 함수면서 instance가 사용할 수 있는 기능이 된다.
가령 예시를 살펴보자.

	const jason = new Human('jason', 20, 178, 'male');
    jason.eat('만두'); // 'jason이 만두를 먹습니다.'
    jason.walk();     // 'jason이 걷고 있습니다.'

다음과 같이 사용할 수 있다. 이렇게 변수를 통해서 인스턴스를 받아두고, 변수명을 통해서 메소드에 접근하게 되면 해당 함수를 사용하는 효과를 낼 수 있다.

Instance

클래스를 사용하려면 일반적으로 인스턴스를 생성해서 사용한다.

한 페이지 내에 두개 이상의 같은 동작을 하는 UI를 만들경우 두개의 클래스를 만드는 것이 아니라 하나의 클래스를 만든 후 두개의 인스턴스를 만들어 사용.

객체

객체라는 용어는 인스턴스의 다른 말 (두 용어 모두 클래스의 실체를 나타냄.)

명확히 구분해서 설명하면 인스턴스 라는 용어는 new 키워드를 이용해 클래스의 실체를 생성할 때 주로 사용하며 객체라는 용어는 인스턴스 생성 후 클래스 에서 제공하는 프로퍼티와 메서드를 사용할 때 주로 사용.

profile
만물에 관심이 많은 잡학지식사전이자, 새로운 도전을 꿈꾸는 주니어 개발자 / 잡학지식에서 벗어나서 전문성을 가진 엔지니어로 거듭나자!

0개의 댓글