본문 바로가기

Web/Node.JS

[패스트캠퍼스 챌린지 7일차] Javascript 기초이론(3)

Fast campus Logo

 

Fastcampus_Node.js 수강 목록

 

패스트캠퍼스 작심 30일 챌린지 7일차.


Javascript 기초이론 마지막!

오늘은 Prototype에 대해 학습하였다.

 

Prototype은 Javascript에서 상속을 구현하기 위해 사용된다.

객체지향 프로그래밍을 하는 개발자들은 상속의 편리함과 필요성을 알 것이다.

 

예를들어 RedCar와 BlueCar라는 서로 다른 객체가 있고, 둘 다 바퀴가 있고, 굴러간다는 공통점이 있다.

만약 상속 기능이 없다면 각 객체마다 바퀴라는 속성과 굴러간다는 기능을 작성해줘야 한다.

하지만 Car라는 객체에 바퀴라는 속성과 굴러간다는 기능을 작성한 후

RedCar, BlueCar 객체가 상속을 받으면 각자 필요한 속성과 기능을 작성할 필요가 없어진다.

 

이를 Javascript에서는 Prototype을 통해 구현할 수 있는 것이다.

(ES6 문법에서는 Class라는 개념을 이용하여 상속을 구현할 수 있다.)

 

Javascript - Prototype

 

그럼 Prototype을 통해 상속을 구현하면 좋은 점이 뭘까?

코드 구현과 유지보수가 편해질 뿐만 아니라 무엇보다 메모리 낭비를 줄일 수 있다.

 

Javascript에서도 객체를 생성하게 되면 객체에 작성된 속성을 저장하기 위해 메모리를 할당받는다.

당연히 서로 다른 객체에 동일한 function이 작성되면 객체 수만큼 메모리를 사용하게 되지만

상속을 받으면 부모의 Function만 메모리에 적재되고 이를 공유하여 쓸 수 있어 효율적으로 메모리를 활용할 수 있다.

function Person(name) {
	this.name = name;
}

Person.prototype.greet = function greet() {
	return `My name is ${this.name}`;
}

// __proto__는 별도로 공부하기
function Student(name) {
	this.__proto__.constructor(name);
}

Object.setPrototypeOf(Student.prototype, Person.prototype);

 

Node.js도 결국 script이기 때문에 메모리와 관련된 기본적인 개념은 매우 중요하다고 생각한다.

이번 강의를 통해 어떻게 Prototype을 구현하고 상속을 받는지 그 과정에 대해 알게 되었고,

현업에서 Javascript와 Node를 통해 개발할 때 오늘의 강의 내용을 떠올리며

효율적으로 코드를 작성할 수 있도록 고민하고 적용해봐야겠다.


 

[오늘의 학습통계]

패스트캠퍼스 작심 30일 챌린지 7일차 학습통계

 


- 패스트캠퍼스 URL : https://bit.ly/37BpXiC

* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.