webOS Article/3. Web Service 개발하기

Nodejs를 이용한 웹서비스 개발

하이하정 2021. 9. 19. 21:56

이 포스팅은 webOS OSE 개발자 사이트 : Using Node.js Modules 를 참고하여 작성되었습니다.

 

  • Node.js란?
  • Node.js 서비스 개발하기

 

Nodejs 란?


1. Node.js

Node.js는 자바스크립트를  기반으로 한 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼입니다.  내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제가 가능합니다. 

 

2. Node.js를 사용하는 이유

 자바스크립트 언어를 활용하는 서버기술이기 때문에 빠른 개발 및 응용이 가능합니다. 또한  npm을 이용하여 자신이 필요한 라이브러리와 패키지를 검색해서 설치하고 활용할 수 있기 때문에 개발속도와 효율성을 크게 향상시킬 수 있습니다.  Non-blocking I/O와 단일 쓰레드를 이벤트 루프를 통한 높은 처리 성능 때문에 Node.js를 사용합니다. 

 

3. Node.js Core  Modules

webOS에서 Node.js Core Modules는 별다른 설치 없이도 사용이 가능합니다. Core Modules는 Node.js 프로세서가 시작될 때 자동으로 로드되고 binary distribution으로 컴파일되지만 어플리케이션에서 Node.js Core Modules을 사용하기 위해서는 먼저 Core Modules을 가져와야 합니다.

 

Core Modules

위의 표는 중요한 Core Modules에 대한 표 입니다.

Node.js Modules 사이트에서 Node.js Modules에 대한 자세한 설명을 참고할 수 있습니다.

 

Node.js 서비스 개발하기


Node.js Core Modules중  fs module 을 활용하여 파일을 생성해 보겠습니다. fs는 File System의 줄임말 입니다. 

 

1. index.html

Node.js Core Modules 중에서 파일을 생성하는  fs module 예제를 보겠습니다.

var bridge = new WebOSServiceBridge();

    function writeFile() {
        console.log("call my service");
        const url = 'luna://com.cosmos.nodeapp.service/writeFile';
        const params = {};
        bridge.onservicecallback = (msg) => {
            console.log(msg);
            let res = JSON.parse(msg);
            document.getElementById("txt_msg").innerHTML = res.reply;
        };

        bridge.call(url, JSON.stringify(params));
    }
<button id="writeFile" onclick="writeFile()">Write File</button>

버튼을 클릭하면 파일을 생성하는 writeFile()이 실행되는 버튼을 만들었습니다.

 

2. service.js

const fs = require('fs');

service.register("writeFile", function(message) {
    fs.writeFileSync('/media/internal/foobar.txt', 'sample text', "utf8");
    message.respond({
        reply: "write complete"
    });
});

writeFile이라는 서비스를 등록합니다. /media/internal 경로에 foobar.txt라는 파일이 성공적으로 생성되면 화면이 write complete로 바뀝니다. foobar.txt 파일은 sample text라는 내용이 담깁니다.

 

3. 결과

"Write File" 버튼을 클릭하면 화면의 Using nodejs modules examples 메시지가 write complete라고 변합니다. 

 

ares-shell -d명령어를 사용하여 타겟디바이스에 접속한 후  media/internal 경로를 확인하면 foobar.txt라는 파일이 생성된 것을 확인할 수 있습니다.

 

vi 명령어를 사용하여 foobar.txt의 내용을 확인할 수 있습니다.

sample text라는 내용이 담긴 파일이 생성된 것을 확인할 수 있습니다.