유닉스 철학

최소주의적인 모듈 방식의 소프트웨어 개발에 대한 문화적 규범이자 철학적 접근

유닉스 철학(Unix philosophy)는 켄 톰프슨이 고안한 것으로, 최소주의적인 모듈 방식의 소프트웨어 개발에 대한 문화적 규범이자 철학적 접근이다. 유닉스 운영 체제의 선두 개발자들의 경험에 근간한다.

켄 톰프슨데니스 리치는 유닉스 철학의 주된 지지자들이다.

초기의 유닉스 개발자들은 소프트웨어 도구 운동을 확산시켰던 모듈 방식과 재사용성의 개념을 소프트웨어 공학 분야에 가져오는 것이 중요하였다. 시간이 지남에 따라 유닉스 및 유닉스용 프로그램들의 선두 개발자들은 소프트웨어 개발의 문화적 규범들의 집합을 마련하였는데 이 규범들은 유닉스 기술 그 자체로서 중요해졌고 영향력을 떨치게 되었다. 이를 유닉스 철학이라고 부른다.

유닉스 철학은 단순하고 짧고 명료하고 모듈 방식의 확장 가능한 코드를 강조하며, 이러한 코드는 개발자들이 유지 보수를 쉽게 할 수 있다. 유닉스 철학은 모놀리식 디자인과 대조되는 안정 상태를 추구한다.

기원 편집

유닉스 철학은 1978년 벨 시스템 기술 저널에서 더글러스 매클로이[1]가 문서화하였다.[2]

  1. 각 프로그램이 하나의 일을 잘 할 수 있게 만들 것. 새로운 일을 하려면, 새로운 기능들을 추가하기 위해 오래된 프로그램을 복잡하게 만들지 말고 새로 만들 것.
  2. 모든 프로그램 출력이 아직 잘 알려지지 않은 프로그램이라고 할지라도 다른 프로그램에 대한 입력이 될 수 있게 할 것. 무관한 정보로 출력을 채우지 말 것. 까다롭게 세로로 구분되거나 바이너리로 된 입력 형식은 피할 것. 대화식 입력을 고집하지 말 것.
  3. 소프트웨어를 설계하고 구축할 때 빠르게 써볼 수 있게 할 것. 심지어 운영체제라도 이상적으로는 수 주 내로. 어설픈 부분을 버리고 다시 만드는 것을 주저하지 말 것.
  4. 프로그래밍 작업을 가볍게 하기 위해, 심지어 우회하는 방법으로 도구를 만들고 바로 버릴지라도 어설픈 도움 보다는 도구 사용을 선호할 것.

각주 편집

  1. Eric Steven Raymond (2003년 9월 19일). “Basics of the Unix Philosophy: Chapter 1. Philosophy”. 2010년 7월 15일에 원본 문서에서 보존된 문서. 2016년 5월 28일에 확인함. 
  2. Doug McIlroy, E. N. Pinson, B. A. Tague (1978년 7월 8일). “Unix Time-Sharing System Forward”. 《The Bell System Technical Journal》. Bell Laboratories. 1902–1903쪽. 

외부 링크 편집