---
title: "NixOS 찬양글 - 이게 바로 OS가 나아가야 할 방향 아님?"
published: 2026-03-24T09:05:00.000Z
canonical: https://jeff.news/article/137
---
# NixOS 찬양글 - 이게 바로 OS가 나아가야 할 방향 아님?

NixOS 유저가 왜 NixOS에 진심인지 열변을 토하는 글임. 핵심은 NixOS 자체보다 **Nix 패키지 매니저**의 선언적·재현 가능한 철학에 있고, LLM 코딩 에이전트 시대에 특히 더 찰떡이라고 함. Docker보다 낫다는 주장도 ㄹㅇ 공감 포인트.

- **Nix 패키지 매니저**의 결정론적(deterministic)·재현 가능(reproducible) 모델이 핵심, NixOS는 그 완성형
- OS 전체를 **선언적(declarative) DSL 코드 한 곳**에서 관리 → 새 컴퓨터 사도 똑같이 재건 가능
- 패키지 실험이 **베이스 시스템을 오염시키지 않음** → `nix shell`로 격리 환경에서 뚝딱
- **LLM 코딩 에이전트**랑 찰떡 궁합 - 에이전트가 알아서 Nix로 격리 환경 구성하고 빌드함
- Docker보다 더 진짜 결정론적인 **배포 아티팩트** 생성 가능 (`dockerTools.buildLayeredImage`)

---

## 왜 NixOS인가? - 상세 내용

### 핵심 철학: OS가 아니라 패키지 매니저가 진짜임

저자가 NixOS를 사랑하는 이유는 리눅스 배포판 자체가 아니라 **Nix 패키지 매니저(Nix package manager)**의 철학 때문임. NixOS는 "결정론적이고 재현 가능한 함수형 패키지 매니저"라는 아이디어가 OS 형태로 완성된 것. **Nix DSL**을 넣으면 항상 동일한 OS가 나오고, 조금씩 바꾸거나 롤백도 가능.

### 기존 OS는 결국 '상태(state) 더미'가 됨

보통 OS는 시간이 지나면서 패키지 깔고, 설정 건드리고, 랜덤 툴 써보다가 결국 "작동은 하는데 왜 작동하는지 모르는" 상태가 됨. NixOS는 다름 - 상태 더미를 신뢰할 필요 없이, **시스템을 정의하고 빌드**할 수 있음.

### 선언적 설정: 한 곳에서 다 관리

패키지, 설정, 키보드 동작 등을 **하나의 선언적 설정**으로 관리 가능. 예시:

- GNOME 익스텐션 설치 + GSettings 오버라이드를 코드 몇 줄로
- `keyd` 서비스로 USB 키보드 / 랩탑 키보드 별도 키 매핑

새 컴퓨터 사도 긴 수동 셋업 절차나 여기저기 흩어진 스크립트 없이 **단일 소스에서 재건** 가능.

### 안정성과 업그레이드 편안함

NixOS는 역사가 길고 **6개월 주기 릴리즈**로 예측 가능함. 자동 업데이트 설정해놓으면 OS 업그레이드할 때 보통 느끼는 공포감이 없음. 실험하고 싶으면 **unstable 채널**도 있음.

### 실험이 공짜이고 안전함

- `nix shell` / `nix develop`으로 베이스 시스템 건드리지 않고 패키지 테스트
- **flake.nix**로 의존성·빌드 스텝·결과물을 선언적으로 명시
- 원-오프 스크립트부터 풀 프로젝트까지 완전 격리 환경 구성 가능

### macOS / Linux 크로스 플랫폼

**macOS와 Linux 모두 같은 패키지 매니저** 사용 가능 (FreeBSD 커뮤니티 지원도 있음). 개발 툴링과 의존성 관리가 플랫폼 넘어서도 균일하게 유지됨.

### LLM 코딩 에이전트 시대에 특히 갓갓

툴이 엄청나게 빠르게 바뀌는 요즘, 코딩 에이전트들이 특정 버전의 유틸리티·컴파일러·런타임을 필요로 함. Nix 쓴다고 알려주면 에이전트가 알아서 `nix shell`이나 `nix develop`으로 격리 환경 구성함.

**구체적 사례:** Rust 툴체인 없는 상태에서 음성-텍스트 에이전트 빌드. 에이전트한테 Nix 쓴다고만 했더니:
- Nix 통해 전체 Rust 툴체인 끌어오고
- 격리 셸 안에서 컴파일
- 작동하는 바이너리 생성
- 베이스 시스템 무손상 (`.cargo`, `.rustup`, 오염된 PATH 없음)

Nix 없었으면 `curl | sh`로 rustup 설치하고 시스템을 살짝 영구적으로 오염시켰을 것. **에이전트의 실험을 `nix flake check`로 재현 가능한 아티팩트로** 만들 수 있다는 것도 큰 장점.

### Docker보다 나은 배포 스토리

Docker가 중요한 문제들을 해결한 건 맞지만, **진짜 결정론적 모델**에 비하면 아쉬움이 있음. Nix는:
- `dockerTools.buildLayeredImage`로 더 작고 결정론적인 Docker 이미지 빌드
- 같은 설정이면 다른 컴퓨터에서도 동일한 아티팩트 생성 (아키텍처 지원하면)
- 랩탑, 셸, 프로젝트 의존성, CI 파이프라인, 배포 아티팩트 - **하나의 사고 모델**로 통일

### 결론

저자가 NixOS를 사랑한다고 할 때 진짜 의미는 **선언적이고, 재현 가능하고, 되돌릴 수 있고, 안정적인 시스템**을 사랑한다는 것. 두려움 없이 실험하고, 드라마 없이 업그레이드하고, LLM 코딩 에이전트 같은 빠르게 움직이는 툴들을 시스템 망칠 걱정 없이 써볼 수 있는 환경.

## 핵심 포인트

- NixOS의 진짜 가치는 Nix 패키지 매니저의 결정론적·재현 가능한 철학에 있음
- LLM 코딩 에이전트가 Nix 격리 환경을 자동으로 활용해 시스템 오염 없이 빌드 가능
- Docker 대비 더 진정한 결정론적 배포 아티팩트 생성 가능, 랩탑부터 CI/CD까지 하나의 모델로 통일

## 인사이트

NixOS 찬양글이 요즘 다시 뜨는 이유가 있음 - LLM 에이전트가 로컬에서 막 뭔가 설치하고 환경 오염시키는 문제가 실제로 개발자들 사이에서 골칫거리거든. Nix가 그 해답이 될 수 있다는 주장은 ㄹㅇ 설득력 있는데, 진입장벽이 문제지...
