node에서 말하는 non-blocking에 대한 개념 문의
250
작성한 질문수 1
안녕하세요 node에서 말하는 non-blocking에 대한 개념에 대해 문의 드립니다.
단원 "1.2 노드의 구성 - 2. 논 블로킹" io 에서 설명하시기를 논 블로킹은 오래 걸리는 함수를 백그라운드로 보내는 방식으로 설명돼 있는데, 우선 non-blocking은 서버측 소켓 구현방식으로 알고 있어서, 제가 알고 있는 기준에서 좀 이해가 안 돼 문의드립니다. 서버측 기준에서 논 블로킹 자체의 의미에서 클라이언트의 io 접속 처리를 work thread에 바로 위임한 후, 뒷 따르는 다음 함수를 처리함에 있어 node 에서 만은 추가적으로 함수의 실행 시간까지 미리 판단해 background 로 병렬 처리까지 한다는 의미인지 문의드립니다.
답변 1
0
추가적으로 함수의 실행시간까지 미리 판단한다는 게 무슨 뜻인지 잘 모르겠습니다.
노드는 위임 후에는 전혀 그 작업에 대해 신경쓰지 않습니다. 나중에 콜백 방식으로 메인쓰레드가 위임했던 작업들이 끝났음을 알림받습니다. 그래서 스레드가 하나여도 여러 작업을 동시에 처리하는 것처럼 효과를 얻을 수 있습니다.
메인스레드가 하는 작업은 스레드풀로 보내는 작업 + 콜백이 왔을 때 콜백 내용 처리하는 작업밖에 없습니다.
0
강의내용 중 "단원 "1.2 노드의 구성 - 2. 논 블로킹" io 에서 설명하시기를 논 블로킹은 오래 걸리는 함수" 를 백그라운드로 보낸다는 식으로 강의내용으로 기술돼 있어서 이 부분(" 논 블로킹은 오래 걸리는 함수")에 대한 질문이었습니다.
그렇다면, 이 부분에 대해 저는 기본적인 non-blocking 외에 추가적으로 nodes.js에서의 non-blocking은 강의내용이 기입된 대로 오래 걸리는 함수는 백그라운드로 보내는 추가적인 기능이 있구나 로 이해했던 겁니다.
그렇다면, 강의 내용중 "단원 "1.2 노드의 구성 - 2. 논 블로킹" io 에서 설명하시기를 논 블로킹은 오래 걸리는 함수"" 부분은 에서 "오래 걸리는 함수" 라 설명된 부분이 설명상 잘못 된 부분인지, 또는 그렇지 않다면, "오래 걸리는 함수"로 설명된 부분의 의미를 알고 싶습니다.
0
오래 걸리는 함수라고 해서 다 백그라운드로 보내지는 것은 아니고요. 자바스크립트에서는 백그라운드로 보내질 수 있는 함수가 정해져 있습니다. Promise, Timer, 파일 시스템, 암호화 등의 함수들입니다. 보통 이런 함수들은 네트워킹이나 CPU 작업들을 많이 하므로 오래 걸리는 것이고요. 그래서 백그라운드로 보낼 수 있도록 설계되어 있습니다.
리눅스 노드 설치시 패키지
0
162
0
socket.js 에서 referer로부터 roomId를 가져올 때
0
907
3
스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문
0
2281
2
a[title] 질문드립니다
0
376
1
리뉴얼 강의 및 공부 방법
0
583
1
jwt decode
0
1129
1
node.js 교과서 3판 질문드립니다
0
392
1
passport와 jwt
0
434
1
리뉴얼 강의
0
421
2
혹시 Node.js 교과서 3판 이북은 언제 나오나요?
0
355
1
몽고디비 사용자도 MYSQL부분을 들어야 하나요???
0
482
1
sql 쿼리 로그는 어떤 모듈이 작성하나요?
0
506
2
nunjucks res.render('error'); 작동을 안합니다.
0
512
1
질문있습니다.
0
348
1
multer 한글 파일 업로드시 파일명이 깨져요.
1
3536
1
수업자료는 어디있나요?
0
368
1
질문 있습니디
0
237
1
multer 사용시 file 외 name값은 못받나용?
0
417
1
코드 중복 부분 질문드립니다.
0
299
1
api 만드는 이유 질문드립니다.
0
288
1
Strategy의 done에 대해 질문드립니다.
0
367
1
안녕하세요 fs 권한 관련 질문드립니다
0
451
1
시퀄라이즈 연결질문...
0
500
2
res.setHeader vs res.cookie
0
1789
3





