𝗠𝗘𝗥𝗡 𝗦𝘁𝗮𝗰𝗸 𝗵𝗮𝗸𝘀𝘂𝗽 𝟯𝟵𝗶𝗹 𝗰𝗵𝗮

MERN 스택 학습 여정의 39일 차에 접어들었습니다.

어제는 GET과 POST 같은 HTTP 메서드를 공부했습니다. 오늘은 백엔드 작업에 집중했습니다. 서버가 데이터 스트림과 바디 파싱(body parsing)을 어떻게 처리하는지 학습했습니다.

사용자가 폼이나 파일을 전송할 때, 서버는 이를 한 번에 모두 받지 않습니다. 데이터는 작은 조각들로 나누어져 들어옵니다. 이 조각들을 청크(chunks)라고 부릅니다.

Node.js는 메모리를 절약하기 위해 스트림(streams)을 사용합니다. 대용량 파일을 서버 메모리에 즉시 로드하지 않고, 대신 데이터를 작은 단위로 나누어 처리합니다.

프로세스는 다음과 같이 작동합니다:

Node.js에서는 요청 바디(request body)를 즉시 받을 수 없습니다. 대신 특정 네트워크 이벤트를 감지해야 합니다:

Buffer.concat을 사용하여 조각들을 하나로 합친 다음, 이를 문자열로 변환합니다.

이 방식은 서버를 빠르고 효율적으로 유지해 줍니다. 또한 대용량 파일을 처리할 때 메모리 부족으로 인한 충돌을 방지합니다.

출처: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp