2026 개정판 · 1차 8월 8일 공개전체 커리큘럼 →
TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 31 READS

45년 된 파일 전송 도구 커밋(Kermit), 15년 만의 새 버전이 나왔어요

커밋(Kermit)이라는 프로그램, 들어보셨나요? 깃(git)의 commit 말고요. 1981년에 태어난 파일 전송 프로그램인데, 올해로 45번째 생일을 맞았어요. 그리고 그 기념처럼, C 언어 버전인 C-Kermit의 새 릴리스가 무려 15년 만에 나왔다는 소식이에요. 태어나서 몇 년 안에 사라지는 프로젝트가 수두룩한 시대에, 반세기 가까이 살아남은 소프트웨어의 이야기라서 더 흥미로운데요. 새 버전 소식과 함께, 수십 년 묵은 C 코드베이스를 다루는 경험담도 함께 공유됐어요.

커밋이 뭐냐면요

커밋은 미국 컬럼비아 대학에서 만든 파일 전송 프로토콜이자 프로그램이에요. 이름은 머펫 쇼의 개구리 커밋에서 따왔고요. 지금이야 파일 하나 보내는 게 일도 아니지만, 1980년대 초는 인터넷이 보급되기 전이었어요. 컴퓨터끼리 전화선에 모뎀을 물려서, 혹은 시리얼 케이블로 직접 연결해서 데이터를 주고받던 시절이죠. 문제는 당시 컴퓨터들이 제각각이었다는 거예요. 메인프레임, 미니컴퓨터, 초기 PC가 서로 다른 문자 인코딩과 통신 규격을 썼고, 어떤 시스템은 8비트 데이터를 온전히 전달하지도 못했어요. 회선 품질도 나빠서 전송 중에 데이터가 깨지는 게 일상이었고요.

커밋은 이 지옥 같은 환경에서 동작하도록 설계됐어요. 데이터를 작은 패킷으로 쪼개고, 각 패킷에 검사값을 붙여서 깨진 패킷은 다시 보내고, 7비트만 통과되는 환경에서는 8비트 데이터를 변환해서 보내는 식으로요. 요즘 우리가 TCP가 알아서 해주니까 신경도 안 쓰는 신뢰성 보장을, 애플리케이션 레벨에서 직접 구현한 거죠. 덕분에 커밋은 '어떤 환경에서든 어떻게든 파일을 전달해내는 도구'로 자리 잡았고, 수백 종의 플랫폼에 이식됐어요.

15년 만의 새 버전, 그리고 오래된 코드와 산다는 것

컬럼비아 대학은 2011년에 커밋 프로젝트 지원을 끝냈고, 그 후 오픈소스 라이선스로 풀리면서 커뮤니티가 명맥을 이어왔는데요. 이번에 드디어 C-Kermit의 새 릴리스가 나온 거예요. 그런데 이 소식에서 진짜 재미있는 부분은 '수십 년 된 C 코드베이스와 일하는 경험'이에요.

이 코드는 K&R C 시절까지 거슬러 올라가는 흔적을 품고 있어요. K&R C가 뭐냐면, 지금의 표준 C(ANSI C) 이전에 쓰이던 초기 C 문법인데, 함수 선언 방식부터가 지금과 달라요. 게다가 커밋은 VMS, 각종 유닉스 방언, OS/2, 도스, 윈도우까지 상상 가능한 거의 모든 플랫폼을 지원해온 역사가 있어서, 코드 곳곳이 조건부 컴파일 지시문(#ifdef)으로 가득해요. 특정 플랫폼 분기를 잘못 건드리면 어디서 뭐가 깨질지 모르는 구조인 거죠. 현대 컴파일러는 이런 오래된 코드에 경고를 쏟아내고, 요즘 OS에서는 옛날의 가정이 더 이상 성립하지 않는 경우도 많아요. 메인테이너들은 이걸 한꺼번에 갈아엎는 대신, 기존 동작을 보존하면서 조금씩 현대화하는 길을 택했어요. 레거시 코드를 다뤄본 분이라면 이 선택이 얼마나 현명하면서도 인내심이 필요한 일인지 아실 거예요.

아직도 쓰는 사람이 있냐고요?

놀랍게도 있어요. 네트워크 장비나 서버의 시리얼 콘솔에 접속할 때, 임베디드 장비나 오래된 산업 설비와 통신할 때 커밋은 여전히 현역이에요. 특히 부트로더만 살아있는 장비에 펌웨어를 밀어 넣어야 하는 상황처럼, 네트워크 스택 없이 시리얼 회선 하나만 있는 환경에서는 이런 도구가 생명줄이거든요. 화려한 신기술 뒤편에서 세상의 인프라 상당 부분은 여전히 이런 오래된, 그러나 확실하게 검증된 도구들로 굴러가고 있어요.

우리가 배울 점

이 이야기는 소프트웨어의 수명에 대해 생각하게 해요. 45년을 살아남은 비결은 화려함이 아니라 이식성과 하위 호환성, 그리고 '파일을 확실하게 전달한다'는 명확한 한 가지 목적이었어요. 우리가 지금 짜는 코드도 생각보다 오래 살아남을 수 있어요. 10년 뒤의 누군가(어쩌면 미래의 나)가 읽게 될 코드라고 생각하면, 플랫폼 의존성을 격리하고 암묵적인 가정을 문서로 남기는 습관의 가치가 다르게 보이죠.

한줄 정리: 45년 된 파일 전송 도구가 아직 살아서 새 버전을 냈고, 그 생존 비결은 이식성과 호환성에 대한 집착이었어요. 여러분이 유지보수해본 가장 오래된 코드는 몇 년생이었나요? 그때 어떤 전략으로 접근하셨는지 궁금해요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://changelog.complete.org/archives/44456-celebrating-45...
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...