[nodejs] Fastify 요청 및 응답 처리

Fastify는 빠르고 효율적인 웹 프레임워크로, Node.js 애플리케이션의 성능을 향상시킬 수 있습니다. Fastify를 사용하면 HTTP 요청 및 응답을 처리하는 방법에 대해 간단히 알아볼 수 있습니다.

HTTP Server 만들기

먼저, Fastify를 사용하여 간단한 HTTP 서버를 만들어보겠습니다. 아래는 Fastify를 사용하여 기본적인 HTTP 서버를 만드는 예제 코드입니다.

const fastify = require('fastify')()

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

fastify.listen(3000, (err, address) => {
  if (err) throw err
  console.log(`Server listening on ${address}`)
})

위 코드에서 fastify() 함수를 사용하여 Fastify 인스턴스를 생성하고, get() 메서드를 사용하여 루트 경로의 GET 요청에 대한 핸들러를 정의합니다. 요청 핸들러 함수는 requestreply 매개변수를 받아들이고, 비동기로 처리됩니다. 마지막으로 listen() 메서드를 사용하여 서버를 특정 포트로 바인딩합니다.

요청 처리

Fastify를 사용하면 다양한 유형의 HTTP 요청을 처리할 수 있습니다. 예를 들어, GET, POST, PUT, DELETE 등의 HTTP 메서드에 대한 요청을 각각 다른 핸들러 함수로 처리할 수 있습니다.

fastify.post('/user', async (request, reply) => {
  // 사용자 생성 로직
  return { user: 'created' }
})

위의 코드는 POST 요청을 처리하는 핸들러 예제입니다. /user 경로로의 POST 요청이 올 경우, 해당 요청을 처리하는 핸들러 함수가 실행됩니다.

응답 처리

요청을 처리한 후에는 적절한 응답을 생성하여 클라이언트에 반환해야 합니다. Fastify를 사용하면 간단하게 JSON 형식으로 응답을 반환할 수 있습니다.

fastify.get('/user/:id', async (request, reply) => {
  const userId = request.params.id
  // 사용자 정보 조회 로직
  const user = { id: userId, name: 'John Doe' }
  reply.send(user)
})

위의 코드에서 reply.send() 메서드를 사용하여 JSON 형식의 응답을 반환합니다. 요청 핸들러 함수 내부에서 필요한 비즈니스 로직을 처리한 후, 적절한 데이터를 응답으로 전송합니다.

결론

Fastify는 빠른 속도와 강력한 기능을 갖춘 웹 프레임워크로, Node.js 애플리케이션을 개발하고 운영하는 데 매우 유용합니다. Fastify를 사용하여 HTTP 요청 및 응답을 처리하는 방법에 대해 알아보았습니다.

더 많은 정보를 원하시면 Fastify 공식 문서를 참고하시기 바랍니다.