Skip to main content

Nodejs

Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이며 다양한 자바스크립트 애플리케이션을 실생할 수 있습니다. Node 개발을 위해서는 Node를 설치해야 하며 Node Version Manager(NVM)와 Node Package Manager (NPM)을 통해 개발 환경을 구축할 수 있습니다.

투라코에서는 JavaScript 기반의 백엔드 애플리케이션 개발을 위한 컴포넌트 형태로 제공됩니다. NodeJs 컴포넌트를 이용하면 즉시 개발을 시작할 수 있게 템플릿 코드를 생성하여 전달하며 개발자는 비즈니스 로직만 개발하여 배포하도록 지원합니다.


컴포넌트 배치

NodeJS 컴포넌트는 아키텍처 설계 화면 (이하 디자이너 화면)에서 좌측에 위치한 컴포넌트 목록에서 백엔드 카테고리에 있습니다.

⓵ 설계화면 왼쪽 컴포넌트 리스트 화면에서 NodeJS 컴포넌트를 선택 후 디자이너 화면으로 드래그 & 드롭합니다.

⓶ 선택된 NodeJS 컴포넌트에 대한 이름과 설명을 입력합니다.

⓷ 이름과 설명을 입력 후 확인을 클릭합니다.
     이름과 설명은 필수 입력값이며 입력하지 않으면 확인 버튼이 활성화되지 않습니다.

입력된 이름과 설명은 아키텍처 설계 및 생성되는 리소스에 사용됩니다.


속성 설정

설정 가능한 컴포넌트 속성은 이미 설정한 이름 및 설명을 제외하고 아래와 같습니다.

  • 포트 설정 -> 컨테이너의 포트 정보로 주입
  • 영구 볼륨 -> 컨테이너 저장소로 주입
  • 환경 변수 -> 컨테이너의 환경 변수로 주입

포트 설정

⓸ 포트 정보는 3가지 정보를 반드시 입력해야 합니다.
     미 입력시 컨테이너 실행 후 정상적으로 접속이 되지 않을 수 있습니다.

  • 프로토콜 -> 통신시 사용할 프로토콜 설정(현재는 http만 지원)
  • 입력포트 -> 서비스 입력 포트로 사용
  • 타겟포트 -> 서비스 출력 포트이며 컨테이너의 입력 포트로 주입

스토리지 및 환경 변수 설정

컨테이너는 로컬 스토리지를 사용할 수 있으나 컨테이너의 특성상 재시작되거나 삭제되는 경우 저장된 데이터가 같이 삭제됩니다.
이러한 특성 때문에 외부에 영구 볼륨을 설정하고 저장을 해야 데이터가 유실되지 않고 보관이 됩니다.
Turaco에서는 운영 환경에서 많이 사용하는 2가지 스토리지 클래스를 지원합니다.

  • NFS 기반의 스토리지 클래스 (tlc-nfs-sc)
  • Disk 기반의 스토리지 클래스 (tlc-block-sc)

⓹ 스토리지 설정에는 아래와 같이 3개의 속성이 있습니다.

  • 접근 모드 -> 스토리지 접근 모드 선택
  • 볼륨 크기 -> 볼륨 크기 입력(ex. 5Gi)
  • 스토리지 클래스 -> 스토리지 클래스 이름 입력(기본값 유지 추천)

⓺ 스토리지 접근 모드를 선택하는 버튼을 클릭합니다.
     3가지 옵션 중 원하는 옵션을 선택할 수 있습니다.

⓻ 스토리지 접근 모드를 선택하는 버튼을 클릭합니다.
     3가지 옵션 중 원하는 옵션을 선택할 수 있습니다.

  • ReadWriteMany -> 여러개의 컨테이너에서 읽고 쓸수 있음
  • ReadWriteOnce -> 하나의 컨테이너에서만 읽고 쓸수 있음
  • ReadOnlyMany -> 여러개의 컨테이너에서 읽을 수 있음

⓼ 컨테이너 내부에서 참조할 환경 변수를 k-v 형식으로 주입합니다.
     '+ADD' 버튼을 누르면 설정할 수 있는 옵션이 나타납니다.

⓽ 원하는 키와 값을 입력합니다.
     '+ADD' 버튼을 통해 필요한 만큼 반복해서 추가합니다.