1978 년의 네 줄
Doug McIlroy 가 Unix 설계를 네 줄로 정리, 지금도 유효:
- 한 프로그램은 한 가지를 잘 해라.
- 모든 프로그램의 출력이 아직 모르는 다른 프로그램의 입력이 될 거라 가정해라.
- 소프트웨어 (OS 포함) 를 일찍 — 가능하면 몇 주 안에 — 시도할 수 있게 설계해라.
- 프로그래밍 작업을 가볍게 하기 위해 도구를 우선해라. 도구를 만들기 위해 우회해야 해도, 그리고 다 쓴 후 일부는 버려야 해도.
왜 지금도 중요한가
현대 대응: microservice (1), JSON pipeline (2), MVP / 지속 배포 (3), 빌드 스크립트와 CI 도구 (4). 지금 하는 모든 개발 관행이 이 네 줄의 후손이야.
구체적 습관
- 평문 우선. 로그, 설정, 데이터 — 텍스트 먼저, binary 는 강제될 때만. 텍스트는 파이프 타고, binary 는 안 타.
- 한 command 한 일. shell function 이 300 줄이면 그건 조립 안 되는 도구. 쪼개.
- 출력은 계약. 헤더, 컬럼, 고정 구분자로 안정적 출력하는 프로그램이 파이프 가능. 사람용 pretty-print 는 별도 flag 로.
- 에러는 stderr, 데이터는 stdout. 무조건.
예외 — jq + 구조화 데이터
중첩 JSON 에는 line-oriented pipe 모델이 깨져. 현대 Unix 는 이걸 인정 — jq, yq, dasel 가 일등 시민. JSON 스트림도 조립 가능하게 만들어주니까. 철학은 그대로, 데이터 모양만 바뀜.