์ตœ๊ณ ์˜ ์œ ๋‹‰์Šค ํ”„๋กœ๊ทธ๋žจ

์ด ๊ธฐ์‚ฌ์˜ ์ €์ž Douglas McIlroy๋Š” ๋ฏธ๊ตญ์˜ ์ˆ˜ํ•™์ž, ์—”์ง€๋‹ˆ์–ด ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” Unix ์šด์˜ ์ฒด์ œ์˜ ํŒŒ์ดํ”„๋ผ์ธ, ๊ตฌ์„ฑ ์š”์†Œ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์›์น™ ๋ฐ ๋ช‡ ๊ฐ€์ง€ ๋…์ฐฝ์ ์ธ ์œ ํ‹ธ๋ฆฌํ‹ฐ(spell, diff, sort, join, speak, tr)๋ฅผ ๊ฐœ๋ฐœํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ€์žฅ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๋•Œ๋•Œ๋กœ ์ •๋ง ๋ฉ‹์ง„ ํ”„๋กœ๊ทธ๋žจ์„ ์ ‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ธฐ์–ต์„ ๋’ค์ ๊ฑฐ๋ฆฐ ํ›„, ๋‚˜๋Š” ์ˆ˜๋…„ ๋™์•ˆ ์‹ค์ œ Unix ๋ณด์„ ๋ชฉ๋ก์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋“ค์€ ๋งค์šฐ ๋“œ๋ฌผ๊ณ  ๊ผญ ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ๋“ค์„ ๋‹๋ณด์ด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๊ทธ๋“ค์˜ ๋…์ฐฝ์„ฑ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค ์ค‘ ์–ด๋–ค ์•„์ด๋””์–ด๋ฅผ ์ƒ๊ฐํ•ด ๋ƒˆ๋‹ค๊ณ  ์ƒ์ƒ์กฐ์ฐจ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ๋„ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์— ๊นŠ์€ ์ธ์ƒ์„ ๋ฐ›์•˜๋‚˜์š”?

PDP-7 ์œ ๋‹‰์Šค

์šฐ์„  PDP-7 Unix ์‹œ์Šคํ…œ ์ž์ฒด์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์˜ ๋‹จ์ˆœํ•จ๊ณผ ๊ฐ•๋ ฅํ•จ์€ ๋‚˜๋ฅผ ๊ฐ•๋ ฅํ•œ ๋ฉ”์ธํ”„๋ ˆ์ž„์—์„œ ์ž‘์€ ๊ธฐ๊ณ„๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธํ”„๋ ˆ์ž„์˜ Multics๊ฐ€ ์ˆ˜๋ฐฑ ๋…„์˜ ๊ฐœ๋ฐœ ๋์— ๋‹ฌ์„ฑํ•  ์ˆ˜ ์—†์—ˆ๋˜ ์ „ํ˜•์ ์ธ ๊ณ„์ธต์  ํŒŒ์ผ ์‹œ์Šคํ…œ, ๋ณ„๋„์˜ ์…ธ ๋ฐ ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ํ”„๋กœ์„ธ์Šค ์ œ์–ด์ž…๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค์˜ ๋‹จ์ (์˜ˆ: ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ ˆ์ฝ”๋“œ ๊ตฌ์กฐ)์€ ์œ ๋‹‰์Šค์˜ ํ˜์‹ (์˜ˆ: ์…ธ I/O ๋ฆฌ๋””๋ ‰์…˜)๋งŒํผ ์œ ์ตํ•˜๊ณ  ํ•ด๋ฐฉ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

dc

Robert Morris์˜ ๊ฐ€๋ณ€ ์ •๋ฐ€๋„ ๋ฐ์Šคํฌํ†ฑ ๊ณ„์‚ฐ๊ธฐ ์ˆ˜ํ•™ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒฐ๊ณผ ์ •๋ฐ€๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ๋‹จ๊ณ„์—์„œ ํ•„์š”ํ•œ ์ •๋ฐ€๋„๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์—ญ ์˜ค์ฐจ ๋ถ„์„์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. 1968๋…„ NATO ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ํšŒ์˜์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ์—์„œ ์›ํ•˜๋Š” ์ •ํ™•๋„๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ฐธ์กฐ ์ ˆ์ฐจ๋ฅผ ์ œ์•ˆํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. dc๋Š” ์—ฌ์ „ํžˆ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

์˜ค์‹

Typo๋Š” ๋‚˜๋จธ์ง€ ํ…์ŠคํŠธ์™€์˜ ์œ ์‚ฌ์„ฑ์— ๋”ฐ๋ผ ํ…์ŠคํŠธ์˜ ๋‹จ์–ด๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. 'hte'์™€ ๊ฐ™์€ ๋งž์ถค๋ฒ• ์˜ค๋ฅ˜๋Š” ๋ชฉ๋ก ๋์— ์žˆ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๋ฒ„ํŠธ ๋ชจ๋ฆฌ์Šค๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์ด ๋ชจ๋“  ์–ธ์–ด์—์„œ ๋˜‘๊ฐ™์ด ์ž˜ ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ž๋ž‘์Šค๋Ÿฝ๊ฒŒ ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜คํƒ€๊ฐ€ ๋ฐœ์Œ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€๋Š” ์•Š์ง€๋งŒ ๋ชจ๋“  ์‹์ž๊ณต์—๊ฒŒ ํฐ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉฐ ํ›จ์”ฌ ๋œ ํฅ๋ฏธ๋กญ์ง€๋งŒ ๋” ์ •ํ™•ํ•œ ์‚ฌ์ „ ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ ์ „์—๋Š” ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Typo๋Š” ์™ธ๋ถ€์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‚ด๋ถ€์—์„œ๋„ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ ์‚ฌ๋„ ์ธก์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 26ร—26ร—26 ๋ฐฐ์—ด๋กœ ์นด์šดํŠธ๋˜๋Š” ํŠธ๋ผ์ด๊ทธ๋žจ์˜ ๋ฐœ์ƒ ๋นˆ๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” XNUMX๋ฐ”์ดํŠธ ์นด์šดํ„ฐ๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„์ด ๊ฑฐ์˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํฐ ์ˆซ์ž๋ฅผ ์ž‘์€ ์นด์šดํ„ฐ๋กœ ์••์ถ•ํ•˜๋Š” ์ฒด๊ณ„๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์นด์šดํ„ฐ ๊ฐ’์˜ ๋กœ๊ทธ ์ถ”์ •์น˜๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์นด์šดํ„ฐ๋ฅผ ํ™•๋ฅ ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

eqn

์‚ฌ์ง„ ์‹์ž์˜ ์ถœํ˜„์œผ๋กœ ๊ณ ์ „์ ์ธ ์ˆ˜ํ•™ ํ‘œ๊ธฐ๋ฒ•์„ ์ธ์‡„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์กŒ์ง€๋งŒ ๋งค์šฐ ์ง€๋ฃจํ–ˆ์Šต๋‹ˆ๋‹ค. Lorinda Cherry๋Š” ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์„ค๋ช… ์–ธ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ  ๊ณง Brian Kernigan์ด ํ•ฉ๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ๋ˆˆ๋ถ€์‹  ์›€์ง์ž„์€ ๊ตฌ์ „ ์ „ํ†ต์„ ๊ธ€๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— eqn์€ ๋†€๋ผ์šธ ์ •๋„๋กœ ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์› ์Šต๋‹ˆ๋‹ค. ๋™์ข… ์ตœ์ดˆ์˜ ์ˆ˜ํ•™์  ํ‘œํ˜„ ์–ธ์–ด ์ „์ฒ˜๋ฆฌ๊ธฐ์ธ eqn์€ ๊ทธ ์ดํ›„๋กœ ๋งŽ์ด ๊ฐœ์„ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ฒด

Brenda Baker๋Š” ์ƒ์‚ฌ์ธ ์ €์˜ ์กฐ์–ธ์— ๋ฐ˜ํ•˜์—ฌ Fortan-to-Ratfor ๋ณ€ํ™˜๊ธฐ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์›๋ณธ ํ…์ŠคํŠธ์˜ ํŠน๋ณ„ํ•œ ์žฌ์ •๋ ฌ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น๋ฌธ ๋ฒˆํ˜ธ๋Š” ์—†์ง€๋งŒ ์ž˜ ๊ตฌ์„ฑ๋œ Fortran ์ฝ”๋“œ๋ณด๋‹ค ๋” ์ฝ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ Œ๋‹ค๋Š” ๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋…€๋Š” ๋ชจ๋“  Fortran ํ”„๋กœ๊ทธ๋žจ์ด ์ •๊ทœ์ ์œผ๋กœ ๊ตฌ์กฐํ™”๋œ ํ˜•์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ์ž์‹ ์ด ์›๋ž˜ ์ž‘์„ฑํ•œ ๊ฒƒ๋ณด๋‹ค ์ •์‹ ํ˜•์‹์„ ์„ ํ˜ธํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์Šค์นผ

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

๋ถ€ํ’ˆ

WWB(Writer's Workbench) ๋ชจ๋“ˆ ๋‚ด๋ถ€์— ์ˆจ๊ฒจ์ ธ ์žˆ์Œ parts Lorinda Cherry๋Š” ์ž‘์€ ์‚ฌ์ „, ์ฒ ์ž ๋ฐ ๋ฌธ๋ฒ• ๊ทœ์น™๋งŒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜์–ด ํ…์ŠคํŠธ์˜ ๋‹จ์–ด์— ๋Œ€ํ•œ ํ’ˆ์‚ฌ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฃผ์„์„ ๊ธฐ๋ฐ˜์œผ๋กœ WWB ํ”„๋กœ๊ทธ๋žจ์€ ํ˜•์šฉ์‚ฌ, ์ข…์†์ ˆ ๋ฐ ๋ณต์žกํ•œ ๋ฌธ์žฅ์˜ ์œ ํ–‰๊ณผ ๊ฐ™์€ ํ…์ŠคํŠธ์˜ ๋ฌธ์ฒด ์ง€ํ‘œ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Lorinda๊ฐ€ NBC์˜ Today์—์„œ ์ธํ„ฐ๋ทฐ๋ฅผ ํ•˜๊ณ  WWB ํ…์ŠคํŠธ์˜ ํ˜์‹ ์ ์ธ ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์„ ๋•Œ TV์—์„œ Unix๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์–ธ๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ทธ๋ ™

Al Aho๋Š” ๊ทธ์˜ ๊ฒฐ์ •๋ก ์  ์ •๊ทœ์‹ ๋ฆฌ์กธ๋ฒ„๊ฐ€ Ken์˜ ๊ณ ์ „์ ์ธ ๋น„๊ฒฐ์ •๋ก ์  ๋ฆฌ์กธ๋ฒ„๋ฅผ ์ถ”์›”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ํ›„์ž๋Š” ์ด๋ฏธ ๋ณต์žกํ•œ ์ •๊ทœ ํ‘œํ˜„์‹์„ ํ†ต๊ณผํ•˜๊ณ  ์žˆ์—ˆ์ง€๋งŒ egrep ์ž์‹ ์˜ ๊ฒฐ์ •์  ์ž๋™ํ™”๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์ฃผ์—์„œ ์—ฌ์ „ํžˆ ์ด๊ธฐ๊ธฐ ์œ„ํ•ด Al Aho๋Š” ์ธ์‹ ์ค‘์— ์‹ค์ œ๋กœ ๋ฐฉ๋ฌธํ•œ ํ…Œ์ด๋ธ”์˜ ํ•ญ๋ชฉ๋งŒ ์ฆ‰์„์—์„œ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐœ๋ช…ํ•˜์—ฌ ์ž๋™ ์žฅ์น˜์˜ ์ƒํƒœ ํ…Œ์ด๋ธ”์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ €์ฃผ๋ฅผ ํ”ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒŒ

Blit ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ Luca Cardelli์˜ ๋งค๋ ฅ์ ์ธ ๋ฉ”ํƒ€ ํ”„๋กœ๊ทธ๋žจ์€ ๋นˆ ํ™”๋ฉด ๊ณต๊ฐ„์„ ๋Œ์•„๋‹ค๋‹ˆ๋ฉฐ ํ™œ์„ฑ ์ฐฝ์˜ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ์ ์  ๋” ๋ฌผ์–ด๋œฏ๋Š” ๊ฐ€์ƒ ๊ฒŒ๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์ƒ๊ฐ

์™ธ๋ถ€์—์„œ ๋ณด์ด์ง€๋Š” ์•Š์ง€๋งŒ ์ด๋ก ๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ(typo, dc, struct, pascal, egrep) ์ƒ์„ฑ์— ๊ฒฐ์ •์ ์ธ ์—ญํ• ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๊ฐ€์žฅ ๋†€๋ผ์šด ๊ฒƒ์€ ์ด๋ก ์˜ ํŠน์ดํ•œ ์ ์šฉ์ด๋‹ค.

๋ชฉ๋ก์˜ ๊ฑฐ์˜ ์ ˆ๋ฐ˜(pascal, struct, parts, eqn)์€ ์›๋ž˜ ์—ฌ์„ฑ์ด ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ ์ปดํ“จํ„ฐ ๊ณตํ•™ ๋ถ„์•ผ์˜ ์—ฌ์„ฑ ์ธ๊ตฌ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์Šต๋‹ˆ๋‹ค.

๋”๊ธ€๋ผ์Šค ๋งคํ‚ฌ๋กœ์ด
3 ์›”, 2020


์ถœ์ฒ˜ : habr.com

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