"리눅스 왜 써요?"
종종 내가 받는 질문이다.
물론 이것이 내가 골수 리눅스 유저라는 의미는 아니다.
엄연히 나도 평범한 윈도우 유저이며, 녹스(Nox), 히어로즈 오브 마이트 앤 매직3, 문명6, 리그 오브 레전드를 문제없이 플레이 할 수 있어야 한다.
내가 유일하게 리눅스를 사용하는 때는, 개발할 때다.
그렇다면 항상 개발은 집에서만 하는가?
노트북을 2대씩 들고 다니는가?
듀얼 부팅 노트북인가?
모두 틀렸다.
나는 가정용 개인 리눅스 서버를 운영 한다. 오래된 노트북을 리눅스 서버로 사용하는 식이다. 이 서버에 모든 개발환경을 셋팅한다.
그리고 윈도우 노트북을 단말기로써 사용한다. ssh 접속기인 셈이다. 윈도우 로컬 환경에는 개발 관련 설정이 전혀 되어 있지 않다. 물론 vscode + remote ssh 기능 정도는 사용하지만, emacs 로도 대부분 커버 가능하다.
처음에는 윈도우 환경 내에서 모든 개발 환경 설정을 했었다. 그러나 개발을 하면서 점점 이질감을 느꼈다.
윈도우 환경에서는 리눅스 기반의 많은 공식문서와 오픈 소스 프로젝트들을 참조하는 데 제약이 많았고, 호환되지 않는 사례들도 자주 발생했다. 특히 리눅스에서 흔히 사용되는 여러 유용한 명령어와 쉘 스크립트가 윈도우에서는 사용할 수 없거나, 기능이 제한적이었다. 또한, 리눅스에서 일반적인 패키지 매니저 같은 기능이 없다는 것은 두말할 것도 없다.
게다가 서버 관련 공부를 할 때도 리눅스 환경이 유리하다.
대부분의 서버 환경이 리눅스를 베이스로 하므로, 윈도우에서는 리눅스 서버를 관리하고 이해하는 데 한계가 있다. 물론 가상 머신을 활용하는 방법도 있으나, 실제로 리눅스 설치를 제로부터 해보는 경험, 그리고 설치 중에 무엇인가 잘못 건드려서 다 날려보기도 하고, 커널 재설치, live usb 로 시스템 복구도 해보는 등등 이러한 경험은 직접 리눅스를 밑바닥부터 다뤄봐야 알 수 있다고 생각한다.
윈도우 환경만 사용한다면 이러한 리눅스의 대한 이해 및 경험을 충분히 쌓지 못할 것이다. 나는 하루라도 일찍 리눅스를 사용하지 않은 것에 대해 아쉽게 생각한다.
어쨌든 다시 얘기로 돌아가서,
차선책으로 나는 윈도우의 WSL 기능을 활용해 보기로 했다.
WSL을 통해 리눅스의 CLI 환경에 익숙해질 수 있었지만, 여전히 뭔가 부족했다. WSL에서는 리눅스의 저수준 시스템 접근이 제한적이며, 호환되지 않는 명령어와 기능들이 여전히 존재했다. 또한, 네트워크 환경 설정이 호스트 시스템인 윈도우에 종속되어 있어 여러 제약이 따랐다. 특히 윈도우의 docker desktop의 memory leak 이슈는 그 어떠한 방법으로도 완벽히 해결할 수 없었다. 그 당시 나는 윈도우 데스크탑 환경을 사용 중이었는데, 32G 램을 사용 중임에도 불구하고 메모리 사용률이 99%를 찍었다.
이것이 바로 WSL을 포기하고 순수 리눅스 환경으로 전환할 결정적인 이유가 되었다.
나의 경우와 같이, 윈도우와 리눅스 환경을 독립적으로 구성하면 또 하나의 장점이 있다.
가끔 윈도우 환경에서 뭘 잘못 건드렸다가 시스템 충돌 및 특정 프로그램이 계속 오류를 내뱉는다던가 등등 발생을 하는데, 결국 포맷말고는 답이 없는 경우도 많았다. 그러나 윈도우를 일상용으로만 사용한다면 이러한 일은 없다. 적어도 나의 경우에는 아직까지 전혀 발생하지 않았다.
이 정도면 내가 왜 리눅스를 사용하는지에 대한 답변이 될 것이라 생각한다.
P.S. 왜 맥은 쓰지 않냐고 물어볼 수 있다.
맥은 개인적으로 키보드 배열 및 단축키가 익숙하지 않아서 사용하지 않던게 지금까지 쭉 이어져 오고 있다.
또한, 이미 윈도우 + 리눅스 서버의 조합으로 거의 대부분이 가능하다.
아래는 내가 사용하는 리눅스 서버이다.
'카이스트 정글' 카테고리의 다른 글
정글 나인 헬퍼 제작 후기 (0) | 2024.09.06 |
---|---|
컴퓨팅 사고로의 전환 (0) | 2024.08.31 |
지식을 소화한다는 것 (0) | 2024.08.23 |
[BOJ 2261] 가장 가까운 두 점 (0) | 2024.08.17 |
찬찬히 나를 돌아보는 시간 (0) | 2024.08.10 |