Stream
1. Stream(스트림) 이란?
: 끊기지 않고 연속적인 "데이터의 흐름"을 나타내는 개념적 용어
: 바이너리 스트림 0x0C, 12, 문자열 스트림 "12"
2. Stream 사용 이유
: 스트림은 여러 입출력 장치들과 데이터를 읽고 쓰기 위한 통일된 방법 제공
: 입출력 장치의 종류에 상관없이, 스트림 라이브러리와 운영체제에 의한 입출력 구현
3. Stream과 화면 출력 예시
: 장치가 달라지더라도, 항상 똑같은 절차를 통해 데이터를 읽고 쓰는 스트림을 이용한다.
출발지(source)는 메모리 등 여러 장치, 목적지(destination)는 모니터
메모리(source)에 대한 스트림을 열고 순차적으로 데이터를 읽어온다.
모니터(destination)의 스트림을 열고 데이터를 순차적으로 보내 기록한다.
Buffer
1. Buffer 란?
- Buffer(버퍼)는 데이터가 임시 저장되는 메모리의 물리적 공간을 상징하는 용어
2. Buffer 를 사용하는 이유
: 버퍼는 여러 입출력 장치간에 데이터를 읽고 쓰는 동안 발생하는 속도 차이를 해결한다.
3. Buffer와 화면 출력 예시
입력 버퍼: 사용자와 저장장치의 입력은 프로그램의 연산 속도보다 훨씬 느리다.
프로그램이 이러한 입력의 완료를 대기하는 것은 낭비가 심하다.
출력 버퍼: 모니터의 출력은 프로그램의 연산 속도보다 매우 느리다.
프로그램이 출력 완료를 대기하는 것 또한 엄청난 낭비다.
: 프로그램의 연산 속도는 입력과 출력 시간에 비해 빠르다.
그래서 입력 버퍼와 출력 버퍼를 이용해 이러한 낭비를 줄인다.