본문 바로가기
프로그래밍 언어

버퍼링 (Buffering)

by Jo_Wick 2025. 9. 19.
반응형

버퍼링(Buffering)이란?

  • 버퍼(buffer): 데이터를 임시로 저장하는 메모리 공간
  • 버퍼링: 입출력(I/O)을 할 때, 데이터를 한 번에 모아서 처리하는 방식

즉, 출력할 때마다 바로 화면/파일로 보내지 않고, 일단 메모리에 모아뒀다가 한 번에 내보내는 것이다.


왜 버퍼링을 쓰나?

  1. 성능 향상
    • 하드웨어 I/O(모니터, 파일, 디스크)는 느림 → 조금씩 여러 번 보내는 것보다 한 번에 모아서 보내는 게 빠름
  2. 자원 절약
    • 시스템 호출(system call) 횟수 줄어듦 → 효율적

 

예시 코드

#include <iostream>
using namespace std;

int main() {
    cout << "cout test";   // 버퍼에 쌓임, 아직 안 보일 수 있음
    cerr << "cerr test";   // 즉시 출력됨
    
    return 0;
}

 

만약 프로그램이 cout << "Hello"; 만 하고 return 0; 으로 끝나버리면,
버퍼를 비우지 않은 채 종료되어 "Hello" 가 안 찍히는 경우도 있다.
그래서 보통 endl (개행 + flush) 또는 cout.flush() 로 강제로 버퍼를 비운다.

반응형

'프로그래밍 언어' 카테고리의 다른 글

로케일(Locale)이란?  (0) 2025.10.01
타입 승격 (Type Promotion)  (0) 2025.09.21
스트림 (Stream)  (0) 2025.09.19
강타입 (Strongly Typed) VS 약타입 (Weakly Typed)  (0) 2025.09.18
정적 타이핑 vs 동적 타이핑  (0) 2025.09.18

댓글