[typescript] 타입스크립트에서 서버에서 Preflighted 요청을 처리하는 방법

웹 애플리케이션을 개발하다 보면 다른 도메인간의 통신을 위해 클라이언트에서 서버로 보내는 Preflighted 요청을 처리해야 할 때가 있습니다. 이러한 요청을 타입스크립트로 개발된 서버에서 어떻게 처리할 수 있는지 알아보겠습니다.

Preflighted 요청이란?

Preflighted 요청은 브라우저가 실제 요청을 보내기 전에 서버로 사전에 옵션 요청을 보내는 것을 말합니다. 이것은 보안 상의 이유로 인해 다른 출처에서 리소스에 접근하는 요청을 허용하는 CORS가 적용된 상황에서 발생합니다.

타입스크립트 서버에서 Preflighted 요청 처리하기

타입스크립트로 개발된 서버에서 Preflighted 요청을 처리하려면, 먼저 CORS (Cross-Origin Resource Sharing)를 지원하는 미들웨어를 사용해야 합니다. 예를 들어, Express.js에서는 cors 미들웨어를 사용하여 간단하게 Preflighted 요청을 처리할 수 있습니다.

import express from 'express';
import cors from 'cors';

const app = express();

app.options('*', cors()); // 모든 경로에 대해 Preflight 요청을 허용

// 실제 요청을 처리하는 라우트
app.get('/api/data', cors(), (req, res) => {
  // 요청 처리 로직
});

app.listen(3000, () => {
  console.log('서버가 3000번 포트에서 실행 중');
});

위의 예제에서 app.options('*', cors())를 사용하여 모든 경로에 대해 Preflighted 요청을 허용하고, 실제 요청을 처리하는 라우트에도 cors() 를 적용하여 CORS를 설정하였습니다. 이를 통해 타입스크립트로 개발된 서버에서 Preflighted 요청을 처리할 수 있게 됩니다.

결론

타입스크립트로 개발된 서버에서 Preflighted 요청을 처리하기 위해서는 CORS 미들웨어를 이용하여 요청을 처리해야 합니다. 이를 통해 서버와 클라이언트 간의 안전하고 원활한 통신을 가능하게 할 수 있습니다.

참고 자료