class를 활용해서 모듈화하는 이유

서민수·2023년 9월 10일
0
post-thumbnail

이번에는 class를 활용해 모듈화 하는 이유에 대해 알아보려고 한다.

그렇다면 우선 class가 무엇인지부터 알고 가야한다.

Class란?

Class는 객체지향 프로그래밍에서 객체를 생성하기 위한 일종의 설계도이다. 검색을 해봤을 때 다들 붕어빵과 붕어빵틀을 비유로 드는데 여기서 붕어빵은 객체, 붕어빵틀은 클래스로 비유로 든다.

이유로는 클래스는 객체를 생성하기 위한 템플릿이다. Class를 통해 원하는 구조의 객체 틀을 짜놓고 비슷한 모양의 객체를 계속 찍어낼 수 있기에 붕어빵과 붕어빵 틀을 예시로 드는 사람들이 많다.

이는 객체지향 프로그래밍과 깊은 연관성을 가지고 있으므로 객체지향 프로그래밍에 대해서는 다음에 한번 정리해서 글을 써보겠다.

JavaScript와 Class의 관계

자바스크립트는 프로토타입 기반 객체지향 언어이다. 이는 클래스가 필요 없는 언어이다.
ES5까지는 해도 생성자 함수와 프로토타입을 통해 상속을 사용했지만 ES6에 도입된 클래스 더북에 훨씬 간편하게 구현할 수 있게 되었다.

// 생성자 함수 (ES5)
var Person = (function() {
    function Person(name) {
    	this.name = name;
    }
    Person.prototype.sayHi = function () {
    	console.log('Hi, ' + this.name)
    }
}());

var me = new Person('Kang')
me.sayHi() // Hi, Kang

// 클래스 (ES6)
class Person {
    constructor(name) {
    	this.name = name;
    }
    sayHi() {
    	console.log('Hi, ' + this.name)
    }
}

const me = new Person('Kang')
me.sayHi() // Hi, Kang

Class의 특징

클래스는 일급 객체이며, 다음 특징을 갖는다.

  • 런타임에 생성이 가능하다.
  • 변수나 자료구조에 저장할 수 있다.
  • 함수의 매개변수에 전달할 수 있다.
  • 함수의 반환값으로 사용할 수 있다.

🎈 일급 객체란* (First-class object)
함수의 매개변수로 전달되거나, 함수의 결과로 반환되거나, 변수에 할당될 수 있는 모든 객체를 가리킨다.

모듈화란?

모듈이란 재사용할 수 있는 단위로 나눈 코드들의 묶음이다.

모듈의 특징

  • 유지보수성: 기능들이 모듈화가 잘되어있다면 기능을 개선하거나 수정이 용이하다.
  • 네임스페이스화: 전역변수는 전역공간을 가지기 때문에 코드의 양이 많아지면 겹치는 네임이 생기는데 그 때 모듈로 분리하면 해결가능하다.
  • 재사용성: 똑같은 코드를 반복하지 않고 모듈로 분리시켜 사용이 가능하다.

Class 모듈화

Class는 객체를 생성하기 위한 일종의 템플릿으로, 객체의 속성과 메서드를 정의하는데 사용된다. 이를 활용하여 Class에 해당하는 기능들을 만들고 조합해 모듈화를 할 수 있다.
Class를 사용해 모듈화를 사용하면 좋은 점은 코드들이 구조화 되고, 그로 인해 재사용성이 높아진다. 또 각각의 기준에 따라 구분해놓아 가독성과 유지보수가 좋아진다.

profile
안녕하세요

0개의 댓글