ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ

์ผ์ฃผ์ผ ์ „, UNIX ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ฐœ๋ฐœ์ž์ด์ž "์ปดํฌ๋„ŒํŠธ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ" ๊ฐœ๋…์˜ ์ฐฝ์‹œ์ž์ธ Douglas McIlroy๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์•ผ๊ธฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํฅ๋ฏธ๋กญ๊ณ  ํŠน์ดํ•œ UNIX ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด. ์ด ๊ฐ„ํ–‰๋ฌผ์€ Hacker News์— ๋Œ€ํ•œ ํ™œ๋ฐœํ•œ ํ† ๋ก ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ๋“ค์„ ๋ชจ์•˜์œผ๋ฉฐ ํ† ๋ก ์— ์ฐธ์—ฌํ•ด ์ฃผ์‹œ๋ฉด ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ
์‚ฌ์ง„ โ€” ๋ฒ„์ง€๋‹ˆ์•„ ์กด์Šจ โ€” ์–ธํ”Œ๋ž˜์‰ฌ

ํ…์ŠคํŠธ ์ž‘์—…

UNIX์™€ ์œ ์‚ฌํ•œ ์šด์˜ ์ฒด์ œ์—๋Š” ํ…์ŠคํŠธ ์„œ์‹์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ๋„๊ตฌ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์ต์‚ฌ์—… ์˜ค์‹ ๋ฌธ์„œ์— ์˜คํƒ€๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ํ•˜ํŒ์Šค - ์ž๋ฃŒ์— ํ•œ ๋ฒˆ๋งŒ ๋‚˜ํƒ€๋‚˜๋Š” ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์˜คํƒ€๋ฅผ ์ฐพ์•„์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค ์‚ฌ์ „. ํŒŒ์ผ์˜ ์ •๋ณด์—๋งŒ ์˜์กดํ•˜๋ฉฐ ํŠธ๋ผ์ด๊ทธ๋žจ(XNUMX๊ฐœ์˜ ๋ฌธ์ž ์‹œํ€€์Šค)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผํŒŒ์ˆ˜ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์นด์šดํ„ฐ๋Š” ์ €์žฅ๋˜์–ด์žˆ๋‹ค. 26x26x26 ๋ฐฐ์—ด๋กœ. Douglas McIlroy์— ๋”ฐ๋ฅด๋ฉด ์ด ๋ฉ”๋ชจ๋ฆฌ ์–‘์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹จ์ผ ๋ฐ”์ดํŠธ ์นด์šดํ„ฐ์— ๊ฑฐ์˜ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋น„์šฉ์„ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊ทธ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋‚  ์˜คํƒ€๋Š” ๋ณด๋‹ค ํ˜„๋Œ€์ ์ด๊ณ  ์ •ํ™•ํ•œ ์‚ฌ์ „ ๊ธฐ๋ฐ˜ ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ๊ธฐ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ๋žŒ๋“ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ด ์•…๊ธฐ์— ๋Œ€ํ•ด ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๋…„ ์ „ ํ•œ ์—ด๊ด‘์ ์ธ ํŒฌ์ด ๋„์ž… ๋œ Go์˜ ์˜คํƒ€ ๊ตฌํ˜„. ์ €์žฅ์†Œ๋Š” ๊ณ„์† ์—…๋ฐ์ดํŠธ ์ค‘์ž…๋‹ˆ๋‹ค.

80๋…„๋Œ€ ๋ฌธ์„œ ์ž‘์—…์„ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ๋„๊ตฌ๋Š” ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. ์ž‘๊ฐ€์˜ ์ž‘์—…๋Œ€ Bell Labs์˜ Lorinda Cherry์™€ Nina McDonald๊ฐ€ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ตฌ์„ฑ ํฌํ•จ ํ’ˆ์‚ฌ ๋ฐ ๋ฌธ์„œ ์Šคํƒ€์ผ์„ ์‹๋ณ„ํ•˜๊ณ , ๋™์–ด ๋ฐ˜๋ณต ๋ฐ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ณต์žกํ•œ ๋ฌธ์žฅ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ๋ณด์กฐ ๋„๊ตฌ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ํ•œ๋•Œ๋Š” ะธัะฟะพะปัŒะทะพะฒะฐะปะธ ๋ฏธ๊ตญ ์ฝœ๋กœ๋ผ๋„ ์ฃผ๋ฆฝ๋Œ€ํ•™๊ต ํ•™์ƒ๋“ค. ๊ทธ๋Ÿฌ๋‚˜ 7๋…„๋Œ€ ์ดˆ๋ฐ˜์— Writer's Workbench๋Š” ๋ฒ„์ „ XNUMX Unix์— ํฌํ•จ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์žŠํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์•…๊ธฐ๋Š” ๋ชจ๋ฐฉ์ž์˜ ๊ธธ์„ ๊ณ„์† ์ด์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ๋ฒ• IBM PC์šฉ.

UNIX๋Š” ๋˜ํ•œ ์ˆ˜์‹ ์ž‘์—…์„ ๋” ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ํ‘œ์ค€ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ•™ ํ‘œํ˜„์‹์˜ ํ˜•์‹์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. eqn. ๊ณต์‹์„ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ„๋‹จํ•œ ๋‹จ์–ด์™€ ๊ธฐํ˜ธ๋กœ๋งŒ ๊ณต์‹์„ ์„ค๋ช…ํ•˜๋ฉด ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜ํ•™ ๊ธฐํ˜ธ๋ฅผ ์ˆ˜์ง ๋ฐ ์ˆ˜ํ‰์œผ๋กœ ์ด๋™ํ•˜๊ณ  ํฌ๊ธฐ ๋ฐ ๊ธฐํƒ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ผ์ธ์„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ „๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ:

sum from { k = 1 } to N { k sup 2 }

์ถœ๋ ฅ์€ ๋‹ค์Œ ์ˆ˜์‹์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ

1980๋…„๋Œ€~1990๋…„๋Œ€ eqn ๋„์›€์ด ๋œ IT ์ „๋ฌธ๊ฐ€๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋งค๋‰ด์–ผ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜์ค‘์— LaTeX ์‹œ์Šคํ…œ์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ะธัะฟะพะปัŒะทัƒะตั‚ ์‹ฌ์ง€์–ด ํ•˜๋ธŒ๋ฅด. ๊ทธ๋Ÿฌ๋‚˜ eqn์€ UNIX์™€ ์œ ์‚ฌํ•œ ์šด์˜ ์ฒด์ œ์˜ ์ผ๋ถ€๋กœ ๋‚จ์•„ ์žˆ๋Š” ๋™๊ธ‰ ์ตœ์ดˆ์˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ ์ž‘์—…

์ฃผ์ œ๋ณ„ ์Šค๋ ˆ๋“œ์—์„œ Hacker News ์ฃผ๋ฏผ๋“ค์€ ํŒŒ์ผ ์ž‘์—…์— ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ช‡ ๊ฐ€์ง€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ค‘ ํ•˜๋‚˜ ์žˆ์—ˆ๋‹ค ํ†ต์‹  ๊ทธ๋“ค์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด. ์ด๊ฒƒ์€ ๋‹จ์ˆœํ™”๋œ ์•„๋‚ ๋กœ๊ทธ์ด๋‹ค diff, ์Šคํฌ๋ฆฝํŠธ ์ž‘์—…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์˜ ะฝะฐะฟะธัะฐะป Richard Stallman ์ž์‹ ๊ณผ David MacKenzie.

ํ”„๋กœ๊ทธ๋žจ ์ถœ๋ ฅ์€ ์„ธ ๊ฐœ์˜ ์—ด๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์—ด์—๋Š” ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์— ๊ณ ์œ ํ•œ ๊ฐ’์ด ํฌํ•จ๋˜๊ณ , ๋‘ ๋ฒˆ์งธ ์—ด์—๋Š” ๋‘ ๋ฒˆ์งธ ํŒŒ์ผ์— ๊ณ ์œ ํ•œ ๊ฐ’์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ์—ด์—๋Š” ์ด ๊ฐ’์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. comm์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋น„๊ต๋œ ๋ฌธ์„œ๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฅ ๊ฑฐ์ฃผ์ž ์ค‘ ํ•œ ๋ช…์ด ะฟั€ะตะดะปะพะถะธะป ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

comm <(sort fileA.txt) <(sort fileB.txt)

Comm์€ ๋‹จ์–ด์˜ ์ฒ ์ž๋ฅผ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์‚ฌ์ „ ๋ฌธ์„œ์™€ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ •๋ ฌ ํ•„์š”์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋ฏธ๋ฌ˜ํ•จ์„ ๊ณ ๋ คํ•˜๋ฉด ์˜๊ฒฌ, Stallman๊ณผ MacKenzie๋Š” ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋งŒ์„ ์œ„ํ•ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ
์‚ฌ์ง„ โ€” ๋งˆ๋ฅด๋‹‰์Šค ํ˜ธ๊ฒ๋„๋ฅธ โ€” ์–ธํ”Œ๋ž˜์‰ฌ

HN์— ๋Œ€ํ•œ ํ† ๋ก  ์ฐธ๊ฐ€์ž์ด๊ธฐ๋„ ํ•จ ๊ทธ๋Š” ์ง€์  ์šด์˜์ž ๋Šฅ๋ ฅ ํŒŒ์Šคํƒ€, ๊ทธ์—๊ฒŒ๋Š” ๋ถ„๋ช…ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅ ์‹œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ธํ„ฐ๋ฆฌ๋ธŒํ•˜๊ฑฐ๋‚˜ ํ•˜๋‚˜์˜ ์ŠคํŠธ๋ฆผ์„ ๋‘ ๊ฐœ์˜ ์—ด๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo     baz
bar     qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo     bar
baz     qux

์‚ฌ์šฉ์ž ์ค‘ ํ•œ ๋ช…์ด ์•Œ์•„ ์ฐจ ๋ ธ๋˜, ์ด๋Ÿฌํ•œ ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ์ตœ์ ์˜ ์†”๋ฃจ์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. fmt, ex ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๋ง mlr ั ๊ทนํžˆ ์กฐ๊ธˆ ะธ rs.

UNIX ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์˜ ์–ด๋–ค ํ‘œ์ค€ ๊ธฐ๋Šฅ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ ํšŒ์‚ฌ ๋ธ”๋กœ๊ทธ์— ์“ฐ๋Š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋„๋ฉ”์ธ ์ด๋ฆ„ ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ–ˆ๋‚˜์š”? ARPANET ์‹œ๋Œ€
ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋„๋ฉ”์ธ ์ด๋ฆ„ ์‹œ์Šคํ…œ์˜ ์—ญ์‚ฌ: ์ตœ์ดˆ์˜ DNS ์„œ๋ฒ„
ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ DNS์˜ ์—ญ์‚ฌ: ๋„๋ฉ”์ธ ์ด๋ฆ„์ด ์œ ๋ฃŒํ™”๋˜์—ˆ์„ ๋•Œ
ํ† ๋ก : ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•ด์™”๊ณ  ์ง€๊ธˆ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋„๋ฉ”์ธ ์ด๋ฆ„ ์‹œ์Šคํ…œ์˜ ์—ญ์‚ฌ: ํ”„๋กœํ† ์ฝœ ์ „์Ÿ

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€