나의 20+년 리눅스 이야기
By Homin Lee
저는 리눅스 세상에서, 국내에서도, 무슨 족적을 남긴 그런 사람은 아닙니다만 20년 넘게 리눅스를 사용해 왔고, 지금까지 그걸 바탕으로 일을 하고 있습니다.
최근에 제 리눅스 이야기를 해 달라고 부탁받았었는데, “어버버버” 했던 게 좀 후회스러워서 제 리눅스 이야기를 정리해보려 합니다.
제가 리눅스를 처음 접한 1997년 당시 이미 리눅스는 힙했습니다.
‘KLDP’, ‘적수네동네’와 같은 사이트는 지금의 ‘DCInside’와 같은, 리눅스에 한정되지 않는, 정보교류의 장이었습니다. 사람이 바글바글했어요.
우리나라 리눅스 1세대들이 한글을 쓰고 볼 수 있는 환경을 잘 만들어주셔서 모 잡지를 샀더니 부록으로 있었던 레드햇 계열의 한글 배포판으로 리눅스 세계에 무혈입성 할 수 있었습니다. :)
그리고, 수많은 종류의 배포판을 설치해보고 또 설치해 보면서, 시간을 쓰니까, Free (freedom) is not Free (of charge) 라는 개념을 어렴풋이 깨닫게 되었습니다.
당시 RPM 패키지는 의존성을 수동으로 설치해야 하던 반면에, 데비안의 경우 인터넷에서 의존성 패키지를 가져와 설치되는 편리함에 매료되어 곧 데비안 리눅스로 정착했습니다.
한동안은 윈도와 리눅스 멀티 부팅으로 사용하다가 (주로, 게임하러, 윈도를 썼다는 이야기), 곧 대학의 Computer Science 전공으로 OS 수업을 듣게 되었는데 교재가 “Understanding the LINUX KERNEL"였고, 게임 좀 그만하고, 수업을 잘 따라가려고 PC에서 윈도우를 완전히 삭제했습니다.
그 과목에서 A+ 을 받은 게 그 이후의 Path 선택에 큰 영향을 줬습니다.
또한 C 프로그래밍 언어를 배울 때도, MS Visual Studio와 여러장의 CD로 구성된 문서를 참조하는 번거로움 대신
쉘에서 man
명령어로 메뉴얼을 확인할 수 있다는 것이 큰 도움이 되었습니다.
그리고, 리눅스에 익숙해져서 결국 리눅스에서도 게임다운 게임, Quake 1, 을 할 수 있게 되었습니다. :)
취업할 때가 되자, 리눅스와 관련된 직장을 얻고 싶었지만 어림 없었고, 그냥 피쳐폰 SW를 만드는 작은 회사에 취업했습니다.
리눅스는 계속 쓰고 싶었기에, 내가 해봐서 안다고 어필하여, 사내에 위키와 SVN 서버를 구축해서 운영했습니다. 위키는 망했고 (자신의 노하우를 대가없이 공유하는 사람이 없더군요) SVN은 굉장히 잘 사용했었습니다.
하지만, 그 회사에서의 메인잡은 따로 있었기 때문에, 리눅스 서버 관리는 그냥 재능기부로 여겨졌습니다. 부당하다고 느꼈고 업무량도 버거웠어요.
제가 하고 싶어서 하겠다고 했기 때문에 뭐라 말도 못하고… 여러분 재능기부가 이렇게 위험합니다.
그 다음 부터는 리눅스는 그냥 개인적으로 썼었습니다. 홈서버에 APM 스택을 깔고 워드프레스 기반의 개인블로그, 위키, 겔러리, SVN을 운영했습니다.
레드헷 리눅스는 상업리눅스로 자리를 잡아가고 있었고, 관련 자격증도 있었던걸로 기억합니다. 반면 데비안 리눅스는 순혈주의를 표방하고 있어서 진지한 용도로 쓰기에 부적합했는데;
모르면 물어볼 곳이 커뮤니티 밖에 없음 == 엔터프라이즈 지원의 부재
마침 데비안 패키지 (DEB)를 기반으로 “Ubuntu Linux” 가 나와서 그걸 쓰기 시작했습니다.
직장에서 개발용 OS로는 윈도를 쓸 수 밖에 없었는데 개발자용 OS의 정수인 리눅스를 사용해 본 입장에서 많이 불편했어요.
그래서, 파이썬을 그 가려운 부분을 긁는용으로 꽤 오래 사용했습니다. 고 언어를 시작하기 전까지… 고 이야기는 다음에 따로 할께요.
그러다가, 안드로이드가 나왔습니다. 리눅스커널을 사용한다는 것을 알았기에 리눅스를 “사용"하는 것을 넘어 “개발"하는 일을 하고 싶어 그럴 수 있는 회사로 갔습니다.
안드로이드 PDK 개발을 위해, 호스트로 우분투 리눅스 데스크탑을 마음껏 쓸 수 있는게 좋았고, 메인라인에 포함되지 못한 몇 개의 리눅스 커널 디바이스 드라이버를 개발해 보기도 했습니다.
칩셋 제조사가 아니었기 때문에 꾸준히 드라이버를 메인테인 할 수 없어서 리눅스 커널 메인라인에 제대로 공헌하지 못해서 많이 아쉬웠어요.
구글은 안드로이드에서 GNU 스택을 걷어내 GPL로부터 해방되기 위해 bionic 이라고 libc를 다시 구현하는데 비용을 콸콸콸 썼더라구요. 그걸 보면서 저도 덕분에 오픈소스 라이선스에 대해 제대로 개념탑제를 했습니다.
그리고, 농담과 같았던 리누스 토발츠의 “리눅스의 세계정복!“이 현실화 되는걸 봤습니다.
업무 외적으로도 리눅스 데스크탑을 계속 사용해 왔습니다.
그놈쉘을 도입하면서 윈도우 데스크탑 UX가 크게 달라진 우분투 데스크탑 환경은 처음에는 낮설었지만 금방 적응할 수 있었습니다. 그놈쉘에 익숙해지니 사용성이 확 올라가는 멋진 경험을 했는데 아마 이런 큰 변화를 시도할 수 있었던 것도 리눅스여서 가능하지 않았을까 싶네요.
데스크탑 프로그램들도, 리눅스에서 사용할 수 있는 Free Software 프로그램들은 대게 윈도우로 (그리고 맥으로도) 포팅되어 있었기 때문에 그것들을 스스로 익혀 사용했습니다.
- Gimp: 이미지 편집
- Inkscape: 벡터 드로잉
- LibreCad: AutoCad(2D) 대용
- KiCad: 회로도+PCB
- DarkTable: Raw 사진 편집
- VLC: 동영상 재생
- OpenScad: 3D 모델링
여기에 더불어 강력한 3D 툴인 Blender
를 배워보고 있는데 언제쯤 원하는 수준까지 쓸 수 있을지는
잘 모르겠습니다.
한국 인터넷 환경에서 윈도우를 아예 버릴 수는 없었는데, 아직도 일부 정부사이트등에서는 윈도OS를 요구하기 때문이며, 국민 메신져 카카오톡에 리눅스 클라이언트가 없는것이 가장 불편했습니다.
그래서, VirtualBox에 윈도10 정품 설치해서 가끔씩 필요할 때 사용하고 있습니다.
아직까지 리눅스에서 못 하고 있는 작업은 동영상 편집인데, 제가 주로 쓰고 있는 편집 프로그래인 DavinciResolve 가 리눅스 버전을 제공하긴 하지만 안 열리는 동영상 클립들이 많더군요. 아마 상업 코덱의 라이선스가 문제일 것 같아 보입니다. 이건 맥북에서 하고 있습니다.
돌이켜보면, 리눅스를 사용하기 시작한 이유에는 “특정 회사에 종속되지 않는 기술이 남는다"라는 촉이 작용한 탓이 있는데, 최근에 Kubernetes의 의의를 알게 되면서 같은 느낌을 받았습니다.
GCP, AWS, OCI, Azure 등 수많은 클라우드 업체가 각각 자신의 플렛폼에 고객들을 묶어두려 하는 와중에 k8s는 특정 벤더에 종속되지 않는 기술이니까요.
제대로 배우고 싶었는데, Linux Foundation의 공식 자격증이 있다는 걸 알게되었습니다.
- CKA
- CKAD
- CKS
저는 이 중에 k8s를 “사용"하는데 중점을 둔 CKAD 자격증을 한달여의 준비로 딸 수 있었습니다.
vim
과 tmux
를 비롯해 꾸준히 리눅스를 사용하며 쉘에 익숙해진 경험이 자격증을 무난히 따는데 큰 도움이 되었습니다.
업으로 백엔드 개발을 하고 싶었지만 이미 임베디드 경력을 꽤 쌓은 상태라 옮겨갈 기회가 쉽게 나지 않았지만 리눅스 서버를 꾸준히 운영해 본 경험, 임베디드 리눅스에서 시스템 프로그램을 작성한 경험에 더불어 CKAD를 준비하며 devops 개념탑재를 하여 기회를 엿보고 있었습니다.
몇 년 전, 마침내, 현 직장에서 백엔드 PoC 프로젝트에 자원하면서 부터 현재는 백엔드 일을 주 업무로 하고 있습니다. 이제는 제가 만든 시스템 소프트웨어를 탑제한 리눅스 기반 제품이 B2C, B2B로 팔리는 멋진 경험을 하고 있습니다.
자유(free) 소프트웨어는 공짜(free)가 아니며, 돈이 됩니다.
저는 소프트웨어 엔지니어로 18년째 경력을 이어오고 있습니다. 최근 개발자에 대한 인식이 좋아지면서 많은 신규인력이 유입되고 있네요.
제가 경력을 시작한 때도 비슷했습니다. 시장에 개발자가 콸콸콸 쏟아져 나왔지만 많은 분들이 여러가지 이유로 tech path를 벗어났습니다. 덕분에 전 개발자 품귀현상으로 귀한 대우를 받는 호사?를 누리고 있습니다.
아마 리눅스를 하지 않았다면 이렇게 오래 tech path를 타지 못했을 것 같아요.
여기까지가 지금까지의 제 리눅스 이야기 입니다.
감사합니다. 끝.