[nodejs] Fastify와 테스트 주도 개발

Fastify는 Node.js 웹 프레임워크로, 높은 성능을 제공하며 Express에 비해 빠르고 안정적입니다. Fastify는 테스트 주도 개발(Test-Driven Development, TDD)과도 잘 통합되어 있어, 손쉽게 안정적이고 견고한 애플리케이션을 개발할 수 있습니다.

이번 글에서는 Fastify를 사용하여 TDD 방법론을 적용하는 방법에 대해 알아보겠습니다.

1. Fastify 설치 및 기본 설정

먼저 Fastify를 설치하고 기본적인 설정을 해보겠습니다. 아래는 Fastify를 설치하는 명령어입니다.

npm install fastify

다음으로 아래와 같이 server.js 파일에 기본적인 Fastify 서버를 설정해봅시다.

const fastify = require('fastify')();

fastify.get('/', async (request, reply) => {
  return { hello: 'world' };
});

fastify.listen(3000, (err, address) => {
  if (err) {
    console.error(err)
    process.exit(1)
  }
  console.log(`Server listening on ${address}`)
});

위 코드는 / 경로로 요청이 들어왔을 때 hello: 'world'를 반환하는 가장 간단한 Fastify 서버입니다.

2. Fastify 테스트 주도 개발

이제 TDD를 적용해보겠습니다. Fastify는 자체적으로 테스트를 위한 기능을 제공하므로 별도의 라이브러리를 설치할 필요가 없습니다. 아래는 Fastify에서 TDD를 적용하는 예제 코드입니다.

const { test } = require('tap');
const build = require('./server');

test('GET `/` route', async (t) => {
  const fastify = build();

  const response = await fastify.inject({
    method: 'GET',
    url: '/'
  });

  t.same(response.json(), { hello: 'world' });
  fastify.close();
});

위 코드에서 server.js 파일과 같은 디렉토리에 test.js 파일을 생성하고, 위 예제 코드를 복사해 붙여넣기 합니다. 이제 npm test 명령어를 실행하면 해당 테스트가 실행되고 통과해야 합니다.

3. 마치며

이렇게 Fastify를 사용하여 TDD 방법론을 적용하는 방법에 대해 알아보았습니다. Fastify는 강력한 성능과 TDD를 위한 손쉬운 기능을 제공하여 안정적이고 견고한 애플리케이션을 개발하는 데 매우 유용한 도구입니다.

더 많은 정보는 Fastify 공식 문서에서 확인할 수 있습니다.