[typescript] 타입스크립트와 Rollup을 함께 사용하여 클라이언트-서버 통신 구현하기

웹 애플리케이션을 개발하다 보면 클라이언트와 서버 간 효율적인 통신이 필요한 경우가 있습니다. 이 때 타입스크립트와 Rollup을 함께 사용하여 클라이언트-서버 통신을 구현하는 방법에 대해 알아보겠습니다.

1. 타입스크립트로 클라이언트-서버 통신 구현하기

XMLHttpRequestfetch API와 같은 클라이언트 측 웹 API를 사용하여 서버로 요청을 보내고 응답을 받을 수 있습니다. 이때 타입스크립트를 사용하면 코드의 가독성을 높이고 유지보수를 용이하게 할 수 있습니다.

예를 들어, fetch API를 사용하여 서버에서 데이터를 가져오는 코드는 다음과 같이 작성할 수 있습니다.

async function fetchData(url: string) {
  try {
    const response = await fetch(url);
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('Error fetching data:', error);
    throw error;
  }
}

const serverUrl = 'https://example.com/api/data';
fetchData(serverUrl)
  .then(data => {
    console.log('Data from server:', data);
  })
  .catch(error => {
    console.error('Error:', error);
  });

위 코드에서 fetchData 함수는 서버로부터 데이터를 가져오는 비동기 함수입니다. 타입스크립트를 사용하여 매개변수 url의 타입을 명시함으로써 코드의 안정성을 높일 수 있습니다.

2. Rollup을 사용하여 클라이언트-서버 통신 코드 번들링하기

클라이언트-서버 통신과 관련된 코드를 모듈화하고 번들링하기 위해 Rollup을 사용할 수 있습니다. Rollup을 사용하면 타입스크립트로 작성된 코드를 하나의 번들 파일로 묶을 수 있으므로 클라이언트 측 코드와 서버 측 코드를 구분하여 개발할 수 있습니다.

npm install rollup @rollup/plugin-typescript
// rollup.config.js
import typescript from '@rollup/plugin-typescript';

export default {
  input: 'src/index.ts',
  output: {
    file: 'dist/bundle.js',
    format: 'cjs'
  },
  plugins: [typescript()]
};

위 Rollup 설정 파일에서 @rollup/plugin-typescript 플러그인을 사용하여 타입스크립트 코드를 자바스크립트로 변환하고 번들링할 수 있습니다.

결론

타입스크립트와 Rollup을 함께 사용하여 클라이언트-서버 통신을 구현하면 코드의 안정성과 모듈화가 용이해지며, 번들 파일을 통해 효율적인 웹 애플리케이션을 개발할 수 있습니다.