핵심 요약
- 2001년 자바 엔터프라이즈 빈(EJB)의 끔찍한 복잡도 때문에 프로젝트가 파탄 나기 직전, 개발팀 내에서 대안을 두고 극심한 격론이 벌어졌습니다.
- 자신만의 영속성 프레임워크 아이디어를 거절당했던 개발자 개빈 킹(Gavin King)은 술을 마신 다음 날 숙취 상태로 공항 가기 전 CRT 모니터 앞에서 코드를 짜기 시작했습니다.
- 몇 달 뒤 이 코드는 '하이버네이트'라는 오픈소스로 전 세계에 깜짝 공개되며 현대 자바 백엔드 생태계의 판도를 완전히 바꾸어 놓았습니다.
요약 전 세계 자바(Java) 백엔드 개발 생태계를 뒤흔든 오픈소스 ORM 프레임워크 '하이버네이트(Hibernate)'의 탄생 비화가 25년 만에 동료 개발자의 회고를 통해 공개되었습니다. 글쓴이 찰스 밀러(Charles Miller)는 2001년 당시 IBM 파트너사였던 작은 컨설팅 기업 '시러스 테크놀로지(Cirrus Technologies)'에서 겪었던 일을 풀어냈습니다.
당시 시러스는 IBM의 엔터프라이즈 플랫폼 웹스피어(Websphere)를 판매하고 관련 엔지니어를 지원하는 사업을 펼치고 있었습니다. 멜버른 지사에는 천재적이면서도 자신의 주관이 확고했던 개발자 개빈 킹(Gavin King)이 근무하고 있었습니다. 당시 회사 개발팀은 일명 '스코틀랜드 프로젝트'라 불리던 대형 프로젝트를 맡았으나, 2001년 당시 끔찍하게 복잡하고 다루기 힘들었던 자바 기술(서블릿, JSP, 그리고 특히 과도하게 엔지니어링된 엔터프라이즈 자바 빈즈(EJB)) 때문에 프로젝트가 파탄 직전까지 몰리게 되었습니다.
마감 기한이 위태로워지자 경영진과 개발팀은 시드니에 모여 마라톤 회의를 열었습니다. EJB는 버그의 온상이었지만 회사가 고객에게 판매한 핵심 상품이었기에 경영진은 EJB 유지를 원했고, 대다수 개발자는 복잡한 엔티티 빈 대신 직접 SQL을 작성하길 바랐습니다. 반면 개빈 킹은 스몰토크(Smalltalk) 프레임워크의 개념을 차용한 혁신적인 자바 영속성(persistence) 프레임워크를 만들자고 강력히 주장했습니다. 결국 회의는 직접 SQL을 쓰는 절충안으로 봉합되었고, 다들 술집에서 쓰라린 속을 달래며 마무리되었습니다.
하지만 다음 날 멜버른으로 돌아가는 비행기를 타기 직전, 숙취가 남아있던 개빈 킹은 CRT 모니터 앞에 홀로 앉아 꿋꿋하게 프레임워크의 첫 클래스 코드들을 작성하기 시작했습니다. 그리고 몇 달 뒤, 회사 패키지명(cirrus.inf)을 단 채 LGPL 오픈소스로 전 세계에 공개된 것이 바로 전설적인 '하이버네이트(Hibernate)'의 시작이었습니다. 사내 프로젝트의 지옥 같은 고통과 숙취 속 뚝심이 만들어낸 결과물이었습니다.
Sponsored · 광고