벡엔드 개발 공부/NodeJS(3)
-
[Node] Buffer와 Stream
사실이 개념들은 자바를 사용하면서 많이 듣고 또 쓰던 개념이라 익숙하지만 노드에서 비슷하지만 조금은 또 다른 느낌이기도 하고 배운것들을 다시 한번더 정리해보고자 적는다. 나중에 JAVA buffer와 stream도 다시 봐야겠다. 정리를 안하니 슬슬 헤깔린다. Buffer 이 단어 우리가 많이 듣던 버퍼링이란 단어와 비슷하지 않은가? 사실 그 단어가 맞다. 버퍼링은 영상재생까지 데이터를 모을때 쓰는 단어이다. 버퍼란 파일 읽을때 메모리에 파일 크기 만큼 공간을 마련해 파일 데이터를 저장하고 이 저장된 데이터가 버퍼인것이다. 하지만 이 버퍼에도 큰 문제점이 있습니다. 용량이 아주 큰 파일을 읽어야 하는 상황이 오면 그만큼 큰 버퍼를 만들어야 하는데 이 상황이 계속되면 메모리 문제가 발생할 수 있습니다. 그..
2021.10.09 -
Node.js 동작원리
Event-Driven(이벤트 기반) 이벤트(클릭, 또는 네트워크 요청 등) 발생시 미리 지정해둔 작업을 수행한다. 이렇게 하기 위해 특정 이벤트 발생시 무엇을 할지 미리 등록을 해놓는다. (Event listener에 callback함수 등록) 우선 정확한 구조를 보기 위해 용어들 부터 간략하게 설명해보자. Call Back함수: 다른 함수의 인자로 넘겨지는 함수 및 어떤 이벤트에 호출되어지는 함수이다. Event Loop: 이벤트 발생시 호출할 call back 함수 관리 및 호출된 call back 함수 실행 순서 결정. Node가 종료될때까지 이벤트 처리 작업을 반복한다. Background: event listener가 대기하는곳이다. Task Queue: 이벤트 발생후, 백그라운드에서 task..
2021.10.08 -
동기/비동기 와 블록/논블록
처음 이 단어들을 접했을 때 이게 대체 뭔소리인가 싶었다. 책으로 자바스크립트 부터 공부중인데.. 와 이게 진심 무슨 소리지 난 진짜 기초가 부족하구나.. 싶었다. 그치만 다른 영상들과 블로그들을 보면서 차츰 이해가 가기 시작해 또 까먹고 다시 찾기 싫어 정리해본다. 블록킹(blocking)과 논블록킹(non-blocking) -한 함수에서 다른 함수를 호출했을때 제어권이 다른 함수로 넘어가게 되는데 만약 그 함수에서 모든 일을 마친 후에 제어권을 반환하면 blocking 이라고 할 수 있다. - 반면, non-blocking의 경우 함수 호출시 제어권을 넘겨준 후 바로 다시 제어권을 반환한다. (할 일이 끝나기전) 동기 (Synchronouse)와 비동기(Asynchronouse) 우선 blocking..
2021.10.04