본문 바로가기

전체 글149

[Polling] 폴링과 롱 폴링 (feat. SSE와 Socket) 0. 개요폴링은 주기적으로 서버에 요청해서 데이터가 있는지 혹은 변했는지 체크하는 방식이다.근데 poll은 "투표"라는 뜻을 가지고 있는데 왜 polling은 SW에서 투표와 무관해 보이는 뜻을 가지게 된 것일까?GTP와 Copilot에 의하면 정확한 기원은 기록이 없지만, 반복적인 확인(정기적으로 사람들에게 질문하여 의견을 확인)하거나 투표에서 일정 시간 동안 개표를 진행하는 주기적인 활동에서 비롯된것 같다고 한다.폴링은 특수한 연결 유지가 없다. 그래서 클라이언트에서 지속적으로 요청을 보내서 확인하는 방식이다.술만 마시면 전 애인에게 카톡을 남기는 누군가와 비슷하다. 물론 응답이 올 수도 안올 수도 있고, 응답이 와도 원하지 않았던 응답일 수 도 있다. 주기적으로 요청하는 것 까지 비슷하다.1. 폴링.. 2024. 11. 28.
[Redis] Redis Pub/Sub 0. 요약아래 코드를 통해 아주 간단히 Redis를 이용한 Publisher, subsciber를 이용한 방법을 알 수 있다.세부적인 방법은 코드 다음 글을 참고하자.import { createClient, RedisClientType } from 'redis';import { ConfigService } from '@nestjs/config';@Injectable()export class MailService implements OnModuleInit, OnModuleDestroy { private subscriber: RedisClientType; private publisher: RedisClientType; private sseSubjects: Map> = new Map(); private.. 2024. 11. 27.
[JavaScript] 객체 리터럴 정의, 구조 분해 할당 0. 요약위 2개는 비슷하면서도 다르다. 하지만 아래 코드를 보면 대략적인 차이를 느낄 수 있다.const obj = { key_id: 1, key_data: '12345' };const { key_id: id, key_data: data } = obj;console.log(id, data); // 출력: 1, '12345'객체 리터럴은 변수를 초기화한다. 그래서 변수명 : 할당값 형식으로 표현된다.반대로 구조 분해 할당은 기존의 파라미터를 이용해 값을 할당한다. 그래서 할당값: 변수명 형식으로 표현된 것을 볼 수 있다.객체 리터럴은 새롭게 정의하고, 구조 분해 할당은 말 그대로 어떤 구조를 분해해서 값을 할당해준다.아래 예시들에 좀더 다양한 활용법들이 있다.기존에 쓰고있더라도 정식 명칭이 뭔지도 모르고.. 2024. 11. 27.
[SSE] nest에서 SSE 알림을 주는 방법 0. 예시 설명/api/mail/check/1 로 SSE 알림을 받을 수 있도록 등록한다./api/mail/call/1 로 알림을 주도록 한다. 1. express의 Response를 이용해서 만들어 보자! // 컨트롤러 코드@Controller('api/mail')export class MailController { constructor( private readonly mailService: MailService, private readonly eventEmitter: EventEmitter2 ) {} @Get('check/:memberId') @ApiOperation({ summary: '알림 연결 요청 API' }) @ApiResponse({ status: 200, d.. 2024. 11. 14.