처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.05.22 76

Git 커밋을 폴더처럼 마운트한다고? NFS의 의외의 재발견

Hacker News 원문 보기

오늘은 좀 괴짜스러운(좋은 의미로) 프로젝트 하나를 소개할게요. Julia Evans라는 유명한 개발자/블로거가 2023년에 쓴 글인데요, 시간이 좀 지났지만 여전히 기술적으로 흥미진진해서 들고 왔어요. 주제는 "Git 커밋을 폴더처럼 마운트하는 법"이에요.

이게 도대체 무슨 소리야?

설명하기 전에 잠깐 배경부터 깔고 갈게요. Git을 쓸 때 과거 커밋의 파일을 보고 싶으면 보통 git checkout을 해서 작업 디렉토리 자체를 그 시점으로 바꿔야 하잖아요. 아니면 git show <commit>:<path>로 한 파일씩 출력해서 보거나요.

근데 Julia가 만든 도구를 쓰면, 모든 커밋이 그냥 폴더처럼 보여요. 예를 들어 /mnt/git/abc123/src/main.py 이런 경로로 접근하면, abc123 커밋 시점의 main.py 내용이 그냥 파일처럼 읽혀요. checkout도 필요 없고, 작업 디렉토리도 안 바뀌고요. 마치 Git 히스토리 전체가 외장하드처럼 펼쳐져 있는 거예요.

이게 왜 유용하냐면요. 옛날 버전의 파일 100개를 한꺼번에 비교하고 싶다거나, 특정 시점의 코드를 통째로 다른 도구에 입력하고 싶다거나 할 때, 일반 파일처럼 다룰 수 있어서 모든 표준 유닉스 도구(grep, diff, find, cat)가 그대로 작동해요.

어떻게 만들었을까: NFS의 재발견

여기서 진짜 흥미로운 부분이 시작돼요. Julia는 이걸 만들 때 FUSE가 아니라 NFS 프로토콜을 직접 구현했어요.

FUSE가 뭐냐면, 사용자 공간에서 파일시스템을 만들 수 있게 해주는 리눅스 기능이에요. 보통 이런 가상 파일시스템은 다 FUSE로 만들어요. 근데 macOS에서는 FUSE가 점점 쓰기 까다로워지고 있거든요. Apple이 커널 확장(kext)을 점점 막아서 macFUSE 설치가 번거롭고, 보안 정책 때문에 권한 문제도 자주 생겨요.

그래서 Julia가 떠올린 아이디어가 NFS 서버를 직접 구현해서, 로컬에서 그 서버에 마운트하는 것이었어요. NFS(Network File System)는 1984년에 Sun Microsystems가 만든 네트워크 파일시스템 프로토콜인데요. 원격 컴퓨터의 파일시스템을 내 컴퓨터에 마운트해서 로컬 파일처럼 쓸 수 있게 해주는 기술이에요.

여기서 트릭은 "원격"이 꼭 다른 컴퓨터일 필요는 없다는 거예요. localhost도 원격 주소거든요. 그래서 자기 자신을 NFS 서버로 띄우고, 같은 컴퓨터에서 마운트하면 FUSE 없이도 가상 파일시스템이 만들어져요. macOS, Linux 모두 NFS 클라이언트는 OS에 기본 내장되어 있고요.

코드는 Rust로 작성됐고, NFS 프로토콜의 일부만 구현해도 읽기 전용 파일시스템 정도는 충분히 만들 수 있다고 해요. Julia 본인도 "NFS 스펙이 생각보다 단순하다"고 적었어요.

비슷한 도구들과의 비교

비슷한 컨셉의 도구들이 예전에도 있었어요. GitFS라는 게 있고요, figfs 같은 것도 있었죠. 다 FUSE 기반이라서 macOS에서 쓰기 불편했어요. 또 Pijul이나 Mercurial 같은 다른 버전 관리 시스템에도 비슷한 아이디어들이 있었고요.

Julia 접근의 독특함은 "기존 인프라(NFS)를 재활용한다"는 점이에요. 새로운 커널 모듈도, 새로운 권한 시스템도 필요 없어요. 1984년 기술을 2023년에 새 용도로 가져다 쓴 거죠. 이런 식으로 옛 기술의 본질을 다시 보는 시선이 개발자에겐 큰 영감이 돼요.

한국 개발자에게 주는 시사점

당장 실무에 쓰기엔 좀 한계가 있어요. 큰 레포에서는 성능 이슈가 있을 수 있고, 쓰기 작업은 지원 안 되거든요. 근데 배워둘 가치는 충분해요.

첫째, "FUSE만이 답이 아니다"라는 교훈이에요. 가상 파일시스템을 만들고 싶을 때 NFS가 좋은 대안이 될 수 있어요. 특히 macOS 사용자가 많은 팀이라면요. 사내 도구를 만들 때 "왜 우리는 항상 FUSE만 생각했지?"라고 한 번쯤 의심해볼 만해요.

둘째, 오래된 표준의 재발견이라는 측면이에요. 우리가 새 기술을 쫓아다니는 사이에, 40년 된 기술이 의외의 자리에서 빛을 발할 수 있어요. SSH 터널링, FTP, gopher 같은 옛 프로토콜들도 여전히 쓸모가 많고요. 옛 RFC 한 번 읽어보는 게 새 라이브러리 문서 읽는 것보다 더 큰 통찰을 줄 때가 있어요.

셋째, 사이드 프로젝트로서의 가치예요. 이런 식의 "쓸데없어 보이지만 재미있는" 프로젝트가 결국 본인의 시스템 이해도를 폭발적으로 올려줘요. NFS 프로토콜을 직접 구현해보면 파일시스템, 네트워크, OS 동작에 대한 감이 완전히 달라지거든요.

마무리

Julia Evans의 이 프로젝트는 "프로토콜의 본질만 이해하면 새 도구를 만들 수 있다"는 걸 보여주는 좋은 사례예요. 우리도 가끔 익숙한 도구의 내부를 직접 들여다보는 시간을 가져보면 어떨까요?

여러분이 옛 기술을 새 용도로 활용해본 경험이 있다면 들려주세요. 어떤 발견이 있었나요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.