JavaScript/NestJS (3) 썸네일형 리스트형 [NestJS] 채팅 구현하기(with ReactJS) 배경 Web 환경에서 실시간 채팅을 구현하려면 클라이언트와 서버가 양방향 통신을 할 수 있어야 합니다. 따라서, 이 글에선 클라이언트가 서버로 요청을 보내는 단방향 프로토콜인 HTTP 대신, WebSocket 프로토콜을 사용하여 채팅을 구현하는 방법을 소개합니다. 단방향 vs 양방향 HTTP는 단방향 네트워크 프로토콜로 설계되었습니다. 클라이언트와 서버가 연결이 성립된 후, 클라이언트가 서버에게 요청을 보내고, 서버가 클라이언트에게 응답을 하면 연결이 종료됩니다. 여기서 주목할 점은 요청은 항상 클라이언트가 하고, 응답은 항상 서버가 한다는 점입니다. 이런 일방적인 프로세스를 단방향이라고 합니다. 라디오를 예로 들 수 있는데요, 라디오를 들으려면 우리는 라디오를 켭니다(요청). 라디오가 켜지면 해당 주파.. [NestJS] 스케줄러로 반복 작업 설정하기 배경 웹 서비스를 만들 때 특정 시간에 특정 작업 반복이 필요한 경우가 있습니다. 예를 들어, 쇼핑몰을 만든다고 할 때 배송이 완료된 후 일정 시간 뒤 자동으로 구매 확정으로 상태를 변경해준다든지의 작업이 예입니다. NestJS에서는 이러한 반복적 배치 작업을 스케줄러로 구현할 수 있습니다. 또한 특정 이벤트가 발생했을 때 작업을 실행하게 해주는 커스텀 프로바이더라는 것도 존재합니다. 이 글에선 반복적 작업이 목적이기 때문에 스케줄러를 사용해서 구현하려고 합니다. 1. 패키지 설치 필요한 패키지를 설치합니다. npm install --save @nestjs/schedule npm install --save-dev @types/cron 2. app.module.ts 앱에 스케줄 모듈을 import 해줍니다.. GCS에 파일 업로드(NestJS) 배경 이미지나 비디오 같은 정적 파일 로딩 레이턴시를 줄이기 위해 Cloud CDN 서비스를 사용해야 했고, GCP에서 백엔드로 운영 중인 NestJS에서 이미지를 저장할 때 이를 적용해야 해서 나중에 참고할 수 있도록 글로 정리하게 되었습니다. 버킷 생성 GCS에 업로드 하기 전에 먼저 저장소를 생성해야 합니다. GCP 메뉴 중 Cloud Storage로 이동해서 버킷을 생성해 줍니다. 다음으로 백엔드가 GCS에 접근할 수 있도록 키를 발급해야 합니다. 'IAM > 서비스 계정'으로 이동해서 저장소 관리자 권한을 부여한 서비스 계정을 만들고 키를 생성해 줍니다. 생성한 서비스 계정으로 이동해서 json 키를 생성합니다. 다운받은 키 내용 모두를 환경설정 파일로 만들어서 프로젝트 내에 저장합니다. 깃에 .. 이전 1 다음