리눅스 나비효과
리눅스가 가져온 효과
리눅스를 메인 OS로 사용한 지 거의 1년이 되어간다. 몇몇 불편한 점도 있었지만 이젠 어느정도 사용에 친숙해진듯 하다. 리눅스가 가져온 긍정적인 효과를 두 가지 꼽자면 리눅스 시스템 자체에 대한 이해도 향상과 리눅스에 기반한 서비스들에 대한 친숙화를 들 수 있다.
리눅스 시스템 자체에 대한 이해도 향상
아무래도 리눅스는 맥과 윈도우에 비해 컴퓨터 자체의 좀 더 깊은 부분을 건드려야할 때가 자주 있다. 네트워크를 수동으로 설정해야할 때도 있고, 디스크를 수동으로 마운트를 해야하거나… 등등. 대부분의 low level의 작업들은 내가 알지 못하는 것들이 많기 때문에 OS의 공식 wiki의 메뉴얼을 따라가면서 수행을 하게 된다. 이런 low level의 작업들은 책으로만 배웠던 리눅스 시스템(커널이나 네트워크)을 직접 건드리게 되면서 이들에 대한 지식을 자연스레 체득하게 된다. 이는 그 자체로 컴돌이에게 아주 유익하다.
데이터 과학자나 딥러닝 기반 연구자에게도 이는 유익하다. 대부분의 딥러닝 서버들이 리눅스(우분투 서버) 하에 구축되어 있을 것이다. 서버를 공급한 업체에서 곧바로 사용할 수 있도록 설정해주기 때문에 그대로 사용하는 것은 가능할 것이다. 그러나 리눅스 시스템 자체에 대한 이해하고 있다면 입맛대로 새로운 패키지를 설치하거나 OS를 재설치하고 새로 설정하는 등 딥러닝 서버 자체를 관리할 수 있게 된다. 뿐만아니라 서버 사용 자체도 좀 더 유연해질 수 있다. tmux와 sh 스크립트를 사용해서 딥러닝 학습을 background에서 수행하게 함으로써 client PC를 계속 켜놓지 않도록 할 수 있고, sh 스크립트를 통해 그 결과 파일들을 client에게 전달할 수 있도록 자동화할 수 있다.
리눅스에 기반한 서비스들에 대한 친숙화
많은 서비스들이 리눅스를 기반으로 하고 있다. 그 중 가장 대표적인 것으로 가상화 기술인 도커와 웹서버를 들 수 있을 것 같다.
도커는 동일한 하드웨어 내에서 다양한 개발/서비스 환경을 독립적으로 운영할 수 있도록 하는 가상화 기술로, 윈도우에서도 사용은 가능하나 리눅스에서 native로 동작한다. 컨테이너들은 하나씩도 사용할 수 있으나 여러 컨테이너들의 orchestration을 통해 하나의 서비스를 운영하게 만들 수도 있다. (대표적으로 docker-compose, portainer, kubernetes 등이 orchestration에 사용되는 것 같다.)
웹서버는 웹을 통해 다양한 서비스를 제공하는데 활용된다. 구글 클라우드 원드라이브, 드랍박스와 같은 클라우드 서비스들이 이 웹서버를 통해 사용자들에게 서비스를 제공하고 있으며, 우리가 일상적으로 사용하는 네이버나 구글 등의 검색 엔진도 웹서버를 기반으로 하고 있다. 이들 서비스는 대기업들이 서버 상에서 구동된다.
한편, 개인이 직접 서버를 구축하고 이들에 다양한 서비스들을 위한 웹서버를 구축하고 개인만을 위한 서비스를 운영할 수도 있다. 이를 selfhosted라고 부른다. selfhosted의 가장 대표적인 서비스로 워드프레스, nextcloud가 있다. 워드프레스는 상용 블로그가 아니라 개인이 직접 DB까지 가지는 형태의 블로그를 구축, 운영할수 있게 하는 서비스이며, nextcloud는 개인이 운영하는 클라우드 서비스이다.
Selfhosted는 최근 리눅스 진영의 오픈소스 소프트웨어와 도커와 만나면서 엄청나게 팽창하고 있는 걸로 보인다. 그래서 이제는 심도있는 웹, DB 지식이 없더라도 docker compose에 기반한 orchestration을 통해 서비스를 구축할 수 있는 시대가 도래했다. 나 역시도 심도있는 웹 코딩 및 DB 구축/관리 기술이 있는 건 아니지만 다양한 서비스를 운영하고 있다. 이게 요즘 최애 취미생활이다.
마치며
리눅스는 내 삶에 꽤 많은 영향을 미치고 있다. 그리고 그 영향은 꽤나 만족스럽다. 아마도 앞으로도 쭉 리눅스를 사용할 것 같다. 많은 사람들이 이 맛을 알게되면 좋겠다.