Every developer has heard it, usually muttered through clenched teeth at two in the morning: "It works on my machine." When a build passes locally but collapses in staging, we instinctively blame the framework version, a missing environment variable, or Docker itself. More often than we care to admit, the operating system is the actual culprit. File paths, system calls, package managers, and kernel behavior all shape how code runs. Picking the right OS is not about joining a tribe. It is about removing friction between your laptop and production.
Windows: 제너럴리스트
Windows가 기본값으로 남아 있는 데에는 단순한 이유가 있습니다. 하드웨어가 그냥 잘 작동하기 때문입니다. 주변 기기를 연결하면 아마 드라이버가 존재할 것입니다. .NET 생태계에서 일하는 개발자들에게 Visual Studio는 여전히 골드 스탠다드입니다. IntelliSense, 디버깅 도구, 프로젝트 스캐폴딩은 이 플랫폼을 위해 구축되었기에 마치 네이티브처럼 느껴집니다.
Windows Subsystem for Linux 2(WSL2)를 통해 Microsoft는 Windows와 Unix 기반 워크플로우 사이의 간극을 상당 부분 메웠습니다. WSL2는 경량 유틸리티 VM 내부에서 실제 Linux 커널을 실행하므로, 듀얼 부팅 없이도 bash를 호출하고, apt를 사용하며, Ubuntu를 실행할 수 있습니다. 이 통합은 매우 매끄러워서 많은 개발자가 자신이 네이티브 Linux를 사용하고 있지 않다는 사실조차 잊어버릴 정도입니다.
하지만 추상화에는 한계가 있습니다. Windows의 Docker Desktop은 엔진을 위해 Linux VM에 의존하며, Windows NT 커널과 Linux 컨테이너 사이의 파일 시스템 변환은 지연 시간(latency)을 유발합니다. 대규모 node_modules 디렉토리를 마운트하거나 볼륨 내에서 컴파일하는 것과 같은 I/O 집약적인 작업은 베어메탈(bare-metal) Linux보다 눈에 띄게 느립니다. 또한 Windows 업데이트는 작업 도중에 기기를 재부팅하는 습관이 있는데, 이는 디버깅에 몰두하고 있을 때 결코 이상적인 상황이 아닙니다.
Windows는 학생, 게이머, 그리고 .NET 애플리케이션을 배포하는 엔지니어들에게 빛을 발합니다. 업무 시간에는 Visual Studio를 사용하고 퇴근 후에는 Steam을 실행할 수 있는 한 대의 기기가 필요하다면, 이것이 가장 실용적인 선택입니다.
Linux: 서버의 표준
프로덕션 환경이 Linux에서 돌아간다면, Linux에서 개발하는 것이 예상치 못한 변수를 제거하는 길입니다. 운영체제 자체가 서버를 위해 구축되었으며, 그 설계 방식은 클라우드 환경이 기대하는 바와 일치합니다. 모든 것을 파일로 취급하는 Unix 철학 덕분에 설정, 하드웨어 장치, 실행 중인 프로세스 모두가 파일 시스템 트리 어딘가에 존재합니다. 이러한 일관성은 자동화를 간단하게 만듭니다. bash로 배포를 스크립트화하고, systemd로 서비스를 관리하며, 두 가지 서로 다른 커널 아키텍처 사이를 번역할 필요 없이 컨테이너를 오케스트레이션할 수 있습니다.
Docker는 Linux 프리미티브(primitives)를 기반으로 구축되었습니다. Namespaces와 cgroups가 이곳에서는 네이티브이므로, 컨테이너가 다른 플랫폼보다 더 빠르게 시작되고 베어메탈에 가까운 속도로 실행됩니다. 오버헤드는 최소화되어 있고, 패키지 매니저는 성숙하며, 시스템을 필요한 것만 남기고 모두 걷어낼 수 있습니다. 헤드리스(headless) Linux 서버는 재부팅 없이도 수년간 실행될 수 있습니다.
트레이드오프는 데스크톱 환경의 완성도입니다. 상용 소프트웨어 지원이 뒤처집니다. 네이티브 Adobe Creative Cloud 앱을 찾을 수 없으며, 일부 독점 IDE나 협업 도구는 우회 방법이 필요합니다. 하드웨어 설정에는 인내심이 필요할 수 있습니다. Wi-Fi 카드, Bluetooth 어댑터, 하이브리드 그래픽은 때때로 수동 드라이버 설치나 커널 모듈 수정이 필요합니다. NVIDIA 드라이버는 상당히 개선되었지만, CUDA를 올바르게 구성하려면 여전히 터미널 사용법을 알고 있다는 전제하에 작성된 문서를 읽어야 합니다.
백엔드 엔지니어, DevOps 실무자, 그리고 AI 인프라를 구축하는 모든 사람은 Linux를 기본값으로 취급해야 합니다. 프로덕션 환경이 Ubuntu나 RHEL을 실행한다면, 이를 로컬에서 미러링하는 것만으로도 배포 디버깅에 소요되는 시간을 수 시간 단축할 수 있습니다.
macOS: 세련된 Unix
macOS는 Linux처럼 동작하는 터미널과 소비자 제품처럼 동작하는 GUI를 원하는 개발자들에게 매력적인 중간 지점에 위치합니다. 내부적으로는 인증된 Unix 운영체제이므로, bash, zsh, make, ssh, git 모두 서버에서 기대하는 대로 정확하게 작동합니다. Apple Silicon은 계산법을 완전히 바꾸어 놓았습니다. M 시리즈 칩은 노트북 배터리 수명을 10~20시간 범위로 유지하면서도 데스크톱급 성능을 제공합니다. 팬이 돌아가는 소리 없이도 프로젝트를 컴파일하고, 로컬 스택을 실행하며, 화상 회의를 할 수 있습니다.
모바일 개발자에게 macOS는 타협할 수 없는 선택입니다. Xcode와 iOS 시뮬레이터는 Apple 하드웨어에서만 실행됩니다. 또한 macOS 생태계는 크리에이티브 및 풀스택 워크플로우를 선호하는 경향이 있습니다. 트랙패드와 디스플레이가 매우 뛰어나며, 슬립/웨이크(sleep/wake)의 신뢰성 덕분에 덮개를 열자마자 즉시 작업을 재개할 수 있습니다.
The downsides are cost and flexibility. You pay a premium for memory and storage upgrades that would be trivial on a custom PC or ThinkPad. The hardware lineup is narrow. If you need a specific GPU for local model training or unusual ports for lab equipment, a Mac might not accommodate you without external enclosures and dongles.
Full-stack developers, iOS engineers, and startup founders who value portability often gravitate here. It is an expensive choice, but one that minimizes daily friction.
Does the OS Matter for AI?
The model itself is indifferent. A large language model running through Ollama, LM Studio, or vLLM produces the same tokens whether your kernel was compiled by Microsoft, Linus Torvalds, or Apple. Your tools matter far more than your operating system. When you are building AI agents, focus on mastering Python dependency management, Node.js runtimes, Docker for reproducible environments, API integrations, and memory management for context windows.
That said, production AI systems overwhelmingly run on Linux. NVIDIA’s datacenter GPU drivers and the CUDA toolkit are developed and optimized for Linux first. The overhead of a graphical desktop is stripped away, leaving more VRAM and CPU cycles for training and inference. If you are renting cloud compute, you are almost certainly SSHing into a Linux instance. For local experimentation, a MacBook with Apple Silicon is quiet and power-efficient, but when it is time to train at
