유닉스 철학(Unix philosophy)은 각 프로그램이 맡은 일을 잘 수행하고, 그 결과를 다른 프로그램과 연결해 더 큰 일을 처리하도록 설계하는 관점이다. KISS와 함께 규모를 살피면서도, 도구 사이에서 무엇을 주고받을지에 주목한다. 읽고 가공하기 쉬운 텍스트를 입출력 형식으로 사용하는 전통이 여기에 속한다. (에릭 S. 레이먼드, 유닉스 철학의 기초)
도구를 이어 쓰기
- 명령어 하나가 모든 기능을 맡도록 만들기 전에 입력, 처리, 출력을 적어보자. 파이프는 앞 프로그램의 출력을 다음 프로그램의 입력으로 넘기는 연결 방법이다. (더글러스 매킬로이, 연구용 유닉스의 기록)
- 출판 작업에 적용해본다면 원고에서 제목을 뽑기, 가나다순으로 정렬하기, 목록을 HTML로 옮기기를 따로 생각할 수 있다. 각 단계의 결과를 읽을 수 있어야 잘못된 부분도 찾기 쉽다.
- 도구를 나누는 만큼 연결 형식을 맞추는 일도 생긴다. 모든 기능을 별도 프로그램으로 쪼개야 한다는 뜻으로 적용하지 말고, 실제 작업에서 교체하거나 재사용할 부분부터 살펴보자.