Debian-buster 에 대해서 공부하려다 GNU정신을 알게되었다.
42서울 ft_server 과제를 시작했다. 이 과제는 도커를 이용하여 debian-buster + nginx + mysql + wordpress 로 구성된 웹서버를 구현하는 과제이다. 유튜브 광고에서 본 워드프레스를 제외하면 모두 초면인 도구들 이었기에 하나씩 알아보고자 했다.
먼저 구글에서 내가 가장 많이 사용하는 단어인 란 으로 검색을 해보았다.

검색 결과의 세 번 째 항목 쯤에 debian.org 로 시작하는 링크가 있어 들어가보았다. 데비안은 항상 적어도 “안정”, “테스트”, “불안정” 3개의 릴리즈를 관리하는데, “안정” 배포판이 공식적인 데비안 배포판이다. 현재 “안정” 배포판은 버전 10, 코드 이름은 buster 이고 최초 버전이 2019년 7월 6일에 나왔다고 한다.
이를 통해 내가 ‘릴리즈’ 가 뭔지 모른다는 것을 알게되었고, 다시 란 검색을 통해

릴리즈 = 배포판 이라는 것을 알게되었다.
이제 대충 debian이라는 프로그램이 있고 -buster 는 그 10번 째 배포판의 ‘코드 네임’이라는 것을 알게되었다. 보고 있던 공식페이지가 고맙게도 한글 번역이 잘 되어있어 더 둘러보기로 했다.
데비안 소개
먼저 데비안 소개페이지를 읽었다. 소개 페이지의 첫 문장은 이랬다.
데비안은 사람들의 커뮤니티 입니다. 전 세계 수천 명의 자원봉사자가 자유 소프트웨어와 사용자 요구사항을 우선적으로 생각하며 함께 일합니다.
데비안이 자신을 사람들의 커뮤니티라고 소개한 것처럼, 소개 페이지의 첫번 째 항목이 ‘사람들: 우리는 누구, 우리는 무엇을 하는가’ 이었다.
이 페이지에 따르면, 데비안은 여가 시간에 자원봉사를 하는 전세계에 있는 거의 천 명의 활동적인 개발자가 만들고, 실제로 직접 만난 개발자는 거의 없다고 한다.

데비안은 1993년 8월에 이안 머독(Ian Murdock)이 리눅스와 GNU의 정신으로 공개적으로 만든 새로운 배포판으로 시작했다고 한다. GNU의 정신이 무슨 정신인지 몰라서 정신없이 란 검색을 시작했다.

검색을통해 여러 블로그 글을 보다가, 느낌적으로는 와 닿으나 GNU는 뭐고 리눅스는 뭐고 둘은 무슨 사이다 를 정확하게 알고싶어, GNU 공식 사이트에 들어가 그 뿌리를 찾아보았다.
💡새로운 도구, 개념에 대해 알고자 할 때, 정확한 지식의 습득을 위해 공식 문서부터 찾아보는 습관을 만들자.
GNU is not Unix!!
너무 잘 작성 및 번역되어 있는 문서라고 생각하여 왜곡을 피하기 위해 나의 해석이나, 정리는 생략하고 공식 사이트의 내용을 발췌하여 기록하였다.
우리가 사용하는 ‘자유’의 의미는 금전적인 측면의 자유가 아닌 구속되지 않는다는 관점에서의 자유를 의미합니다. 따라서 GNU 소프트웨어를 사용하기 위해서 지불된 비용의 유무에 상관없이 일단 소프트웨어를 입수한 뒤에는 다음과 같은 네가지 종류의 자유가 실질적으로 보장됩니다. 프로그램을 원하면 어떠한 목적으로도 실행할 수 있는 자유, 프로그램을 복제(copying)하고 친구나 동료와 함께 이를 공유할 수 있는 자유, 소스 코드를 원용해서 이를 개작(modification)할 수 있는 자유, 개작된 프로그램을 배포(distribution)할 수 있는 자유. 이러한 자유의 보장은 결국 공동체 전체의 발전에 기여하게 될 것입니다. (GNU 소프트웨어를 배포할 경우, 배포본 제작에 소요된 경비를 충당하기 위해서 이를 적절한 가격에 판매할 수 있습니다.)
GNU 프로젝트는 초기의 컴퓨터 공동체 안에 충만해 있던 호의적인 상호 협력의 정신을 재건하기 위한 구체적인 실현 방법으로 1983년에 시작되었으며, 이는 독점 소프트웨어의 소유자들이 만든 장벽들을 제거함으로써 상호 협력의 풍토를 다시 한번 부활시키는 것을 그 목적으로 합니다.
리차드 스톨만이 MIT에서 직업적인 연구활동을 시작했던 1971년에 그는 자유 소프트웨어만을 사용하는 연구 그룹에서 일하게 되었는데, 그 시절은 상업적인 컴퓨터 회사들 조차도 자유 소프트웨어를 배포하던 때였으므로 프로그래머들은 아무런 제약없이 서로 협력할 수 있었습니다
그러나 1980년대에 이르러 거의 모든 소프트웨어들은 소유와 독점에 관한 법률에 의해서 제한되었으며, 소유권자들은 소프트웨어의 자유로운 이용을 통한 사용자들의 상호 협력을 그들의 권리를 내세워서 금지시켰습니다. 바로 이것이 GNU 프로젝트가 시작된 이유였습니다.
모든 컴퓨터 사용자들은 운영체제가 필요합니다. 만약 자유롭게 사용할 수 있는 운영체제가 없다면 컴퓨터를 사용하고자 하는 모든 사람들은 독점적인 상용 운영체제를 이용할 수밖에 없을 것입니다. 따라서, 자유 소프트웨어에 대한 첫번째 과제는 자유 운영체제를 만드는 것이었습니다.
우리가 구상했던 운영체제를 유닉스와 호환되도록 결정했던 이유는 유닉스의 설계 방식에 대한 전반적인 우수성과 이식성이 이미 충분히 증명되었기 때문이고, 호환성을 통해서 많은 유닉스 사용자들이 보다 쉽게 GNU 환경으로 적응할 수 있도록 하기 위해서 입니다.
운영체제는 단순히 커널만을 의미하는 것이 아닙니다. 운영체제에는 컴파일러와 문서 편집기, 조판 프로그램, 메일 소프트웨어와 같은 다양한 종류의 소프트웨어들이 통합되어 있어야 합니다. 따라서, 완성된 운영체제를 만든다는 것은 무척이나 방대한 작업이며 많은 세월이 필요한 일입니다.
자유 운영체제에 대한 우리의 첫 번째 계획은 1990년대에 와서 실현되었습니다. 커널을 제외한 주요 부분들을 새롭게 작성하고 취합하던 과정에서 우리는 리누스 토발즈(Linus Tovalds)에 의해서 리눅스가 개발되고 있다는 사실을 알게 되었고, 리눅스는 곧 GNU와 합류하게 되었습니다. 자유 소프트웨어인 리눅스 커널과의 결합으로 GNU 시스템은 독립된 운영체제로서의 완성된 모습을 갖출 수 있었고 슬랙웨어와 데비안, 레드햇과 같은 GNU 시스템에 기반한 많은 운영체제들이 이제는 수십만에 달하는 사용자를 갖게 되었습니다.
이 문서를 읽은 뒤 자연스럽게 프로젝트 창립자인 리차드 스톨만의 GNU 선언문도 읽게 되었다. 선언문을 모두 읽은 뒤 왜인지 숙연해져 잠시 생각을 하고 싶어졌다.
나는 어떠한 철학을 가진 개발자가 되고 싶은가?
나는 IT 기업의 창업을 꿈꾸며 이 길에 들어왔다. 빌게이츠, 스티브 잡스를 동경해왔고, 위대한 창작물이 나에게 가져다 줄 경제적 해탈을 원했다. 오늘 GNU 선언문을 읽으며 소프트웨어라는 창작물을 바라보는 관점에 새로운 렌즈를 하나 얻게 되었다. 내가 동경하던 빌게이츠와 스티브 잡스가 사용한 그 것과는 전혀 다르지만 무언가 약간 가슴이 뜨거워지는 느낌을 주는 멋진 렌즈였다.
이러한 렌즈를 애니메이션으로 잘 표현했다고 생각되는 자유소프트웨어 재단(Free Software Foundation)의 홍보 영상이다.
하나의 생각이 패러다임이 되는데에는 뿌리가 되는 지성이 지속적이고 일관되게 행동하고, 이 지성에 공감하는 지성들이 동참하는 일련의 과정이 동반된다. 이 중심에 있는 상징적인 인물이 된 것은 직업의 경계를 떠나 존경스러운 일이라는 생각이든다. 나는 프로그래머로서 소프트웨어를 바라보는데에 어떠한 철학을 가지게 될까? 아직은 여러 렌즈를 모으는 단계이지만, 나도 이러한 지성이 되고 싶다.
위 영상을 보며, 인공지능 분야의 전문성을 가진 엔지니어가 되고 싶은 사람의 입장으로서 ‘자유 데이터베이스 운동’이 필요하다는 생각을 조심스럽게 해보았다. 데이터를 누구든 기여할 수 있고 사용할 수 있고, 또한 많은 사람이 동참하여, 누구도 독점하지 않은 ‘자유 데이터 베이스’가 있다면, GNU처럼 스스로 생명력을 가지고 성장하여 인공지능 기술 발전 속도에 기여를 할 수 있지 않을까? 이러한 생각을 가진 지성들이 이미 오래전부터 움직이고 있을거 같다는 생각이 들기도 한다.
돌고 돌아 Debian은?
데비안 프로젝트는 GNU의 정신을 가진 자유 운영체제를 만들려는 개인들의 모임이다. 그리고 이들이 만든 이 운영체제의 이름 또한 데비안이다.
데비안의 운영체제를 채우는 기본 도구의 대부분은 GNU 프로젝트에서 가져왔다고 한다.
데비안이 무엇인지에 대해서는 데비안 소개 페이지의 두번 째 항목 ‘우리 철학: 왜 하는가 그리고 어떻게 하는가’ 에 자세히 설명되어 있다.
데비안은 무엇인가요?
데비안 프로젝트는 자유 운영체제를 만들려는 개인의 모임입니다. 우리가 만든 이 운영체제를 데비안이라 부릅니다.
운영체제는 컴퓨터를 실행하도록 하는 기본 프로그램 및 유틸리티의 집합입니다. 운영체제의 핵심에는 커널이 있습니다. 커널은 컴퓨터에서 가장 기본적인 프로그램이며 모든 기본 housekeeping 작업을 수행하고 다른 프로그램을 시작할 수 있습니다.
데비안 시스템은 현재 리눅스 커널 또는 FreeBSD 커널을 씁니다. 리눅스는 리누스 토발즈가 시작하여 전 세계 수천 명의 프로그래머가 지원하는 소프트웨어입니다. FreeBSD는 커널 및 다른 소프트웨어를 포함하는 운영체제입니다.
그러나, 데비안을 다른 커널 주로 Hurd를 위한 작업이 진행중입니다. Hurd는 다른 기능을 구현하기 위해 마이크로 커널(예: Mach)에서 실행되는 서버 모음입니다. Hurd는 GNU 프로젝트에서 만든 자유 소프트웨어입니다.
운영체제를 채우는 기본 도구의 대부분은 GNU 프로젝트에서 가져온 것이며, 따라서 이름이 GNU/Linux, GNU/kFreeBSD 및 GNU/Hurd 입니다. 이 도구도 무료입니다.
물론 사람들이 원하는 것은 애플리케이션 소프트웨어입니다. 문서 편집에서 사업 운영, 게임, 더 많은 소프트웨어 작성에 이르기까지 원하는 것을 얻을 수 있는 프로그램입니다. 데비안은 59000 넘는 패키지 (컴퓨터에서 쉽게 설치할 수 있도록 적절한 형식으로 번들로 제공되는 사전 컴파일된 소프트웨어), 패키지 관리자(APT) 및 기타 유틸리티를 통해 단일 애플리케이션을 설치하는 것처럼 수천 대의 컴퓨터에서 수천 개의 패키지를 쉽게 관리할 수 있습니다. 모두 free입니다.
그것은 약간 탑과 같습니다. 기본에는 커널이 있습니다. 그 위에 모든 기본 도구가 있습니다. 다음은 컴퓨터에서 실행하는 모든 소프트웨어입니다. 탑 꼭대기에는 데비안이 있습니다. — 모든 것을 세심하게 정리하고 장착하여 모든 것이 함께 작동하도록 합니다.
TMI로 데비안이라는 이름은 창시자 Ian Murdock과 그의 아내 Debra 에서 왔다고 한다. Ian과 Debra라는 분의 근황이 궁금해서 찾아봤더니, 2008년에 이혼했고, Ian은 안타깝게도 2015년에 자살을 했다고 한다.
마치며
오늘은 과제에 필요한 Debian-buster에 대해 알아보려다가 본의 아니게 어떠한 개발자가 되고 싶은지에 대한 고찰까지 하게 되었다.
이제 세수 한 번 하고 뜨거운 커피 한 잔 내려서 다시 과제로 돌아가 봐야겠다.