개발 블로그

자바스크립트 함수로 클래스(Class) 구현하기 & Node.js 모듈(exports) 활용법 본문

Development/Development Environment Setup

자바스크립트 함수로 클래스(Class) 구현하기 & Node.js 모듈(exports) 활용법

카메얀짱 2024. 6. 24. 19:46

기초문법 알기

- node.js로 서버를 구축하려면 먼저 자바스크립트 문법을 알아야 한다.

 

🐢 자바스크립트의 가장 기본인 변수 선언과 조건문&반복문

- 변수 선언 및 사용

    타입에 대한 구분없이 변수 앞에 var로 선언하고 사용한다.

    (변수의 타입은 실행 시에 엔진이 결정하지만(대개), V8(자바스크립트 엔진)엔진의 경우 기계어로 컴파일하기 직전에 컴파일러에 의해 결정)

 

- 함수의 선언 및 사용

    함수는 function 함수명(파라미터){실행코드} 형태로 선언한다.

    함수명을 괄호와 함께 호출하면 실행된다.

// 1. 세 개의 파라미터를 더한 값을 return 하는 함수 sum 선언
function sum(n1, n2, n3){
    return n1 + n2 + n3;
}

// 2. 함수 실행 후 결과값을 total 에 대입
var total = sum(1,2,3);

// 3. total 에 담긴 결과값을 출력
console.log('total='+total);


// console은 node.js 에서 콘솔화면에 로그를 사용하기 위한 내장객체
// 멤버변수인 log('내용')로 로그를 출력할 수 있다.

 

- 반복문과 조건문은 여느 문법들과 같은 형태로 사용된다.

 

- 자바스크립트에서 클래스 사용??

    자바스크립트는 프로토 타입 기반의 함수형 언어이므로 특별히 객체지향을 위한 클래스는 존재하지 않는다.

    ! 하지만, 함수형 언어들의 특징이 함수 자체를 하나의 객체로 취급하기 때문에 단일 함수 또는 파일 자체를 하나의 클래스처럼 사용할 수 있다.

    <자바스크립트에서 함수를 사용하여 객체화하는 방법>

    *예시코드1: 클래스를 사용하여 객체화하기 (testClass.js)

// 클래스 선언
function Clazz(msg) {
    // 멤버 변수 정의
    this.name = 'I am Class';
    this.message = msg;

    // 멤버 함수 정의
    this.print = function() {
        console.log(this.message);
    };
}

// 객체 생성
var myClazz = new Clazz('good to see u!');
console.log(myClazz.message);  // 출력: good to see u!
myClazz.print();  // 출력: good to see u!

 

    *예시코드2: 프로토 타입을 사용하여 메서드 추가하기 (testPrototype.js)

// 클래스 선언
function Clazz(msg) {
    this.name = 'I am Class';
    this.message = msg;
}

// 프로토타입을 사용하여 메서드 추가
Clazz.prototype.print = function() {
    console.log(this.message);
};

// 객체 생성
var myClazz = new Clazz('good to see u!');
console.log(myClazz.message);  // 출력: good to see u!
myClazz.print();  // 출력: good to see u!

 

    *예시코드3: Node.js에서 모듈로 사용하기 (NodeClass.js)

// 클래스 정의
function Clazz() {
    this.name = 'Hello there!';
    this.message = '';
}

// setMessage 메서드 추가
Clazz.prototype.setMessage = function(msg) {
    this.message = msg;
};

// getMessage 메서드 추가
Clazz.prototype.getMessage = function() {
    return this.message;
};

// 모듈로 exports
module.exports = Clazz;

(useClass.js)

// NodeClass 모듈 불러오기
var NodeClass = require('./NodeClass');

// 객체 생성
var nodeClass = new NodeClass();

// setMessage 메서드로 값 설정
nodeClass.setMessage('Good to see u!');

// getMessage 메서드로 값 출력
console.log(nodeClass.getMessage());  // 출력: Good to see u!

전반적인 Node.js와 친해지기 위해 강의를 들으려 한다..

 

🐢 해당 Node.js 프로그래밍 입문 강의

https://youtube.com/playlist?list=PLG7te9eYUi7vxSvo6hvhOaht8oP0PoCwi&si=5dlLK2UicoNz17sy

 

Do it! Node.js 프로그래밍 입문

이지스퍼블리싱 《Do it! Node.js 프로그래밍 입문》 저자 직강 무료 동영상 강의입니다. ▶ 책 보러가기 : http://www.easyspub.co.kr/20_Menu/BookView/PUB/626/PUB

www.youtube.com