[typescript] 타입스크립트와 도커를 이용한 API 서버 개발 방법

도커를 사용하면 간단한 명령어로 웹 서버를 설정하고 실행할 수 있으며, 타입스크립트는 정적 타입을 지원하여 안정적인 코드를 작성할 수 있도록 도와줍니다. 이번 포스트에서는 타입스크립트와 도커를 이용하여 API 서버를 개발하는 방법에 대해 알아보겠습니다.

목차

  1. 프로젝트 초기 설정
  2. 타입스크립트를 이용한 서버 개발
  3. 도커를 이용한 서버 컨테이너화
  4. 서버 실행과 테스트

프로젝트 초기 설정

먼저, 프로젝트 디렉토리를 생성하고 아래와 같이 package.json 파일을 생성합니다.

{
  "name": "typescript-docker-api-server",
  "version": "1.0.0",
  "scripts": {
    "start": "node dist/index.js",
    "build": "tsc",
    "test": "jest"
  },
  "dependencies": {
    "express": "^4.17.1"
  },
  "devDependencies": {
    "@types/express": "^4.17.11",
    "typescript": "^4.3.2",
    "jest": "^27.0.5"
  }
}

그리고 타입스크립트 설정 파일 tsconfig.json을 아래와 같이 생성합니다.

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true
  }
}

타입스크립트를 이용한 서버 개발

다음으로, Express를 이용하여 간단한 API 서버를 개발해보겠습니다.

// src/index.ts

import express from 'express';

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

app.get('/', (_, res) => {
  res.send('Hello, TypeScript & Docker!');
});

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

위 코드를 실행하기 위해 npm install로 필요한 의존성을 설치하고, npm run build로 타입스크립트를 컴파일합니다.

도커를 이용한 서버 컨테이너화

이제 도커를 이용하여 서버를 컨테이너화합니다. 먼저 프로젝트 루트에 Dockerfile을 생성합니다.

# Dockerfile

FROM node:14

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install --production

COPY . .

EXPOSE 3000
CMD [ "npm", "start" ]

서버 실행과 테스트

모든 준비가 끝났습니다! 다음 명령어를 통해 도커 이미지를 빌드하고 컨테이너를 실행합니다.

docker build -t my-node-app .
docker run -p 3000:3000 my-node-app

웹 브라우저나 API 클라이언트를 통해 http://localhost:3000에 접속하여 서버가 정상적으로 작동하는지 확인해보세요.

이제 타입스크립트와 도커를 이용하여 간단한 API 서버를 개발하는 방법에 대해 알아보았습니다. 원활한 개발을 위해 실시간 수정이 반영되도록 코드를 수정하고 환경을 구성할 수 있도록 도커와 타입스크립트를 적극적으로 활용해보시기 바랍니다.

참고 자료