- ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ์ผ๋ จ์ ๋ฐ์ดํฐ ์์
- ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ, ํจํท, ๋นํธ ๋ฑ์ ์ผ๋ จ์ ์ฐ์์ฑ์ ๊ฐ๋ ํ๋ฆ
- ์คํธ๋ฆผ ๋ฐ์ดํฐ์ ์์๋ก๋ ์์ฑ, ์์, ํ
์คํธ ๋ฑ์ ๋ฐ์ดํฐ
- ์ ํ๋ธ๊ฐ์ ์ฌ์ดํธ์์ ์์์ ๋ณด๋ผ ๋ ์์ ํ์ผ์ ํต์ฑ๋ก ๋ณด๋ธ๋ค๋ฉด ๋ชจ๋ ๋ณด๋ด์ง ๋ ๊น์ง ์ฐ๋ฆฌ๋ ์์์ ๋ณผ ์ ์์ง๋ง, ์์ ํ์ผ์ ์๊ฒ ์ชผ๊ฐ ์ฐ์์ ์ผ๋ก ์ค์ง์ด ์ปดํจํฐ๋ก ๋ณด๋ด๋ฉด ์ฐ๋ฆฌ๋ ๋จผ์ ๋์ฐฉํ ์์ ํ์ผ์ ๋ณผ ์ ์์. ์ด๋ ๊ฒ ์ค์ค์ด ์ฐ์์ ์ผ๋ก ํ๋ฌ๊ฐ๋ ๊ฒ์ด ์คํธ๋ฆผ์ ๋์ ๋ฐฉ์
- ํ์ค ์คํธ๋ฆผ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋ฐฉํฅ์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ๊ฒ
- ๋ฆฌ๋ค์ด๋ ์ ์ ์ฌ์ฉํ๋ฉด ํ์ค ์ ๋ ฅ์ ํค๋ณด๋๊ฐ ์๋ ํ์ผ๋ก๋ถํฐ ๋ฐ์ ์ ์๊ณ , ํ์ค ์ถ๋ ฅ์ ๋์คํ๋ ์ด๊ฐ ์๋ ํ์ผ๋ก ํ ์ ์์
- ๋ผ๋ค์ด๋ ์ ์ด ํ์ค ์คํธ๋ฆผ์ ๋์์ ํ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด์๋ค๋ฉด, ํ์ดํ๋ ํ์ค ์ ์ถ๋ ฅ์ ๋ฐฉํฅ์ ํ๋ก์ธ์ค๋ก ๋ฐ๊ฟ ์ ์์
- ps ๋ช ๋ น์ ํ์ฌ ์คํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ถ๋ ฅํ๋ ๋ช ๋ น์ด๊ณ , grep ๋ช ๋ น์ ํ์ผ์์ ํน์ ๋จ์ด๋ ํจํด์ ํฌํจํ๊ณ ์๋ ๋ช ๋ น
- ์ฐ๋ฆฌ๊ฐ ํค๋ณด๋๋ ๋ง์ฐ์ค ๊ฐ์ ๋จ๋ง๊ธฐ๋ฅผ ํตํด ์ด๋ ํ ๋ฐ์ดํฐ(๋ฌธ์, ํ์ผ)๋ฅผ ์
๋ ฅํ๊ฒ ๋๋ฉด ์ปดํจํฐ๋ ํ๋ก๊ทธ๋จ์ ํตํด ๊ทธ์ ์๋ง๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅ์์ผ์ฃผ๋๋ฐ ํ์ค ์คํธ๋ฆผ์ ์ด๋ฅผ ์ถ์ํ ํ๊ฒ
- ๋ณดํต ์ ์ถ๋ ฅ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ํค๋ณด๋์ ๋ชจ๋ํฐ๋ฅผ ํตํด ์ผ์ด๋๋๋ฐ, ํ์ค ์คํธ๋ฆผ์ด๋ ์ด ํค๋ณด๋๋ก๋ถํฐ์ ์ ๋ ฅ๊ณผ ๋ชจ๋ํฐ๋ก์ ์ถ๋ ฅ์ ์ถ์ํํ ๊ฒ. ์ด์์ฒด์ ๊ฐ ๊ธฐ๋ ๋๋ฉด ๋ํํ ์ ธ (bash, zsh ๊ฐ์) ์ 3๊ฐ์ ํ์ค ์คํธ๋ฆผ์ด ์์ํจ
- ์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์์ฐจ์ ์ธ ๋ฐ์ดํฐ ๋ฐ์ดํธ๋ค์ ํ์ผ์ ๋(End of File, EOF)๊น์ง ์ฝ์ด ํ๋ก๊ทธ๋จ์ ์ธ ๋ฐ์ดํฐ๊ฐ ์ผ๋ง๋ ๋จ์๋์ง, ํน์ ์ด๋ค์์ผ๋ก ๋ฌถ์ฌ ์๋์ง ์ ํ์์์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ธ ์ ์์
- ์คํธ๋ฆผ์ ๋ฐ์ดํธ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ฐํ๋๋ฐ ์ฌ์ฉ๋๋ ์ฐ๊ฒฐํต๋ก๋ก ๋ฌผ์ด ํ๋ฅด๋ ๊ฒ๊ณผ ๊ฐ์ด ๋จ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅํ๊ณ ํ๋์ ์คํธ๋ฆผ์ผ๋ก ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์
- ๋จผ์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ๋ฐ๊ฒ๋์ด ์์ด ์ฐ์์ ์ผ๋ก ์ฃผ๊ณ ๋ฐ๋๋ค๋ ์ ์์ ํ(queue)์ FIFO(First in First Out)๊ตฌ์กฐ๋ก ๋์ด ์์
- ์ฆ, ํ์ค ์คํธ๋ฆผ์ ๋จ๋ง๊ธฐ์ ํ๋ก๊ทธ๋จ ์ฌ์ด์์ ์ผ์ด๋๋ ๋ฐ์ดํฐ ์ ์ถ๋ ฅ์ ์ถ์ํํ ๊ฒ
- ์ด๋ฌํ ํ์ค ์คํธ๋ฆผ์๋ ์๋์ 3๊ฐ์ง ์คํธ๋ฆผ์ด ์กด์ฌ
- ํ์ค ์ ๋ ฅ ์คํธ๋ฆผ(standard input stream)
- ํ์ค ์ถ๋ ฅ ์คํธ๋ฆผ(standard output stream)
- ํ์ค ์ค๋ฅ ์คํธ๋ฆผ(standard error stream)
- ํ์ค ์คํธ๋ฆผ์ ์ ๋์ค์ ์ ๋์ค ๊ณ์ด์ OS(linux, mac...)์์ ์ปดํจํฐ ํ๋ก๊ทธ๋จ๊ณผ ๋จ๋ง๊ธฐ ์ฌ์ด์ ์กด์ฌํ๋ ํต๋ก๋ฅผ ์๋ฏธ
- ์ ๋์ค ์ด์ ์ ์ด์์ฒด์ ๋ ์ฅ์น์ ๋ํ ์ ์ถ๋ ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฅ์น์ ๋ํ ํ๊ฒฝ์ค์ ์ ์ผ์ผํ ํด์ผํ๋ ๋ฑ ํ๋ก๊ทธ๋๋ฐ์ด ๊น๋ค๋ก์ ์
- C ์ธ์ด ์์์ ์คํธ๋ฆผ์ ๊ฒฐ๊ตญ ํ๋ก๊ทธ๋จ์ ๋๋๋๋ ๋ฐ์ดํฐ, ํ์ผ๋ฑ์ ๋ฐ์ดํธ์ ํ๋ฆ์ผ๋ก ๋ํ๋
- ์
๋ ฅ/์ถ๋ ฅ ์คํธ๋ฆผ์ด๋ ํ์ค ์คํธ๋ฆผ๊ณผ ๋น์ทํ ๊ฐ๋
์ผ๋ก ํ๋ก๊ทธ๋จ์ด ์ถ๋ฐ์ง๋ ๋๋ ๋์ฐฉ์ง๋์ ๋ฐ๋ผ ์คํธ๋ฆผ์ ์ข
๋ฅ๊ฐ ๊ฒฐ์ ๋จ
- ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ ์ ๋ ฅ ์คํธ๋ฆผ์ ์ด์ฉํ๋ฉฐ ํ๋ก๊ทธ๋จ์ด ์ด๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋๋ ์ถ๋ ฅ ์คํธ๋ฆผ์ ์ด์ฉ. ์ฌ๊ธฐ์ ์คํธ๋ฆผ ์ญ์ ํ๋ก๊ทธ๋จ์ ๋๋๋๋ ๋ฐ์ดํฐ, ํ์ผ ๋ฑ์ ๋ฐ์ดํธ ํ๋ฆ์
- ์๋ฐ์์๋ ๋ชจ๋ I/O๊ฐ ์คํธ๋ฆผ์ ํตํด ์ด๋ฃจ์ด์ง
- ์๋ฐ๋ ํด๋น ํ์ค ์คํธ๋ฆผ์ System ํด๋์ค๋ฅผ ํตํด ์ฌ์ฉ
- ์๋ฐ์์๋ ์ฒ๋ฆฌ ๋จ์์ ๋ฐ๋ผ Reader - inputStream / Writer - outputStream ์ผ๋ก ๋๋์ด ํต์ ํจ
- InputStream์ System.in์ ์ฌ์ฉ
- OutputStream์ System.out์ ์ฌ์ฉ
- InputStream/OutputStream์ ์ฌ์ฉํ๋ ค๋ฉด ๋ฐ๋์ ํด๋น ํจํค์ง๋ฅผ import ํด์ฃผ์ด์ผ ํจ
- Input Stream์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ ๋ ฅํด๋ 1๊ฐ์ ๋ฌธ์๋ฐ์ ๋ชป ๊ฐ์ ธ์ค๋ฉฐ ๊ธฐ๋ณธํ์ int๋ก ๋ฐ์์ด
- ๋ฌธ์๋ง ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒํ๊ธฐ์ํด ๋ฌธ์ ๋จ์์ ์
์ถ๋ ฅ ์คํธ๋ฆผ์ธ BufferedReader/BufferedWriter ๋ฅผ ์ฌ์ฉ. Scanner ํด๋์ค๋ ์์ง๋ง ์ฃผ๋ก BufferedReader๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํจ
- ํ์ค ์ถ๋ ฅ ์คํธ๋ฆผ
- print()
- println()
- printf()
- OutputStreamWriter ํด๋์ค
- ํ์ค ์
๋ ฅ ์คํธ๋ฆผ
- read() // int ํ์ผ๋ก ์ ๋ ฅ ๋ฐ์
- Scanner ํด๋์ค
- InputStreamReader ํด๋์ค
- ํ์ค ์ถ๋ ฅ ์คํธ๋ฆผ
- ์๋ฐ8๋ถํฐ ์ถ๊ฐ๋ ๋ฐ๋ณต์๋ก ์ปฌ๋ ์ , ๋ฐฐ์ด ๋ฑ์ ์ ์ฅ ์์๋ฅผ ํ๋์ฉ ์ฐธ์กฐํด์ ๋๋ค์์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ
- ์ฝ๊ฒ ๋งํด ์ด์ ์ ์ปฌ๋ ์ ์ด๋ ๋ฐฐ์ด ๋ฑ์ ์์๋ฅผ ๊ฐ๊ณตํ ๋ for, foreach ๋ฑ์ ๋ฐ๋ณต์๋ฅผ ํตํด์ ๊ฐ๊ฐ์ ์์์ ์ ๊ทผํด ์์๋ฅผ ๊ฐ๊ณตํ์์ง๋ง ์คํธ๋ฆผ์ ๊ฒฝ์ฐ ํน์ ํ์ ์ ์คํธ๋ฆผ์ ์ ์ธํ์ฌ ํ์ํ ํํ๋ก ๊ฐ๊ณตํ์ฌ ๋ฐํ
- ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ(data stream)์ผ๋ก ํ์ค ์ ๋ ฅ์ด๋ผ๊ณ ๋ ํจ
- ์ ๋ ฅ์คํธ๋ฆผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํค๋ณด๋๋ก ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ผ๋ ๋ฆฌ๋ค์ด๋ ์ (redirection)์ ํตํด ์ ๋ ฅ๋ฐ์ ์ ์์
- ํ์ง๋ง ํญ์ ์ ๋ ฅ์ด ์กด์ฌํด์ผํ๋ ๊ฒ์ ์๋. command line argument๋ง ์กด์ฌํ๊ณ ํค๋ณด๋๋ ํ์ผ์ผ ํตํ ์ ๋ ฅ์ด ์์ ์๋ ์์
- ์ปดํจํฐ ํ๋ก๊ทธ๋จ์์ ์ถ๋ ฅ๋๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ
- ๊ธฐ๋ณธ์ ์ผ๋ก ํ ์คํธ ํฐ๋ฏธ๋์ ํตํด ๋ชจ๋ํฐ์ ์ถ๋ ฅ๋์ง๋ง ๋ฆฌ๋ค์ด๋ ์ ์ ํตํด ํ์ผ์ ์ถ๋ ฅ๊ฐ์ ์ ์ฅ ํ ์ ์์
- ์ค ๋จ์์ ๋ฒํผ๋ง์ด ์กด์ฌ
- ๋ง์ฐฌ๊ฐ์ง๋ก ํญ์ ์ถ๋ ฅ์ด ์กด์ฌํ๋ ๊ฒ์ ์๋
- ํ์ค ์ค๋ฅ ์คํธ๋ฆผ์ ํ๋ก๊ทธ๋จ์ด ์ค๋ฅ๋ฉ์์ง๋ ์ง๋จ์ ์ถ๋ ฅํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ด๋ ๋ ๋ค๋ฅธ ์ถ๋ ฅ ์คํธ๋ฆผ
- ๋ช ๋ น ์ํ์ ์คํจํ์์ ๋ ์ถ๋ ฅ๋๋ ์ค๋ฅ๋ค์ ์ถ๋ ฅ
- ๋ฒํผ๋ง์ด ์์ด๋ ์ถ๋ ฅ์ด ๊ฐ๋ฅ
- ํ์ค ์ถ๋ ฅ๊ณผ๋ ๋ณ๊ฐ์ ์คํธ๋ฆผ์ผ๋ก ๋ณ๋๋ก ๋ฆฌ๋ค์ด๋ ์ ๋ ์ ์์
22-11-28