[javascript] Express.js에서의 웹 스크린샷 구현 방법

Express.js는 Node.js를 기반으로 한 웹 애플리케이션 프레임워크로, 웹 서버 개발에 많이 사용됩니다. 이번 포스트에서는 Express.js에서 웹 스크린샷을 구현하는 방법에 대해 알아보겠습니다. 웹 스크린샷은 웹 페이지를 이미지 형태로 캡처하여 저장하거나 다른 용도로 사용할 수 있는 기능을 말합니다.

Puppeteer 사용하기

Puppeteer는 Google에서 개발한 Node.js용 Headless Chrome 라이브러리입니다. 웹 페이지를 자동으로 조작하고 스크린샷을 캡처할 수 있는 기능을 제공합니다. Express.js에서 Puppeteer를 사용하여 웹 스크린샷을 구현해 보겠습니다.

먼저, Express.js와 Puppeteer를 설치해야 합니다.

npm install express puppeteer

다음은 Express.js 애플리케이션에서 웹 스크린샷을 생성하는 예제입니다.

const express = require('express');
const puppeteer = require('puppeteer');

const app = express();
const PORT = 3000;

app.get('/screenshot', async (req, res) => {
  try {
    // Puppeteer를 초기화합니다.
    const browser = await puppeteer.launch();

    // 새로운 페이지를 생성합니다.
    const page = await browser.newPage();

    // 웹 페이지로 이동합니다.
    await page.goto('https://www.google.com');

    // 스크린샷을 캡처합니다.
    const screenshot = await page.screenshot();

    // 스크린샷을 HTTP 응답으로 전송합니다.
    res.set('Content-Type', 'image/png');
    res.send(screenshot);

    // Puppeteer를 종료합니다.
    await browser.close();
  } catch (error) {
    console.error(error);
    res.status(500).send('Error');
  }
});

app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

위의 예제 코드에서 /screenshot 경로로 요청이 들어오면 Puppeteer를 사용하여 구글 홈페이지의 스크린샷을 캡처하고, 해당 스크린샷을 HTTP 응답으로 전송합니다.

마무리

이번 포스트에서는 Express.js에서 웹 스크린샷을 구현하는 방법에 대해 알아보았습니다. Puppeteer를 사용하여 웹 페이지를 자동으로 조작하고 스크린샷을 캡처할 수 있습니다. 이를 응용하여 웹 스크린샷을 저장하거나 다른 용도로 활용할 수 있습니다.