새로운 질서 위키

유닉스 철학

유닉스 철학(Unix philosophy)은 각 프로그램이 맡은 일을 잘 수행하고, 그 결과를 다른 프로그램과 연결해 더 큰 일을 처리하도록 설계하는 관점이다. KISS와 함께 규모를 살피면서도, 도구 사이에서 무엇을 주고받을지에 주목한다. 읽고 가공하기 쉬운 텍스트를 입출력 형식으로 사용하는 전통이 여기에 속한다. (에릭 S. 레이먼드, 유닉스 철학의 기초)

도구를 이어 쓰기

  • 명령어 하나가 모든 기능을 맡도록 만들기 전에 입력, 처리, 출력을 적어보자. 파이프는 앞 프로그램의 출력을 다음 프로그램의 입력으로 넘기는 연결 방법이다. (더글러스 매킬로이, 연구용 유닉스의 기록)
  • 출판 작업에 적용해본다면 원고에서 제목을 뽑기, 가나다순으로 정렬하기, 목록을 HTML로 옮기기를 따로 생각할 수 있다. 각 단계의 결과를 읽을 수 있어야 잘못된 부분도 찾기 쉽다.
  • 도구를 나누는 만큼 연결 형식을 맞추는 일도 생긴다. 모든 기능을 별도 프로그램으로 쪼개야 한다는 뜻으로 적용하지 말고, 실제 작업에서 교체하거나 재사용할 부분부터 살펴보자.

기타 등등

  • 매킬로이의 회고에 따르면 초기 파이프 표기법은 설명에 거의 한 쪽이 필요했다. 켄 톰프슨이 | 표기를 제안한 뒤에는 네 문장으로 설명할 수 있었다. 출처
  • 초기 프로그램들은 오류 진단도 일반 출력에 섞어 보냈다. 파이프를 연결하면 다음 프로그램이 그 문장까지 데이터로 받게 됐고, 이후 표준 오류 출력이 도입됐다. 출처

#원칙 #프로그래밍 #도구

검색