
1. TypeScript란
우선 Node.js에 Typescript를 적용하기 위해 Typescript에 대한 이해가 필요합니다. 타입스크립트의 특징은 다음과 같습니다. Typescript는 JavaScript의 상위 집합으로, 정적 타입을 지원합니다.
- 코드의 가독성 및 유지보수성 향상
- 컴파일 타임에 오류 탐지
- IDE 지원 향상 (자동 완성, 리팩토링 등)
2. Node.js 에서 Typescript 설정하기
먼저 Node.js에서 Typescript를 설정하기 위해서는 Typescript를 설치해야 합니다. 다음 명령어로 typescript를 설치해줍니다.
npm install -g typescript && yarn add typescript
// 프로젝트 초기화
mkdir typescript-node
cd typescript-node
npm init -y
- TypeScript 및 필요한 패키지 설치:
npm install typescript ts-node @types/node --save-dev && yarn add -D typescript ts-node @types/node
- tsconfig.json 파일 생성
{
"compilerOptions": {
"target": "ES6",
"module": "CommonJS",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
- TypeScript 파일 작성 - 프로젝트 디렉토리에 index.ts 파일 생성
const greet = (name: string) => {
return `Hello ${name}!`;
};
console.log(greet("world"));
- 실행
npx ts-node index.ts
3. Node.js 에서 GraphQL 설정하기
먼저 Node.js에서 GraphQL을 설정하기 위해 express와 graphql 라이브러리 설치가 필요합니다.
npm install express graphql express-graphql && yarn add express graphql express-graphql
- GraphQL 스키마 정의:
- schema.js 파일 생성
const { GraphQLObjectType, GraphQLString, GraphQLSchema } = require("graphql");
const RootQuery = new GraphQLObjectType({
name: "RootQueryType",
fields: {
hello: {
type: GraphQLString,
resolve() {
return "Hello, World!";
},
},
},
});
module.exports = new GraphQLSchema({
query: RootQuery,
});
- 서버 설정(sever.js 파일 생성):
const express = require("express");
const { graphqlHTTP } = require("express-graphql");
const schema = require("./schema");
const app = express();
app.use(
"/graphql",
graphqlHTTP({
schema,
graphiql: true,
})
);
app.listen(4000, () => {
console.log(`Server is running on http://localhost:4000/graphql`);
});
- 실행:
node server.js
- GraphiQL 인터페이스에서 쿼리 테스트
- 브라우저에서 http://localhost:4000/graphql 로 이동하여 쿼리 입력
4. 마이크로서비스 아키텍쳐 이해
마이크로서비스 아키텍처는 애플리케이션을 여러 개의 작은 서비스로 나누어 개발하는 방법으로 마이크로서비스 구축의 특징은 다음과 같습니다.
- 서비스 분리: 각 서비스는 독립적으로 개발되고 배포됨 예) 사용자 서비스, 상품 서비스, 주문 서비스 등
- API Gateway 도입: 클라이언트가 여러 서비스를 호출할 수 있도록 API Gateway를 사용해 요청을 라우팅
- 서비스 간 통신: REST API, GraphQL, gRPC 등을 사용해 서비스 간 데이터를 주고 받음
- 데이터베이스 관리: 각 서비스는 독립적인 데이터베이스를 가질 수 있음
- 모니터링 및 로깅: 서비스의 상태를 모니터링하고 로그를 수집하여 문제를 진단
GitHub - nodeJsroom/node-js-bloging
Contribute to nodeJsroom/node-js-bloging development by creating an account on GitHub.
github.com
LIST
'Back-End > Node.js' 카테고리의 다른 글
[NodeJS] Go와 Nodejs 연결하기 (0) | 2025.03.07 |
---|---|
[NodeJS] Node.js를 활용한 애니메이션 API 만들기 (1) | 2025.03.03 |
[NodeJs] 8장 Docker(도커)를 사용한 배포 (0) | 2025.03.02 |
[NodeJS] 7장 에러처리 (0) | 2025.02.27 |
[NodeJS] 6장 인증 및 보안 (0) | 2025.02.26 |