팬보이즘 없는 리눅스: 솔직한 개발자의 관점
Source: Dev.to
Introduction
소프트웨어 엔지니어로서 나는 하나의 운영 체제에 지나치게 집착하지 않으려 노력한다. 컴퓨터는 일을 끝내기 위해 사용하는 도구일 뿐이며, 작업이 플랫폼‑특정 소프트웨어에 의존하지 않는 한 현대의 대부분 운영 체제는 충분히 잘 작동한다.
가능하면 개인적인 취향에 치우치지 않기 위해 하나 이상의 운영 체제를 사용하려고 한다. 이 글에서는 내가 일상 데스크톱 운영 체제로 Linux를 사용한 경험을 공유하며, 좋은 점과 나쁜 점을 모두 조명한다.
여기에 적힌 모든 내용은 나의 개인적인 의견과 경험을 반영한 것이므로 주관적일 수 있다. 이 글은 Linux를 데스크톱 OS로 고려하고 있는 개발자와 기술 사용자, 특히 Windows나 macOS에서 전향하려는 사람들을 위한 것이다. 판매용 홍보가 아니라 솔직하고 경험에 기반한 관점을 원한다면 이 글이 도움이 될 것이다.
My Linux Journey
Linux가 최고이고 다른 모든 것이 쓰레기라는 선언문을 기대했다면 잘못 찾아온 것이다. 나는 Windows, Linux, macOS를 모두 사용해봤고, 각각의 상황에 맞게 빛을 발한다.
나는 Windows가 악하다고 말하거나 Linux 커널을 직접 컴파일한다고 해서 당신이 더 우월한 인간이라고 주장하는 사람은 아니다. Windows는 훌륭하고, Linux를 시도할 충분한 이유가 없다면 그것도 전혀 문제되지 않는다.
그럼에도 불구하고 나는 Linux와 어느 정도 향수를 가지고 있다.
대학에 입학했을 때 새 컴퓨터를 살 여유가 없었다. 웹 서핑, 사무 작업, 코딩 같은 기본적인 작업조차 버거운 오래된 노트북을 쓰고 있었다. 빚을 지지 않고도 사용할 수 있는 방법이 필요했다. 리소스 사용량을 줄이는 방법을 조사하던 중 Linux를 발견했다. 오래된 컴퓨터에 두 번째 생명을 부여한다는 이야기에 끌렸다.
초보자였던 나는 터미널에 익숙하지 않아 설치와 설정 과정에서 여러 문제에 부딪혔다. 며칠간 시행착오를 겪은 뒤 대학에 필요한 모든 것을 설치했으며, 그 덕분에 기계는 다시 사용할 수 있게 되었다—새 기계를 살 만큼 저축할 수 있을 정도로는 충분히 오래.
그 과정에서 시스템을 몇 번 부숴버렸고, 초보자들이 흔히 겪는 문제들—Wi‑Fi 문제, 하드웨어 호환성 quirks, 끊기는 영상 재생, 배터리 수명 저하—에 직면했다. 대부분은 해결했지만 배터리 수명은 오늘날 일부 노트북에서 여전히 공통적인 과제로 남아 있다.
좌절감에도 불구하고 그 시기는 컴퓨터와 운영 체제가 실제로 어떻게 동작하는지에 대해 많은 것을 가르쳐 주었다. 문제를 해결하기 위해 문서와 포럼 글을 몇 시간씩 읽었다.
현재는 휴대성을 위해 MacBook Air를 사용하지만, Linux 전용으로 직접 조립한 데스크톱 PC도 있다. 예전처럼 새로운 배포판을 실험할 시간은 부족하지만, 여전히 정기적으로 Linux를 사용하고 생태계와 연결돼 있는 것을 즐긴다.
The good parts
The appeal of Linux
Linux에 익숙해지면 다른 운영 체제를 사용할 때 몇몇 기능이 그리워진다. 개인적으로 apt이나 dnf 같은 패키지 매니저를 이용해 소프트웨어를 설치·제거하는 것이 매우 편리하다는 점을 좋아한다. Windows에도 Chocolatey가, macOS에도 Homebrew가 있지만, Linux 패키지 매니저는 일반적으로 더 통합되고 견고하게 느껴진다.
Highly customizable
Linux는 컴퓨터에 대한 높은 수준의 제어권을 제공한다. 필요에 맞게 운영 체제를 자유롭게 커스터마이징할 수 있다. 이는 배포판과 데스크톱 환경에 따라 다르지만, 대부분의 배포판이 광범위한 커스터마이징 옵션을 제공한다.
여러 데스크톱 환경을 동시에 설치할 수 있다—GNOME, KDE, XFCE, i3, dwm 등. Linux의 모듈식 구조 덕분에 이들 환경이 함께 공존하기 쉽다.
Familiar if you use Linux at work
직장에서 이미 Linux를 사용하고 있다면—원격 머신에 접속하거나 클라우드 제공업체의 VPS를 관리한다든지—개인 컴퓨터에서도 Linux를 쓰는 것이 자연스럽다. 또한 실력을 연마하고 향상시키는 좋은 방법이 된다. 이렇게 쌓은 지식은 서버, Docker 컨테이너, 프로덕션 환경을 다룰 때 큰 도움이 된다.
Docker containers run natively on Linux
컨테이너는 운영 체제 수준 가상화의 경량 형태다. 애플리케이션과 모든 의존성을 격리된, 이식 가능하고 일관된 환경에 패키징한다.
이 기술은 근본적으로 Linux 기능이다. Docker는 주로 오케스트레이션 및 편의 계층이며, 실제 컨테이너화는 Linux 커널 자체가 담당한다. 요컨대, 컨테이너는 네임스페이스(파일시스템, 네트워킹, PID 등 격리)와 cgroups(CPU, 메모리 등 자원 제한)를 이용해 만든 제한된 환경 안에서 호스트 커널 위에서 직접 실행되는 일반 Linux 프로세스이다.
Linux 커널 기능에 의존하기 때문에 Windows와 macOS용 Docker Desktop은 Linux 환경을 제공하기 위해 추가적인 가상화 레이어를 사용한다.
Scripting and automation
Linux는 스크립트를 작성하거나 반복 작업을 자동화하기에도 최적이다. Bash, Python, Go 스크립트를 systemd 서비스로 실행하거나 PATH에 추가해 일반 명령처럼 사용할 수 있다.
다른 운영 체제에서도 가능하지만, 많은 개발자는 Linux에서 더 쉽고 자연스럽게 느낀다.
The trade‑offs
Things can break
새로 시작했을 때 제대로 알지 못하면 문제가 발생하거나 기대대로 동작하지 않을 확률이 높다. Windows에서는 보통 “그냥 작동한다”—플러그를 꽂으면 마법처럼 동작한다. Linux에서는 문서를 읽고 문제를 해결하는 데 시간을 투자해야 한다는 점을 염두에 두어야 한다.
때로는 사용자의 잘못이 아닐 수도 있다. Linux 자체는 대체로 견고하지만, Linux 위에서 돌아가는 모든 소프트웨어가 버그가 없는 것은 아니다. 많은 경우 기업이 Windows나 macOS 사용자를 주요 타깃으로 삼아 Linux‑특화 문제를 해결하는 데 큰 노력을 들이지 않는다. 이런 상황에 익숙해지고 넘어가는 것이 필요하다.
Learning curve
Linux는 처음에 위압적으로 느껴질 수 있다. Windows나 macOS에서 이미 익숙해진 방식을 새롭게 배우고, 어떤 배포판을 설치할지, 배포판 간 차이점이 명확하지 않은 경우가 많다. 또한 여러 데스크톱 환경 중 하나를 선택해야 하는데, 초반에는 혼란스러울 수 있다.
터미널 사용 빈도도 늘어난다. Linux에서는 명령어 하나로 그래픽 인터페이스를 클릭하는 것보다 빠르고 편리하게 작업을 처리할 수 있다. 모순적으로 들릴 수 있지만, 많은 Linux 사용자는 명령어 입력이 더 효율적이라고 생각한다.
Hardware support
이 점은 Windows에 유리한 부분이다. Linux에서는 일부 하드웨어가 추가 설정이 필요하거나 완벽히 동작하지 않을 수 있다. 나는 멀티‑모니터 설정, 헤드폰, HDMI 연결에서 문제를 겪은 적이 있다—하드웨어 자체가 고장난 것이 아니라 드라이버, 펌웨어, 디스플레이 서버의 quirks 때문이었다. 멀티‑모니터는 그래픽 드라이버와 데스크톱 환경 설정에 크게 좌우되고, 헤드폰·HDMI는 종종 사소한 조정이 필요하다. 이러한 작업은 가끔 까다로울 수 있지만, 최근 몇 년간 지원이 크게 개선되었다.
새로운 PC를 Linux 전용으로 구축한다면 하드웨어 호환성을 미리 확인하는 것이 좋다. 구성에 따라 여전히 문제가 될 수 있는 부품이 있다; 예를 들어 NVIDIA GPU는 추가 설정이 필요할 수 있다.