백엔드 개발 · 중급
Node.js에서 Buffer 객체의 용도와 문자열과의 차이점을 설명해주세요.
힌트 · Buffer는 바이너리 데이터를 다루기 위한 객체로, 고정 크기 메모리를 할당받습니다.
이진 데이터메모리 할당인코딩문자열 변환스트림 처리
모범답안
Node.js에서 Buffer 객체는 이진 데이터를 다루기 위한 핵심적인 객체입니다. JavaScript 문자열은 유니코드 기반인데 반해, Buffer는 원시 바이트 데이터를 직접 저장하고 조작할 수 있습니다.
Buffer는 고정된 크기의 메모리 공간을 미리 할당받아 사용합니다. 이를 통해 파일 I/O, 네트워크 통신 등에서 효율적인 데이터 처리가 가능합니다. 예를 들어, 이미지 파일이나 암호화된 데이터를 다룰 때 Buffer를 사용하면 문자열 인코딩/디코딩 과정 없이 직접 바이트 단위로 작업할 수 있습니다.
문자열을 Buffer로 변환하거나, Buffer를 문자열로 변환할 때는 인코딩 방식을 지정해야 합니다. 주로 UTF-8, ASCII 등이 사용됩니다. 스트림을 통해 데이터를 읽고 쓸 때도 Buffer가 자주 활용됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Node.js 면접 질문
- Express.js에서 에러 핸들링 미들웨어의 특징과 구현 방법을 설명해주세요.
- Node.js에서 Stream의 종류와 각각의 사용 사례를 설명해주세요.
- npm과 yarn의 차이점과 package-lock.json의 역할에 대해 설명해주세요.
- Node.js의 Event Loop가 멀티코어 시스템에서 CPU 집약적 작업을 처리할 때의 한계점과 이를 해결하기 위한 Worker Threads의 내부 동작 원리를 설명해주세요.
- Express.js에서 미들웨어 체인이 비동기 에러를 처리할 때 발생할 수 있는 문제점과 async/await 환경에서의 에러 핸들링 전략을 설명해주세요.
- Node.js 애플리케이션에서 메모리 누수가 발생하는 주요 원인들과 Heap Dump 분석을 통한 디버깅 방법을 설명해주세요.