inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

BasePaginationDto 생성하기

NodeJS 의 single thread 와 event loop 에 대해 자세하게 알아 봤는데 제가 이해한 것이 맞는지 확인하고 싶어서 질문드렸어요!

361

jyy0223

작성한 질문수 2

0

동작하는 원리와 각 키워드의 역할에 대해 제가 알고 있는 점을 정리해 봤습니다.

어디가 틀리고 맞는지 확인하기 어려워서 질문드렸습니다!

 

 

원리

 

역할

javascript typescript rest-api nestjs backend

답변 1

2

코드팩토리

안녕하세요!

Call Stack은 여러개의 요청을 쌓아두는 개념이 아닙니다.

강의에서도 설명 드렸지만 Call Stack은 어떤 한 함수를 실행하면서 지금까지 실행한, 그리고 실행해야 할 함수들을 쌓아두는 공간입니다. 예를들어서 A 함수에서 B 함수를 실행하고 B 함수에서 C 함수를 실행한다면 A, B, C 순서로 스택에 쌓이고 반대 순서로 스택에서 사라집니다 (또는 실행 '완료' 됩니다).

그렇기 때문에 말씀하신 관점에서 정확히 얘기한다면 콜스택은 요청당 존재한다고 보는게 맞습니다.

다만 말씀하신 요청을 쌓아두는 개념은 Event Queue가 담당하게 됩니다.

여러개의 요청들을 들고 있다가 사용 가능한 Event Loop이 하나씩 요청을 가져가서 프로세싱 하게 됩니다.

Background라고 표현하는게 정확한지는 제가 판단하기 어려우나 Internal Thread Pool을 Background라고 말씀하신걸로 보입니다.

말씀 하신대로 Internal Thread Pool은 Blocking 요청들을 처리하게 됩니다. 쉬운 예제로는 Database 요청이나 File System 관련 작업이 되겠습니다.

 

image

Event Queue는 개념을 잘못 알고 계셨어서 Microtask Queue와 Event Queue는 당연히 동급의 비교 대상은 아닙니다. Microtask Queue는 Macrotask Queue와 비교하는게 맞을 것 같습니다.

image

위 그림과 같이 Microtask Queue는 Promise 또는 async 함수등이 해당되고 Macrotask Queue는 setTimeout등이 해당됩니다. Event Loop이 우선적으로 프로세싱 하는건 Microtask Queue이며 이 이상의 차이는 없는걸로 저는 알고 있습니다.

감사합니다!

0

jyy0223

감사합니다!!!

한번 더 내용 확인 하려고 들어 왔는데 이전에 답글 남기는 걸 깜빡 했네요 ㅎㅎㅎ

항상 많이 배우고 있습니다. 감사합니다!!!

cascade 질문

0

40

1

@types/bcrypt 설치과정이 누락된것같습니다.

0

48

1

process.env port key 에러

0

46

1

추상화

0

50

1

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

0

100

2

where 키워드가 들어가는 메서드와 아닌 메서드

0

57

1

BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?

0

72

1

app.controller app.service 는 지워도되나요?

0

70

1

@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이

0

79

1

포트 3000에서 listen하는 곳까지 넘어가지 않습니다.

0

67

1

PickType 사용 시 `as const`를 꼭 사용해야 하나요?

0

102

2

socket connect 오류

0

97

2

강의를 들으면서 궁금한 점

0

97

2

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

0

60

2

커리큘럼 질문

0

100

2

put 요청은 언제

0

90

3

typeorm VS prisma

0

351

2

142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.

0

77

2

User 데코레이터 버그 수정 전달드립니다.

0

67

1

git 주소 부탁드립니다.

0

113

2

nest g resource 명령어 에러

0

99

2

로그인 엔드포인트 관련 질문

0

85

2

yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우

0

148

3

"흔히 사용되는 메서드" 강의 관련 질문입니다~

0

95

2