푸터 콘텐츠로 바로가기
노드 도움말

LoopBack Node.js (개발자를 위한 작동 방식)

LoopBack 프레임워크 애플리케이션 내에서 동적 PDF 생성을 위한 완벽한 솔루션은 PDF 문서를 프로그래밍 방식으로 생성하는 라이브러리인 IronPDF 와 API 구축용 Node.js 프레임워크인 LoopBack의 원활한 통합을 통해 제공됩니다. 모델 생성, 데이터 소스 유효성 검사, 원격 메서드 및 접근 제어와 같은 기능을 통해 LoopBack 프레임워크는 API/웹 개발을 더욱 쉽게 만들어주며, IronPDF 더욱 정교한 PDF 생성 기능을 제공하여 이를 향상시킵니다.

개발자는 이 통합 기능을 통해 외부 API 및 데이터베이스를 포함한 여러 소스에서 데이터를 가져와 PDF를 즉시 생성할 수 있습니다. 이를 통해 송장, 인증서, 보고서 등과 같은 프로젝트 요구 사항을 충족하는 맞춤형 레코드 또는 비즈니스 도메인 객체를 생성할 수 있습니다. LoopBack은 비동기 방식이기 때문에 IronPDF의 기능을 보완하여 이벤트 루프에 간섭하지 않고 PDF 생성 작업을 원활하게 처리하므로 응답성과 최적의 성능을 보장합니다.

LoopBack과 IronPDF 사용하려면 LoopBack의 CLI 도구를 사용하여 새 프로젝트를 생성하고 npm을 사용하여 IronPDF 종속성으로 설치하세요. LoopBack의 미들웨어 및 원격 메서드 기능을 활용하여 클라이언트 요청에 즉시 PDF를 생성함으로써 통합이 간편해집니다. 종합적으로 볼 때, 이 통합을 통해 개발자는 LoopBack 앱 내에서 다양한 문서 생성 요구 사항을 효율적으로 처리할 수 있게 됩니다.

LoopBack Node.js 란 무엇인가요?

LoopBack 이라는 강력한 Node.js 프레임워크는 API를 생성하고 다양한 데이터 소스에 연결하는 과정을 간소화하기 위해 개발되었습니다. StrongLoop의 제품인 LoopBack을 사용하면 개발자는 확장 가능하고 적응력이 뛰어난 앱을 쉽게 설계할 수 있습니다. LoopBack은 기본적으로 Express 프레임워크를 기반으로 구축되었으며, 프로그래머가 애플리케이션의 도메인을 나타내는 데이터 모델을 생성할 수 있도록 하는 모델 기반 개발 방법론을 사용합니다. MySQL 및 PostgreSQL과 같은 관계형 데이터베이스, MongoDB와 같은 NoSQL 데이터베이스는 물론 외부 REST API 및 SOAP 서비스도 이러한 모델과 쉽게 통합할 수 있습니다.

LoopBack은 제공된 모델을 기반으로 RESTful 엔드포인트를 자동으로 생성하여 API 개발 프로세스를 간소화한다는 점에서 독특합니다. 또한 LoopBack은 유효성 검사, 권한 및 인증에 대한 통합 지원을 제공하여 프로그래머가 API를 보호하고 데이터 무결성을 보장할 수 있도록 합니다. LoopBack의 미들웨어 아키텍처는 Express.js를 기반으로 하기 때문에 확장성과 유연성이 뛰어나 개발자는 기존 미들웨어를 활용하거나 고유한 요구 사항을 충족하는 맞춤형 미들웨어를 만들 수 있습니다.

단순한 REST API를 구축하든 정교한 마이크로서비스 아키텍처를 구축하든, LoopBack은 개발 속도를 높이고 안정적이고 확장 가능한 솔루션을 제공하는 데 필요한 기능과 도구를 갖추고 있습니다. 방대한 문서와 활발한 커뮤니티 덕분에 개발자들은 최첨단 온라인 및 모바일 애플리케이션을 개발할 때 이 플랫폼을 자주 선택합니다.

LoopBack node js (개발자를 위한 작동 방식): 그림 1 - LoopBack

LoopBack의 특징

  • 모델 기반 아키텍처: LoopBack은 개발자가 스키마 기반 접근 방식을 통해 데이터 모델을 정의할 수 있도록 함으로써 모델 기반 개발을 지원합니다. 데이터베이스, REST API, SOAP 서비스 등 다양한 데이터 소스를 모델을 사용하여 표현할 수 있습니다.
  • 데이터 소스에 구애받지 않음: 관계형 데이터베이스(MySQL, PostgreSQL), NoSQL 데이터베이스(MongoDB), 외부 REST API 및 SOAP 서비스는 LoopBack이 지원하는 다양한 데이터 소스 중 일부에 불과합니다.
  • 자동 REST API 생성: LoopBack은 사전 정의된 모델을 사용하여 API 탐색기에서 RESTful API 엔드포인트를 자동으로 생성함으로써 반복적인 코드 작성을 줄이고 개발 속도를 높입니다.
  • 인증 및 권한 부여에 대한 내장 지원: LoopBack은 이러한 기능을 내장 지원하므로 개발자는 역할 기반 접근 제어(RBAC), 사용자 인증 및 기타 보안 조치를 API에 통합할 수 있습니다.
  • 미들웨어 및 원격 메서드: 개발자는 LoopBack을 사용하여 미들웨어 및 원격 메서드를 제공함으로써 API 엔드포인트의 동작을 변경할 수 있습니다. 원격 메서드는 HTTP를 통해 원격으로 호출할 수 있는 맞춤형 기능을 제공하는 반면, 미들웨어 함수는 요청과 응답을 가로채고 수정할 수 있습니다.
  • LoopBack용 명령줄 인터페이스(CLI): LoopBack에는 모델 및 컨트롤러 생성, 새 프로젝트 구축, 마이그레이션 수행과 같은 일반적인 작업을 더 쉽게 만들어주는 강력한 CLI 도구가 포함되어 있습니다.
  • LoopBack 컴포넌트와의 통합: LoopBack은 이메일 전송, 파일 저장 및 인증 기능을 제공하는 재사용 가능한 모듈인 컴포넌트 사용을 용이하게 합니다. 이를 통해 개발자는 앱에 새로운 기능을 추가할 때 처음부터 다시 시작할 필요가 없습니다.
  • LoopBack Explorer: 개발자는 LoopBack에 통합된 API 탐색기 도구를 사용하여 API 엔드포인트를 대화형으로 검사하고 테스트할 수 있습니다. 이는 문제 해결을 용이하게 하고 API의 가능성을 이해하는 데 도움이 됩니다.

LoopBack Node.js JS 생성 및 구성

다음 절차를 따르면 Node.js 에서 LoopBack 애플리케이션을 설정하고 구축할 수 있습니다.

LoopBack CLI를 설치합니다.

LoopBack 애플리케이션을 빌드하고 관리하는 데 필요한 리소스를 제공하는 LoopBack 명령줄 인터페이스(CLI)를 설치하는 것이 첫 번째 단계입니다. npm을 사용하여 전역적으로 설치하십시오.

npm install -g @loopback/cli
npm install -g @loopback/cli
SHELL

새로운 LoopBack 애플리케이션 생성

새로운 LoopBack 코어 애플리케이션을 구축하려면 CLI를 사용하십시오. 애플리케이션을 생성하려는 디렉토리를 열고 해당 디렉토리에서 실행하십시오.

lb4 app
lb4 app
SHELL

애플리케이션의 이름, 디렉터리, 활성화하려는 기능 등 애플리케이션에 대한 정보를 제공하려면 안내에 따라 진행하십시오.

다음 정보를 입력하라는 메시지가 표시됩니다.

  1. 프로젝트 이름: 애플리케이션 이름을 입력하세요. 예: my-loopback-app .
  2. 프로젝트 설명: 선택적으로 응용 프로그램을 설명할 수 있습니다.
  3. 프로젝트 루트 디렉터리: 기본값을 사용하거나 다른 디렉터리를 지정합니다.
  4. 응용 프로그램 클래스 이름: 기본값인 Application을 그대로 사용합니다.
  5. Prettier 활성화: 코드 서식 지정을 위해 Prettier를 활성화할지 여부를 선택합니다.
  6. TSLINT 활성화: 코드 린팅을 위해 TSLint를 활성화할지 여부를 선택합니다.
  7. Mocha 활성화: 테스트 실행을 위해 Mocha를 활성화할지 여부를 선택합니다.

CLI는 프로젝트 구조를 생성하고 필요한 종속성을 설치합니다.

프로젝트 구조를 살펴보세요

프로젝트 디렉토리는 다음과 같은 구조를 갖게 됩니다.

my-loopback-app/
├── src/
│   ├── controllers/
│   ├── models/
│   ├── repositories/
│   ├── index.ts
│   ├── application.ts
│   └── ...
├── package.json
├── tsconfig.json
└── ...

모델 정의

데이터 구조를 지정하려면 모델을 직접 개발하거나 LoopBack CLI를 사용하십시오. 다양한 데이터 구조와 소스를 통해 지원될 수 있는 모델은 프로그램 내의 사물을 나타냅니다. 예를 들어, 다음 명령어를 실행하여 Product라는 새 모델을 생성하세요.

lb4 model
lb4 model
SHELL

모델의 속성과 연결을 지정하려면 지침을 따르십시오.

컨트롤러를 생성하세요

PDF 문서 생성 요청을 처리하려면 새 컨트롤러를 생성하세요. 새 컨트롤러를 생성하려면 LoopBack CLI에서 다음 명령을 사용하십시오.

lb4 controller
lb4 controller
SHELL

컨트롤러의 이름과 관련 모델을 정의하려면 안내에 따라 진행하면 됩니다. 예를 들어 컨트롤러의 속성 이름을 Report 모델과 연결하고 이름을 ReportController로 지정한다고 가정해 보겠습니다.

데이터 소스 정의

모델이 통신할 데이터 소스를 결정하십시오. LoopBack은 MySQL, PostgreSQL, MongoDB 등 다양한 데이터베이스를 지원합니다. 데이터 소스를 구성하려면 datasources.json 파일을 업데이트하거나 LoopBack CLI를 사용하십시오.

LoopBack을 살펴보세요

LoopBack의 기능을 조사하려면 내장된 API 탐색 도구를 http://localhost:3000/explorer에서 사용하십시오. 여기에서 API 엔드포인트를 탐색하고 테스트할 수 있습니다.

Ping 컨트롤러 코드 예시

import {inject} from '@loopback/core';
import {
  Request,
  RestBindings,
  get,
  response,
  ResponseObject,
} from '@loopback/rest';

/**
 * OpenAPI response for ping()
 */
const PING_RESPONSE: ResponseObject = {
  description: 'Ping Response',
  content: {
    'application/json': {
      schema: {
        type: 'object',
        title: 'PingResponse',
        properties: {
          greeting: {type: 'string'},
          date: {type: 'string'},
          url: {type: 'string'},
          headers: {
            type: 'object',
            properties: {
              'Content-Type': {type: 'string'},
            },
            additionalProperties: true,
          },
        },
      },
    },
  },
};

/**
 * A simple controller to bounce back http requests
 */
export class PingController {
  constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}

  // Map to `GET /ping`
  @get('/ping')
  @response(200, PING_RESPONSE)
  ping(): object {
    // Reply with a greeting, the current time, the url, and request headers
    return {
      greeting: 'Hello from LoopBack',
      date: new Date(),
      url: this.req.url,
      headers: Object.assign({}, this.req.headers),
    };
  }
}

위 코드의 출력 결과입니다.

LoopBack node js (개발자를 위한 작동 방식): 그림 2 - LoopBack 출력

시작하기

먼저 LoopBack Node.js 와 IronPDF 사용하여 동적으로 생성된 정보를 포함하는 PDF 문서를 만드는 예제 애플리케이션을 만들어 보겠습니다. 이 설명서는 단계별로 자세한 설명을 담고 있습니다.

IronPDF 란 무엇인가요?

IronPDF 라는 애플리케이션 라이브러리는 PDF 파일을 더 쉽게 생성, 편집 및 관리할 수 있도록 개발되었습니다. 이 애플리케이션을 사용하면 개발자는 HTML 문서에서 텍스트와 이미지를 추출하고, 헤더와 워터마크를 적용하고, 여러 PDF 문서를 병합하는 등 다양한 작업을 수행할 수 있습니다. IronPDF의 사용자 친화적인 API와 포괄적인 문서 덕분에 개발자는 고품질 PDF 문서를 손쉽게 자동으로 생성할 수 있습니다. IronPDF 청구서, 보고서 또는 기타 문서 작성 등 다양한 시나리오에서 문서 워크플로를 개선하고 최고의 사용자 경험을 제공하는 데 필요한 모든 기능과 역량을 제공합니다.

LoopBack node js (개발자를 위한 작동 방식): 그림 3 - IronPDF

IronPDF 의 특징

HTML을 PDF로 변환하는 것은 CSS와 JavaScript 포함한 모든 HTML 콘텐츠에 사용할 수 있는 간단하고 빠른 프로세스입니다.

  • PDF 파일 병합: 문서 관리 작업을 간소화하기 위해 여러 PDF 문서를 하나의 PDF 파일로 병합할 수 있습니다.
  • 텍스트 및 이미지 추출: PDF 파일에서 텍스트와 이미지를 추출하여 추가적인 데이터 분석 또는 처리에 활용할 수 있도록 합니다.
  • 워터마크: 보안 또는 브랜드 이미지 구축을 위해 PDF 페이지에 텍스트나 이미지 워터마크를 추가할 수 있습니다.
  • 머리글 및 바닥글 포함: PDF 문서의 머리글과 바닥글을 사용하면 사용자 지정 메시지 또는 페이지 번호를 포함할 수 있습니다.

IronPDF 설치하세요

IronPDF 기능을 활성화하려면 Node 패키지 관리자를 사용하여 필요한 Node.js 패키지를 설치하십시오.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

LoopBack을 IronPDF Node.js 와 통합하기

IronPDF를 사용하여 PDF 문서를 생성하려면 생성된 컨트롤러 파일(report.controller.ts 또는 report.controller.js)에 다음 논리를 구현하십시오:

import {inject} from '@loopback/core';
import {Request, RestBindings, get, response} from '@loopback/rest';
const IronPdf = require('@ironsoftware/ironpdf');

// Configure IronPDF license key, if needed
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({licenseKey: ''});

/**
 * Controller handling PDF generation
 */
export class ReportController {
  constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}

  @get('/generate-pdf', {
    responses: {
      '200': {
        description: 'PDF file',
        content: {'application/pdf': {schema: {type: 'string', format: 'binary'}}},
      },
    },
  })
  async generatePdf(): Promise<Buffer> {
    // HTML content to be converted to PDF
    const htmlContent = '<html><body><h1>Hello, IronPDF!</h1></body></html>';

    // Generate PDF from HTML
    const pdf = await IronPdf.PdfDocument.fromHtml(htmlContent);

    // Get the PDF as a Buffer
    const pdfBuffer = await pdf.saveAsBuffer();

    // Return the PDF buffer to serve as a downloadable file
    return pdfBuffer;
  }
}

보고서 인스턴스 생성과 PDF 생성은 ReportController에 의해 처리됩니다. HTML 콘텐츠는 IronPDF를 사용하여 PDF 버퍼로 변환되며 generatePdf 메소드를 통해 반환됩니다. IronPDF를 사용하여 HTML을 PDF로 렌더링하려면 generatePdf 함수를 사용합니다. LoopBack 컨트롤러는 이러한 통합을 손쉽게 처리합니다. 그런 다음 클라이언트로부터의 HTML 콘텐츠를 수신하기 위해 GET 엔드포인트 /generate-pdf를 정의합니다. 저희는 IronPDF 라이브러리를 이용하여 엔드포인트 내부에서 제공된 HTML 정보를 PDF로 변환합니다.

특히, 우리는 PDF 파일의 이진 버퍼를 생성하기 위해 pdf.saveAsBuffer()를 사용하고 JSON 파일에서 PDF 객체를 구성하기 위해 IronPdf.PdfDocument.fromHtml(htmlContent)를 사용합니다. 그런 다음 이 버퍼는 적절한 MIME 유형(application/pdf)과 함께 클라이언트에 다시 전송됩니다. PDF 생성 중 발생하는 모든 문제는 3000번 포트에서 수신 대기 중인 서버에서 감지 및 기록됩니다. 클라이언트는 이에 대한 응답으로 500 상태 코드를 수신합니다. 이 설정을 통해 HTML 콘텐츠에서 동적 PDF를 생성할 수 있으며, 이는 웹 애플리케이션용 청구서, 보고서 또는 기타 문서를 만들 때 유용합니다.

LoopBack node js (개발자를 위한 작동 방식): 그림 4 - PDF 출력

결론

마지막으로, IronPDF 와 LoopBack 4의 통합은 온라인 애플리케이션 개발을 위한 강력한 조합을 제공합니다. LoopBack 4를 사용하면 개발자는 강력한 프레임워크를 통해 RESTful API를 쉽게 만들 수 있으므로 상용구 코드 작성 대신 비즈니스 로직에 집중할 수 있습니다. 하지만 IronPDF HTML 텍스트로부터 동적인 PDF 문서를 생성할 수 있는 원활한 PDF 생성 기능을 갖추고 있습니다.

또한 LoopBack 4와 IronPDF 모두의 유연성과 사용 편의성 덕분에 개발 프로세스가 간소화되어 개발자가 고품질 애플리케이션을 신속하게 제작할 수 있습니다. LoopBack 4가 API 백엔드 액세스 제어를 관리하고 IronPDF PDF 생성을 처리하기 때문에 개발자는 비즈니스 요구 사항을 충족하고 훌륭한 사용자 경험을 제공하는 데 집중할 수 있습니다.

IronPDF다른 8개의 라이브러리를 개발 스택에 통합함으로써 고객과 최종 사용자에게 풍부한 기능과 고급 소프트웨어 솔루션을 보장할 수 있습니다. 더 나아가, 이러한 견고한 기반은 프로세스, 백엔드 시스템 및 계획을 최적화할 것입니다. 이 기술들은 포괄적인 문서화, 활기찬 온라인 개발자 커뮤니티, 빈번한 업데이트 덕분에 현대 소프트웨어 개발 프로젝트에 적합하며, 개당 $799에서 시작합니다.

다리우스 세란트
풀스택 소프트웨어 엔지니어 (웹 운영)

다리우스 세런트는 마이애미 대학교에서 컴퓨터 과학 학사 학위를 받았으며, Iron Software에서 풀 스택 웹 운영 마케팅 엔지니어로 근무하고 있습니다. 어린 시절부터 코딩에 매료되었던 그는 컴퓨팅이 신비로우면서도 접근하기 쉬운 분야라고 생각했고, 창의력과 문제 해결 능력을 발휘하기에 완벽한 매체라고 여겼습니다.

Iron Software에서 다리우스는 새로운 것을 만들고 복잡한 개념을 단순화하여 더 쉽게 이해할 수 있도록 하는 것을 즐깁니다. 그는 사내 개발자로서 학생들을 가르치는 데에도 자원하여 차세대 인재들과 전문 지식을 공유하고 있습니다.

다리우스에게 있어 그의 일은 가치 있고 실질적인 영향을 미치기 때문에 보람 있는 일입니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해