elsa in mac

Linux를 왜 쓰냐구요 ? 본문

Linux

Linux를 왜 쓰냐구요 ?

elsa in mac 2025. 3. 16. 21:24

"Linux를 왜 쓰는가?"
참으로 진부한 질문이기도 하지만, 늘 다시금 생각해 보는 문제이기도 합니다. 

그 유구한 역사 속에서 Linux를 왜 써야 하는지에 대한 결론이 났다면, 지금 이 문제가 의문이 되어서는 안 됩니다. 그 수많은 역사 속으로 사라진 Tech 들처럼 이미 Linux는 사라졌어야 하지요.. 하지만, 끈질기게 사라남아 있고.. 꽤나 많은 사람들이 사용하고 있습니다. 

오늘도 지인과 대화 중에 "너는 왜 Linux를 쓰냐?"라는 질문이 나왔습니다. 
"그러게 왜 나는 Linux를 쓰지?"

Window는 XP(2001)까지만 쓰고 쓰지 않았으니까, 이제는 오히려 쓰는 것이 어색할 지경이고, 그나마 몇 가지 Window에서만 사용할 수밖에 없는 서비스를 사용하기 위해서 간간히 가상머신으로 쓰는 것 정도입니다.  솔직히 줘도 안 쓴다는 수준... 

가장 많이 오랫동안 사용해 온 OS는 macOS입니다.  Apple II부터 사용했고, macOS로만 치면 System 8(1998)부터 Sonoma(2023)까지 사용했으니, 25년을 사용해 온 셈입니다. macOS를 사용하면서 들게되는 느낌은 뭐랄까? 아주 안정성이 높은 수준이란 것..  mac을 사서 포장을 뜯고 전원선을 연결하고 전원버튼을 누르고 나면 할 것은 아무것도 없지요. 그저 사용자 계정을 만들고 로그인을 하면 그만입니다. 이 얼마나 완벽한 컴퓨터 인가... 아주 약한 잔 파도조차 없는 고요함 같은 것이랄까? 최적화된 고성능 H/W와 그에 맞게 만들어진 OS. 하지만, 정말 따분하고 재미없는 OS가 또 macOS 입니다.  갇혀 있는 느낌이랄까.. apple이 만들어 놓은 그 모든 것에서 한발짝도 벗어날 수 없는 그 보이지 않는 벽..

Linux를 왜 사용하는지의 이유를 따져보기에 앞서,  그럼 반대로 왜 대부분의 사람들은 Windows나 macOS를 사용하는 걸까 ?
이유는 꽤 단순합니다.  그냥 컴퓨터를 사면 기본적으로 설치되어 있기 때문입니다. 설치되어 있으니까  그걸 사용하는 것이고, 그 것을 잘 사용하기 위해 공부 합니다. Unix니 Linux니 하는 것들이 존재하는지 조차 모르는 사람들이 대부분 일 것입니다. 이유가 그러히니 길게 설명할 이유도 없습니다.  

흔히들 Linux를 사용한다고 하면 처음 물어보는 것이, "설치가 쉬워 ? 모든 H/W가 잘 동작해 ?" 라는 질문들인데, macOS나 Windows에 결코 뒤처지지 않는 역사를 갖고 발전해 온 OS임에도 불구하고 여전히 이런 질문을 받게되는 것은 무엇 때문일까요..? 

Linux를 사용하는 이유 중 하나는 오늘날 메이저 OS들이 과거의 OS와는 다르게 참으로 많은 것들을 들여다 보고 때로는 사용을 강요한다는 것입니다. 과거의 OS는 app을 실행시키기 위한 일종의 놀이판이었다면 지금은 매우 은밀하고 집요하게 모든 정보들과 상호 연결되어 있으며, 상업적인 제안을 강요합니다. 물론 그들은 개인정보를 직접 들여다본다고 하지 않으며, 서비스 로직에만 사용한다고 합니다. 분명 개인적으로 사용하는 컴퓨터이지만, OS 개발 사들은 내가 무엇을 하고 있는지 어떤 정보에 관심을 갖고 있으며, 무엇을 하고 싶어 하는지 등등 너무나 많은 개인정보를 다양한 계층에서 관리하고 취급합니다.  AI 시대로 접어들면서 이러한 방향성은 더욱 강해지고 있습니다. 반면, Linux는 각 계층이 이해관계가 없는 개발자들이 개발하고 배포하는 만큼, 개인정보를 관리하거나 취급하지 않습니다.  그랬다간 난리가 나겠죠. 

AI 시대를 맞이하여, windows나 macOS 같은 상업용 OS들의 정책은 보다 노골적으로 개인정보에 대한 접근을 강요하게 될 것입니다. AI기능은 점점 OS 내에서 핵심 기능으로 자리를 잡아 갈 것이고, 결국 Internet에 연결되어 있지 않는 상태에서는 Login 조차 하지 못하게 될른지도 모릅니다. 물론 보안과 AI 서비스의 고도화를 이유로 내 걸겠지요..

Linux가 여타 다른 운영체제와 다른 점은 모든 것이 공개되고 합의와 토론의 과정으로 거치는 생명주기를 갖게 된 다는 것입니다. 이것은 Linux가 처음 세상에 나온 때 부터 갖고 있었던 DNA 같은 것 입니다 .적어도 개인 혼자서 사용할 그 무엇이 아닌 Linux 생태계에서 사용되어질 무엇인가를 만들고 배포하려면 기본적으로 "공개"라는 암묵적이면서도 관행적인 형식을 따라야 합니다.  Microsoft의 Windows나 Apple의 macOS등은 상업적인 OS 이기 때문에 대부분이 비 공개 되어 있습니다. 사용자들은 화면에 표시되는 대로 믿고 사용할 뿐, 내부적으로 어떤 일들이 일어나고 있는지를 좀 처럼 알 수 없습니다.  대부분의 Linux용 프로그램들은 부족한 상태에서 공개되고, 사용자들의 피드백과 요구사항을 수용하고 반영하면서 성장하지만, 보다 더 혁신적인 도구가 나오면 성장을 멈추고 결국은 시장에서 사라지게 됩니다. 우리 인간의 삶과 매우 닮아 있지요..  반면 상업적인 OS의 생태계는 다름니다. 모든 것은 기업의 경제적 논리에 좌우 됩니다. 오늘 잘 나가는 소프트웨어나 플렛폼이 있다하더로도 OS 기업이 의사결정에 의해 한 순간에 시장에서 없어질 수도 있습니다. 그들만이 접근할 수 있는 영역과 일반 개발자들이 점근할 수 있는 영역에 차이가 있습니다. 개발자들이 아무리 좋은 아이디어가 있다고 해도, 그들만이 접근영역에 다가설 수 없기에 아이디어를 실현할 수 없을 지도 모릅니다.  사용자들의 의견이나 요청사항은 단순히 참고사항일뿐 그들의 의견을 반드시 반영할 이유도 없습니다. 

Linux를 쓰는 두 번째 이유는 새로운 기능이나 서비스를 빌미로 한 암묵적인 H/W 교체를 강요받을 필요가 없다는 것입니다. Windows나 macOS를 오랫동안 사용해 온 유저들은 이 말이 무엇을 의미하는지 잘 알고 계실 것이라 생각됩니다. 참 신기하게도 신형 H/W를 출시하고 판매할 때는 이 H/W를 구매하면 마치 더 이상의 업그레이드는 필요 없다는 듯 이 시대의 끝판왕이라고 광고합니다 만, 그 기대가 무너지기까지는 빠르면 1년, 늦어도 2년이면 충분합니다. 날로 기술은 발달하고 새로 출시하는 OS가 현존 최고의 OS라고 떠벌리지만, 그 걸 사용하려면 H/W를 바꾸라고 합니다. 아.. 물론 지금 사용하고 있는 기기에서 업데이트를 할 수 있지만 굉장히 답답해질 것이라고 하지요. Linux에서는... 그런 일은 좀처럼 없습니다. Linux도 macOS나 Windows 만큼 활발하게 업데이트가 이뤄지지만 업데이트를 한다고 느려지거나 새로운 기능 또는 서비스 사용에 제한이 생기는 경우는 거의 없습니다.  그래서 Linux를 사용하게 되면, H/W 교체 주기가 H/W 수명과 일치할 정도로 말도 안 되게 길어집니다. 

무엇보다 Linux를 사용하는 가장 큰 이유는 발 끝부터 머리끝까지 모든 것을 내가 원하는 수준으로 구성할 수 있다는 점입니다. 만일 필요한데 없다면 만들어 쓰면 되고, 만들어 사용하는데 제한도 없습니다.  얼마 전까지 Hyprland를 사용하다가 지금은 지워버리고 Wayland Compositor(Window Manager)를 아예 만들어 쓰고 있습니다.  

몇 가지 버그도 있고, 개선했으면 하는 사항이 있어 Hyprland Github Issue에 좀 올려 볼까 했는데, 쌓여 있는 Issue가 1,300개가 넘어가는 것을 보고 그냥 포기하고, Wayland Compositor를 좀 공부하면서 그다지 진입장벽이 높지 않다는 것을 알게 되었습니다. 그래서 시간이 날 때마다 그리고 주말에 시간을 내서 조금씩 코딩을 했고 두 달쯤 지나니 꽤 쓸만한 녀석이 되었습니다. 

물론, 발 끝부터 머리끝까지 커스텀한다는 것이 결코 쉬운 것이 아닙니다. 컴퓨터를 업무에만 사용하는 유저들에게는 정말 어려운 일이고, 코딩 좀 한다는 유저들에게도 매우 많은 경험과 노하우가 쌓여야만 가능한 일일 수 있습니다. 하나 또, 불가능한 것은 아닙니다  대부분 리눅스 사용을 고려했다가 결국 포기하고 Windows나 macOS로 되돌아가는 이유는 Linux에서 windows나 macOS수준의 완성도를 원하기 때문입니다. Linux는 자유도가 높은 것이지 완성도가 높은 것이 아닙니다. Linux는 상업적이지 않은 영역의 운영체제이기에, H/W 지원에서부터 App의 기능과 성능까지 완성도 높은 수준의 그 무엇이 존재하기 어렵습니다. 

Linux라는 OS는 파편화가 대단히 높은 OS입니다. Linux라는 OS 자체로는 꽤 단순해 보이지만, 얼마나 많은 Distro(배포판)이 존재하는지를 안다면 놀랄 수준이죠. Linux의 이러한 파편화는 장점과 단점을 모두 갖고 있습니다. 

Linux를 사용하면 GUI app보다는 Terminal app(TUI) 이 훨씬 많은데, 그 이유 중에 하나도 이런 다양성과 관련이 있습니다. Package Manager가 너무나 다양하기 때문에, 개발자는 이 모든 패키지에 대응할 수 없습니다. 아울러 개발자가 앱 개발에 사용한 라이브러리의 버전이 실제 사용자들의 환경에 동일하게 갖춰져 있다는 보장도 없습니다. 그래서 Source level에서 배포하면, 각 유저들이 자신이 사용하고 있는 배포판의 환경에 맞게 빌드하여 사용하는 방법 밖에는 없습니다. 꽤나 원시적인 수준이지만 그게 최선입니다.  어떤 CLI app 이 그 성능과 기능상에서 굉장히 뛰어나다면 이를 기반으로 GUI Frontend를 만드는 개발자도 있습니다. 대부분의 Linux 유저들은 그런 GUI를 간절히 원하지는 않지만, 기존 Windows나 macOS에 익숙해져 있던 사용자들에겐 유용할 것 입니다. 

TUI나 CLI가 GUI app 보다 못하다고 말할 수는 없습니다. 이것은 단지 태생적인 문제에 기인합니다. LINUX나 UNIX는 터미널 기반에서 출발을 했고, 그래서 일찍부터 사용자들이 원하는 다양한 목적의 CLI 도구들이 터미널 기반에서 생성 및 진화해 왔습니다. 이러한 기저는 X11의 GUI 환경이 만들어진 이후에도 계속되어 왔죠. 반면, 일반인들이  보편적으로 컴퓨터를 쉽게 사용할 수 있게 할 목적으로 출발한 Windows나 macOS 등은 출발부터 GUI 기반이었고, 따라서 사용자가 사용할 모든 앱들은 대부분 GUI app 이어야 했습니다.  오랜 역사를 통해 수많은 CLI 도구들이 누적되어 온 Linux에서는 그래서 Windows난 macOS만큼 GUI 앱들이 만들어지지 못했습니다.    

어떤 목적을 위해 앱을 실행해야 하고, 그것이 굳이 시각적일 필요가 없다면 CLI도구를 이용하는 것이 훨씬 직관적이고 빠를 수 있습니다. 단적인 예로 png 파일을 jpg 파일로 변환하는 것이 필요하다면, 그냥 터미널에서 convert 명령으로 처리하면 됩니다.(convert test.png test.jpg) 매우 간단하고 직관적이며 편리하고 신속합니다. 몇 가지 지원하는 옵션을 익히게 된다면 크기를 변경하거나 해상도를 변경할 수도 있을 것입니다. 폴더 내의 다양한 포맷의 이미지들을 jpg로 변경해야 한다면, 간단한 pyhton 코드나 shell-script로 대응하면 됩니다. convert를 만드는 개발자도 GUI요소를 고려할 필요가 없으니 개발요소도 줄고 핵심적인 기능 구현 및 성능 개선에 집중할 수 있습니다. 사용자들도 GUI요소가 없으니 매우 빠르게 사용할 수 있고 마우스와 키보드를 오가는 수고를 할 필요도 없습니다. 내가 원하는 작업에 적절한 터미널 도구들이 이미 있으니, GUI 앱을 찾을 이유가 없고, 그래서 GUI 앱이 잘 만들어지지도 않습니다.  물론, GUI 이어여만 하는 app들도 있습니다. 이미지나 영상편집, CAD, Office같은 문서 편집 앱들이 대표적이죠. Linux에도 app들이 있기는 하지만, Windows나 macOS 에서 우리들이 사용하는 거의 표준화된 상업적인 앱들은 없습니다. 앞서 언급한 Linux의 파편화와 다양성 그리고 무엇보다 전체적인 시스템을 주관하는 주체가 없다는 점이 주요한 원인이라고 할 수 있습니다.   

혹자들은 Linux가 Windows나 macOS 보다 안전하다고 하지만, 사실 그렇지도 않습니다. 유저 수가 적다 보니 악의적인 공격이 적은 것이지, OS 수준에서의 안정성은 다른 OS들과 대등하거나 혹은 더 못할 수도 있습니다.  하지만, Linux가 Windows나 macOS와 달리 보다 안정적이다라고 느끼는 이유도 이러한 파편화와 관련이 있습니다. 모든 Linux 유저들의 환경이 통일되어 있지 않고 다양하기 때문에 특정 공격에 대해 동일한 피해를 볼 확률이 극히 낮아지는 셈입니다. 몰론, 설치하는 app이나 도구들이 대부분 Open Source이고, 일일이 사용자가 확인하고 설치한다는 점에서도 좀 더 안전할 수는 있을 것 같습니다.  

Windows나 macOS를 사용하는 유저들의 환경은 거의 동일합니다. 그 위에서 사용하는 app들의 다양성이 약간 있을 수준이지요. 반면 Linux 유저들의 환경은 거의 동일할 확률이 다만 1%도 안될 것입니다.  사용하는 커널 버전부터, 사용하는 DE(Desktop Environment) 혹은 WM(window manager) 그리고 app까지  정말 다양한 조합들이 존재하죠.   

운영환경이 동일하다는 것이 단점은 아닙니다. 컴퓨터가 생활의 필수도구가 된 현실을 감안해 본다면, 컴퓨터를 가르치거나 반대로 배우는 입장에서는 장점이 될 수 있습니다. 모두 동일한 공통적인 환경이기 때문에 쉽게 가르칠 수 있고 또 쉽게 배울 수 있습니다. 반면, 운영환경이 제각각이라면 가르치기도 애매하고 배우기도 어렵습니다. 모르는 것이 있을 때, 물어보기도 어렵고 원하는 해결책을 찾기도 쉽지 않지요.  Windows나 macOS의 접근성이 쉽고 반대로 Linux가 어려운 이유입니다. 

Linux는 어떤 배포판을 사용할지를 선택할 수 있고, 배포판을 선택했다면 그 위에 어떤 GUI 환경을 구축할지를 선택할 수 있고, 선택한 GUI를 커스텀할 수 있습니다. 이러한 각 단계에서는 Try & Error가 상존하기에 자신이 원하는 완벽한 환경을 구축하기까지 꽤나 많은 어려움에 봉착할 수도 있고 여러 번 OS를 재 설치할 수도 있지만, 일단 완성이 된다면 정말 편하고 효율적인 나만의 컴퓨팅 라이프를 즐길 수 있게 됩니다. 누군가로부터 제시된 환경에 길들여지고 익숙해지는 것이 아니라, 적극적으로 나만의 환경을 구축할 수 있다는 점이 Linux의 가장 큰 매력이라고 할 수 있습니다.  

불필요하다고 생각되는 요소들과 앱들의 실행여부를 제어할 수 있기에 Memory/CPU/GPU의 사용량을 줄일 수 있음은 물론, Notebook이라면 배터리 사용시간을 늘릴 수도 있을 것입니다.  GUI 의존도가 낮기 때문에 꽤나 오랜 기간 동안 H/W 업그레이드 없이 컴퓨터를 빠릿빠릿하게 운영할 수 있습니다. 

평생 한 번도 사용할 일 없는 app을 설치할 필요도 없으며, 있다면 지워버리면 그만입니다. 여러 대안이 있는 app이라면 내가 선택하면 그만입니다. 사용하다가 더 좋은 대안이 등장한다면 미련 없이 버리고 새것으로 갈아타면 됩니다.  없으면 만들어 쓰면 되고, 사용하는 app들 조차 대부분 Open Source이다 보니, 원하는 만큼 고쳐 쓸 수도 있습니다. 내가 만든 그 무엇을 운영체제가 거부하지도 않습니다. Resource 최적화를 원한다면 그렇게 할 수 있고, 반대로 성능 최적화를 원한다면 또 그렇게 할 수도 있을 것입니다. Linux에서는 모든 것을 사용자가 원하는 방향으로 만들어 갈 수 있습니다. 

 

처음 컴퓨터를 접했던 그때, 나에게 컴퓨터란 그렇게 사용자가 하고 싶은 것을 맘 껏 할 수 있는 도구였고.. 지금 이 순간 컴퓨터처럼 느껴지는 것은 Linux 뿐입니다. 

이것이 내가 Linux를 사용하는 이유입니다. 

공유하기 링크
Comments