실습 환경 구성Docker Desktop 실행설정Kubernetes Enable Kubernetes 선택Apply & restart context를 확인해주고 Docker desktop이 아니라면 설정을 변경해주면 실습 준비는 완료된다 kubectl을 활용한 기본 조작노드(Node)와 파드(Pod) 정보 조회kubectl get nodes 혹은 pods를 통해 현재 노드와 파드의 정보를 조회할 수 있다get 명령어에 --all-namespaces와 -o wide 옵션을 부여하면 각각 모든 네임스페이스에 대한 정보 조회와 해당 노드/파드에 대한 추가 정보들을 확인할 수 있다 컨테이너 이미지를 이용한 Pod 생성 / 조회 Deployment디플로이먼트는 애플리케이션의 배포, 확장 및 관리의 자동화를 도와주는..
컨테이너 오케스트레이션 툴이란?컨테이너 오케스트레이션은 대규모 애플리케이션을 배포할 수 있도록 컨테이너의 네트워킹 및 관리를 자동화하는 프로세스이다. 애플리케이션이 복합해짐에 따라 MSA에서는 수 많은 컨테이너가 존재할 수 있는데 컨테이너 오케스트레이션 도구는 프로비저닝과 스케줄링에서 배포 및 삭제까지 전체 생명 주기를 자동화하여 컨테이너 인프라 관리를 간소화할 수 있다주요기능컨테이너 클러스터링여러 노드를 하나의 클러스터로 묶어 애플리케이션을 분산하여 실생하고 자원을 효율적으로 활용한다 서비스 디스커버리 / 로드밸런싱컨테이너를 자동으로 발견하고 서비스 이름과 IP 주소 등 관리 및 클라우드 환경에서의 컨테이너 생성, 배치, 이동에 따른 정보 업데이트를 관리한다컨테이너에 대한 트래픽이 많으면, 쿠버네티스는..
Docker 이미지와 컨테이너의 차이점은?도커 이미지와 컨테이너는 애플리케이션 배포 기술이다.기존 애플리케이션에서는 운영체제와 일치하는 버전을 설치해야했지만 컨테이너 기술을 활용하여 단일 소프트웨어 패키지 또는 컨테이너를 만들어 모든 유형의 디바이스 및 운영체제에서 실행시킬 수 있다.도커는 소프트웨어를 컨테이너에 패키징하는 소프트웨어 플랫폼으로 도커 이미지는 컨테이너 생성 지침이 포함된 읽기 전용 템플릿을 말한다.Docker를 사용해야하는 이유? Docker를 사용한다는 응답이 2022년에는 2위를 기록하였으나 2023년에는전체 응답자에서 가장 많이 사용하고 있는 도구가 되었다.왜 도커를 사용해야할까?운영 표준화 - 컨테이너식 애플리케이션을 활용하여 손쉬운 배포 및 수정 / 롤백원활한 이전 - Docke..
NestJS 프로젝트에 swagger를 활용해보자 swagger는 애플리케이션의 RESTful API문서를 자동으로 구성하는 툴이다. 애플리케이션의 모든 엔드포인트를 살펴볼 수 있고 요청을 보내고 응답을 수신하여 작동 중인 엔드포인트를 즉시 테스트 해볼 수 있다 패키지 설치 swagger 사용을 위해 패키지를 설치해주자 npm install --save @nestjs/swagger swagger-ui-express 프로젝트 내 Swagger 적용 swagger.document.ts swagger와 관련된 파일을 생성하고 main.ts에 마운트해주자 import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; export class BaseAPIDo..
간단하게 socket.io를 통해 브라우저에서 채팅이 되는 것을 확인했다. 이제 채팅 프로그램처럼 보강을 해보고자 한다. 우선 JWT 토큰을 활용하여 로그인 / 회원가입 기능을 구현해보려고 한다. 순서 1. 환경 설정 / 필요 모듈 설치 2. JwtModule 설정 3. JwtStrategy 구현 4. 로그인 및 토큰 발행 로직 구현 5. 인증 컨트롤러 구현 6. Jwt 가드 구현 패키지 설치 / 프로젝트 구조 설정 JWT 관련 필요 패키지 설치 npm install @nestjs/jwt @nestjs/passport passport passport-jwt npm install @types/passport-jwt --save-dev jwt 토큰을 생성하는데 passport를 활용하여 기능을 구현하기 위해..
지난 포스팅에서는 Websocket 통신을 위해 기본적은 서버 세팅을 마쳤다. 다음으로는 간단한 테스트를 위해 클라이언트를 간단하게 구성해보자 라이브러리 설치 npm install socket.io-client Websocket 서버와의 통신을 위해 socket.io-client 라이브러리를 프로젝트에 추가한다 컴포넌트 구성 import React, { useState, useEffect } from 'react'; import io from 'socket.io-client'; const SERVER_URL = 'http://localhost:8080'; // NestJS 서버의 URL과 포트 function ChatClient() { const [socket, setSocket] = useState(n..