Notice
Recent Posts
Recent Comments
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
관리 메뉴

0strich

[Node.js] Buffer 클래스 본문

Back End/Node.js

[Node.js] Buffer 클래스

0strich 2020. 1. 19. 13:42

Buffer 클래스

Buffer클래스는 Binary Data들의 Stream을 직접 다루기 위해 Node.js에 추가된 API이다.

Node.js의 Buffer 클래스에 대해 알아보기 전에, Buffer 클래스로 다루는 다음 3개의 단어들을 먼저 숙지할 필요가 있다.

 

Buffer : 데이터가 도착하는 곳의 처리속도가 먼저 도착한 데이터보다 빠를 때 나머지 데이터가 쌓이는 것을 기다리는 영역
Stream : 한지점에서 다른 지점으로 이동하는 일련의 데이터 (chunk(덩어리) 단위로 세분화돼서 전송)
Binary Data : 컴퓨터가 어떤 데이터를 표현하거나 저장하기 위한 단위 (이진수 => 0,1)

우선 Buffer라고 한다면 구체적인 이미지가 떠오르지 않을 것이다. Buffer와 Stream의 예시를 들어보자.
동영상을 보고 있을 때 가끔씩 동영상이 멈추는 현상을 경험해 본 적이 있을 것이다. 우리는 이것을 버퍼링이라고 부른다. 영상이 중간에 멈추는 것은 Buffer라는 곳에 필요한 데이터가 쌓이지 않아서 그것을 기다리는 과정이며, 이 때 이동하는 데이터를 Stream이라고 한다. 즉, 먼저 전달받은 데이터를 보여주는 것이 스트리밍 서비스이다. 

 

요청-응답(Request-Response)

▶ request는 ReadableStream 인터페이스 구현체

 이것은 스트림이기 때문에 “data”와 “end” 이벤트를 이용해서 데이터를 수신 가능

 “data” 이벤트와 함께 들어온 데이터는 Buffer 타입

 문자열로 변환하기 위해 데이터를 배열로 들고 있다가 “end” 이벤트 시점에 합침

 

왼쪽 : Server     오른쪽 : Client

왼쪽이 서버이고 오른쪽이 클라이언트이다.

 

서버 입장에서 간단하게 설명하자면 클라이언트에게서 받은 텍스트를 대문자 또는 소문자로 바꿔서 응답을 준다.

서버의 빨간 네모 부분을 보면 data이벤트를 이용해서 클라이언트에게서 받은 데이터가 Buffer 타입인 것을 확인할 수 있다.

아래의 네모 부분을 보면 toString()을 사용해서 원래 문자열을 출력이 된 것을 확인할 수 있다.

 

 

 

 

'Back End > Node.js' 카테고리의 다른 글

[Node.js] NPM & Package.json  (0) 2019.12.25
[Node.js] JS Runtime & Node.js  (0) 2019.12.24
[Node.js] NVM & How to install  (0) 2019.12.23
Comments