스트림 을 알면 데이터의 입력과 출력에 대해 이해할 수 있습니다. 프로그래밍을 하는 것은 입력과 출력의 반복이라고 할 수 있습니다. 입력은 넣는거고 출력은 나오는거다 라고 간단하게 정의할 수도 있습니다만 좀 더 정확하게 다음과 같이 정의될 수 있습니다.

 

- 입력 : 프로그램으로 데이터가 들어오는 것

- 출력 : 프로그램에서 데이터를 내보내는 것

 

가장 대표적인 입력방법은 바로 키보드입니다. 그리고 가장 대표적인 출력방법은 모니터입니다. printf 함수는 모니터를 통해 출력을 내보내는 함수입니다. 하지만 입출력 방법들은 이들만 있는것이 아닙니다. 마우스, 프린터 등 다양한 전자기기들이 입출력 도구가 될 수 있습니다.

오늘은 입출력이 이루어지는 과정에 대해 알아보겠습니다.

 

 

1. 데이터의 이동 통로 : 스트림


우리가 키보드로 입력을 하면 데이터를 프로그램에 전달해주기 위해서는 이동통로가 필요한데, 그 이동 통로를 '입력 스트림'이라고 합니다.

그리고 프로그램이 모니터로 출력을 시켜주기 위해서는 데이터를 이동시켜주어야 하는데 그 통로를 '출력 스트림'이라고 합니다.

입력스트림과 출력스트림은 따로 존재합니다. 스트림의 원래 뜻은 흐르는 물을 뜻하는데 여기서도 그 뜻이 통합니다. 입력 스트림과 출력 스트림은 모두 한 방향으로만 데이터를 전달하는 다리역할을 합니다.

image

데이터를 이동시키기 위해서는 스트림은 필수입니다. 그런데 우리는 지금까지 이러한 스트림을 만든 기억이 없습니다. 사실 키보드와 모니터를 통한 입출력은 가장 기본적인 것이고, 스트림이 운영체제에 의해서 제공됩니다.

키보드와 모니터의 입출력을 '콘솔(console) 입출력'이라고 합니다.

정리하자면 '콘솔 입출력을 위한 스트림은 운영체제(OS)가 제공하며 프로그램 시작시 생성되고 프로그램 종료시 소멸된다' 입니다. 그리고 이 입출력 스트림을 '표준 입출력 스트림'이라고 합니다.

 

표준 입력 스트림(stdin) : 키보드 입력 스트림

표준 출력 스트림(stdout) : 모니터 출력 스트림

 

콘솔 입출력 이외의 입출력을 하려면 소스코드상에서 우리가 직접 데이터의 이동 스트림을 만들어주어야합니다. 파일 입출력도 마찬가지입니다. 우리가 입출력 스트림을 만들어 데이터를 파일에 저장시키고 읽어들일 수 있는겁니다.

+ Recent posts