FreeBSD: 과소평가된 서버 OS
Netflix, WhatsApp, PlayStation이 쓰는 FreeBSD. 무엇이든 리눅스부터 찾는 개발자라면 한 번쯤 눈여겨볼 이유를 정리했습니다.

Netflix에서 영화를 볼 때 영상 데이터는 FreeBSD 서버에서 오고 있을 가능성이 큽니다. WhatsApp 메시지를 보내면 몇 년 동안 FreeBSD 위에서 돌아간 인프라를 거쳐 전달됩니다. PlayStation 4와 5의 운영체제도 FreeBSD를 기반으로 합니다. 주요 ISP의 백본을 떠받치는 Juniper Networks 라우터도 수정된 FreeBSD를 돌립니다. 대부분의 개발자가 한 번도 써본 적 없는 OS인데, 중요한 인프라 곳곳에 생각보다 깊이 들어와 있습니다.
리눅스는 서버 시장을 너무 완벽하게 장악해서, 많은 개발자가 '리눅스'와 '서버 OS'를 같은 말로 씁니다. 하지만 네트워크 성능, 스토리지 안정성, 라이선스 단순성이 생태계의 폭보다 중요한 환경에서는 FreeBSD가 리눅스보다 더 잘 맞는 자리를 차지하고 있습니다. 직접 쓰지 않더라도 FreeBSD가 왜 살아남았고 어디서 강한지 아는 것은 충분히 쓸모가 있습니다.
설계 철학의 차이
리눅스는 커널입니다. 흔히 말하는 '리눅스 운영체제'는 사실 커널에 여러 독립 프로젝트(GNU coreutils, systemd, glibc 등)로 만든 유저랜드를 얹고, 이를 배포판이 묶어서 제공하는 것입니다. 배포판마다 어떤 구성요소를 넣을지, 어떻게 설정할지가 다릅니다. Ubuntu와 Alpine은 둘 다 '리눅스'지만 체감상 전혀 다른 OS처럼 느껴집니다.
FreeBSD는 하나의 운영체제입니다. 커널, 유저랜드 유틸리티, 컴파일러, 문서, 기본 라이브러리를 하나의 일관된 프로젝트로 함께 개발합니다. 베이스 시스템 전체를 같이 버전 관리하고, 테스트하고, 릴리스합니다. FreeBSD는 수백 개의 배포판이 아니라 하나뿐입니다. 선택지는 적지만, 베이스 시스템끼리는 내부적으로 호환된다고 보장되고, 문서가 모든 FreeBSD 설치에 그대로 적용된다는 장점이 있습니다.
이 차이는 실무에서 꽤 크게 느껴집니다. 리눅스에서 '네트워크 설정은 어떻게 하지?'라는 질문의 답은 NetworkManager를 쓰는지, systemd-networkd인지, netplan인지, ifupdown인지에 따라 달라집니다. FreeBSD에서는 항상 /etc/rc.conf입니다. 어떤 FreeBSD 설치든 똑같습니다. 방법이 하나뿐이니 문서도 그만큼 확실합니다.
FreeBSD가 강한 영역
네트워킹. FreeBSD의 네트워크 스택은 업계에서 전설처럼 이야기됩니다. Netflix가 FreeBSD를 고른 이유도 단일 서버에서 TLS로 암호화된 영상을 100Gbps까지 뿜어낼 수 있었기 때문입니다. 네트워크 스택은 성숙했고 최적화가 잘 되어 있으며, 고성능 네트워크 장비용 드라이버 지원도 훌륭합니다. netmap(제로 카피 패킷 I/O)이나 RACK/BBR TCP 혼잡 제어 같은 기능도 잘 통합되어 있습니다.
ZFS. FreeBSD는 Solaris 이외의 OS 중에서 ZFS를 일급 파일시스템으로 처음 배포한 곳이고, 지금도 ZFS가 가장 잘 통합된 플랫폼입니다. ZFS는 체크섬 기반 데이터 무결성, 투명한 압축, 스냅샷, 복제, 자가 복구를 제공하는데, 이 조합을 따라올 파일시스템은 없습니다. 리눅스에서는 라이선스 문제가 얽힌 서드파티 커널 모듈로만 쓸 수 있지만, FreeBSD에서는 기본 내장이고 공식 지원됩니다.
# ZFS on FreeBSD — built-in, first-class support
# Create a mirrored pool
zpool create tank mirror /dev/da0 /dev/da1
# Create a dataset with compression
zfs create -o compression=lz4 tank/data
# Take a snapshot (instant, copy-on-write)
zfs snapshot tank/data@before-migration
# Send a snapshot to another machine (incremental replication)
zfs send -i tank/data@yesterday tank/data@today | \
ssh backup-server zfs recv backup/data
# Roll back if something goes wrong
zfs rollback tank/data@before-migration
# Check data integrity (detects and repairs bit rot)
zpool scrub tank
Jails. FreeBSD의 jail 시스템은 리눅스 컨테이너보다 10년 이상 먼저 나왔습니다(jail: 2000년, Docker: 2013년). jail은 파일시스템, 네트워크 스택, 프로세스 네임스페이스를 분리하는 강력한 격리를 OS 레벨 가상화로 제공합니다. VM보다 가볍고 리눅스 컨테이너보다 격리가 강하며, 별도의 컨테이너 런타임 없이도 설정이 간단합니다.
라이선스. FreeBSD는 BSD 라이선스를 씁니다. 소스 공개 의무 없이 상용 제품에 쓸 수 있습니다. 덕분에 Sony는 소스를 공개하지 않고도 PlayStation의 OS를 FreeBSD 기반으로 만들 수 있었고, Netflix도 네트워크 스택의 최적화를 공개하지 않은 채 수정된 FreeBSD를 배포할 수 있었습니다. 법적, 사업적 이유로 GPL 코드를 쓸 수 없는 기업들이 이 유연성 때문에 FreeBSD를 고르는 경우가 많습니다.
리눅스가 강한 영역
FreeBSD의 장점이 리눅스의 강점을 덮는 것은 아닙니다. FreeBSD가 부족한 부분도 솔직하게 짚어볼 필요가 있습니다.
하드웨어 지원. 리눅스는 특히 GPU, 무선랜 어댑터, 블루투스, 최신 노트북 같은 소비자용 하드웨어에서 훨씬 폭넓게 지원합니다. 드라이버 생태계의 규모 차이가 큽니다. 주요 벤더의 최신 서버 하드웨어라면 FreeBSD도 보통 문제없이 동작합니다. 하지만 범용 장비나 데스크톱 하드웨어를 쓰면 드라이버 공백에 부딪히기 쉽습니다.
컨테이너 생태계. Docker, Kubernetes를 비롯한 클라우드 네이티브 스택은 전부 리눅스를 전제로 합니다. FreeBSD에도 jail이 있고 격리 측면에서는 더 낫다는 평가도 있지만, 오케스트레이션 도구, 컨테이너 레지스트리, CI/CD 파이프라인은 리눅스 컨테이너를 기대하고 만들어져 있습니다. FreeBSD에서 Kubernetes 클러스터를 돌리는 것은 기술적으로는 가능하지만 실무에서는 상당히 고생스럽습니다.
클라우드 지원. AWS, GCP, Azure 모두 FreeBSD를 VM 이미지로 제공하지만, 기본 도구, 문서, 관리형 서비스는 대부분 리눅스를 가정합니다. 어떤 클라우드 환경에서든 가장 마찰이 적은 길은 리눅스입니다.
인재 풀과 채용. FreeBSD 경험이 있는 개발자를 찾는 것은 리눅스 개발자를 찾는 것보다 훨씬 어렵습니다. 대부분의 컴퓨터공학 과정은 리눅스를 가르치고, 대부분의 DevOps 도구도 리눅스를 전제로 합니다. FreeBSD를 선택하면 팀 전체를 낯선 플랫폼에 맞게 교육해야 합니다.
Netflix 사례 분석
Netflix의 Open Connect CDN은 FreeBSD의 대표적인 성공 사례입니다. Netflix는 피크 시간대 미국 인터넷 트래픽의 약 3분의 1을 처리하는데, 이를 ISP 망 안에 직접 설치한 FreeBSD 기반 어플라이언스에서 처리합니다.
Netflix가 FreeBSD를 고른 데는 구체적인 기술적 이유가 있습니다. 당시 기준으로 FreeBSD 네트워크 스택이 고처리량 TLS를 리눅스보다 잘 처리했고, ZFS는 데이터 무결성을 보장하는 안정적인 로컬 스토리지를 제공했으며, BSD 라이선스 덕분에 오픈소스 의무 없이 OS를 수정할 수 있었습니다. 개선점 상당수를 FreeBSD에 다시 기여하기도 했지만, 그럴지 말지를 고를 수 있었던 것은 라이선스 덕분입니다.
이들의 서버 효율은 놀라울 정도입니다. FreeBSD 기반 Open Connect 어플라이언스 하나가 범용 하드웨어로 400Gbps 영상을 서빙할 수 있습니다. 핵심 최적화인 TLS 오프로드가 붙은 sendfile(), kqueue 기반 이벤트 처리, 공격적인 TCP 튜닝은 FreeBSD에서 처음 나왔거나 FreeBSD에서 먼저 다듬어진 기능들입니다.
FreeBSD를 써야 할까?
대부분의 개발자와 대부분의 프로젝트에는 아닙니다. 리눅스의 생태계 장점은 무시하기 어렵습니다. Docker, Kubernetes, 대부분의 CI/CD 시스템, 대부분의 클라우드 서비스, 대부분의 모니터링 도구는 리눅스에서 가장 잘 동작합니다. 실용적인 선택은 도구 지원이 가장 많은 쪽입니다.
하지만 FreeBSD가 확실히 더 나은 선택이 되는 특정 상황도 있습니다.
- 네트워크 중심 워크로드. CDN, 프록시, 로드 밸런서처럼 대량의 네트워크 트래픽을 처리하는 시스템을 만든다면 FreeBSD의 네트워크 스택을 검토할 가치가 있습니다.
- 스토리지 서버. 체크섬, 스냅샷, 복제, 압축 같은 ZFS 기능이 중요하다면 FreeBSD가 가장 좋은 ZFS 경험을 제공합니다.
- 임베디드/어플라이언스 제품. OS를 기반으로 제품을 출시하면서 GPL 의무를 지고 싶지 않다면, 상업적 사용에는 BSD 라이선스가 더 단순합니다.
- Unix 기본기 학습. FreeBSD 문서(FreeBSD Handbook)는 지금까지 나온 운영체제 문서 중 최고 수준입니다. Unix 시스템이 어떻게 동작하는지 기초부터 이해하고 싶다면 FreeBSD는 훌륭한 학습 환경입니다.
FreeBSD가 데스크톱, 컨테이너, 클라우드에서 리눅스를 대체할 일은 없을 겁니다. 하지만 그럴 필요도 없습니다. FreeBSD는 일관성 있고 잘 설계된 Unix OS로서, 특정 워크로드에서 중요한 기술적 강점을 가진 확실한 자리를 차지하고 있습니다. 대부분의 개발자가 리눅스 너머를 생각하지 않는 지금, FreeBSD가 존재한다는 사실과 그 강점을 알고 있는 것만으로도 더 나은 인프라 결정을 내리는 데 도움이 됩니다.


