기본 패턴
javascript
const buf = Buffer.from("hello", "utf-8");
console.log(buf.length); // 5
console.log(buf.toString()); // hello설명
Buffer는 문자열보다 더 낮은 수준인 바이트 배열을 다루는 Node.js의 핵심 자료구조입니다.- 파일, 네트워크 소켓, 스트림에서는 데이터가 문자열이 아니라 바이트로 오가는 경우가 많아
Buffer를 자주 만나게 됩니다. Buffer.from()은 문자열이나 배열을 버퍼로 바꾸고,toString()은 다시 사람이 읽을 수 있는 문자열로 바꿉니다.- 인코딩을 이해하지 못하면 한글 깨짐, 길이 계산 오류, 바이너리 파일 손상 같은 문제가 생기기 쉽습니다.
- 따라서
Buffer는 단순 API가 아니라 "문자열과 바이트는 다르다"는 사실을 Node에서 체감하게 만드는 기본 개념입니다.
짧은 예제
javascript
const data = Buffer.from([0x41, 0x42, 0x43]);
console.log(data.toString("utf-8")); // ABC빠른 정리
| 표현 | 의미 |
|---|---|
Buffer.from("text") | 문자열을 버퍼로 변환 |
Buffer.from([65, 66]) | 바이트 배열로 버퍼 생성 |
buf.toString("utf-8") | 버퍼를 문자열로 변환 |
buf.length | 바이트 길이 |
주의할 점
문자열 길이와 바이트 길이는 같지 않을 수 있습니다. 특히 UTF-8 환경에서 한글이나 이모지는
여러 바이트를 차지하므로, 저장 공간이나 전송 길이를 계산할 때 Buffer 기준으로 생각해야 합니다.
참고 링크
1 sources