프로그래밍 언어 ‘자바(Java)’, 그리고 데이터베이스 ‘마이SQL(MySQL)’이 지난 5월 23일로 탄생 30주년을 맞았다. 전혀 다른 곳에서 시작된 두 프로젝트는 공교롭게도 같은 해 같은 날에 발표됐다.
출발 지점도 그 종류도 전혀 다르지만, 자바와 마이SQL은 21세기를 연 핵심 IT 기술 목록의 첫머리에 올라갈 정도의 업적을 남겼다. 공교롭게도 지금은 두 기술 모두 오라클이란 회사에서 소유하고 관리하고 있다.
엔터프라이즈 IT 시스템의 상징 ‘자바’
썬마이크로시스템즈의 제임스 고슬링 주도로 개발된 객체 지향 언어(OOP) ‘자바’는 한번 작성으로 어디서든 실행(Write Once Run Anywhere, WORA) 가능한 코드를 내세웠다.
1991년 처음 만들어질 때 이름은 ‘오크(Oak)’였다. 제임스 고슬링의 사무실 밖에 있던 참나무에서 따왔다. 이후 ‘그린 프로젝트’라고도 불렸는데, 오크의 상표권 문제로 이름을 바꿔야 했다. 개발팀은 첫 버전 공개 전 무작위로 뽑은 단어인 ‘자바’를 최종 명칭으로 정했다. 개발자들이 즐겨 마시던 커피에서 이름을 따왔다는 얘기도 있다.
제임스 고슬링은 애초에 셋톱 기기를 대상으로 자바를 만들었는데, 이후 인터넷의 웹애플리케이션으로 초점을 바꾼다.
고슬링은 C, C++ 스타일의 언어와 가상머신 구현을 목표로 했다. 1995년 자바1.0이 공개됐다. 자바는 당시 인기있던 플랫폼에 무료로 런타임을 제공했다. 자바가상머신(JVM)에서 실행되는 바이트코드로 컴파일돼 이론 상 모든 플랫폼에서 재실행할 수 있었다. 그러나 초기 JVM은 플랫폼마다 구현 방식의 차이로 모든 곳에서 실행가능하다는 WORA 비전을 실현하진 못했다.
그럼에도 자바는 엄청난 인기를 얻었다. 플랫폼은 꽤 안정적이었고, 보안 시스템도 네트워크와 파일 접근 통제 설정으로 사용할 만 했다. 당시 대부분의 브라우저가 자바 애플릿을 웹페이지에서 실행하게 지원하면서 자바의 인기가 폭발적으로 상승했다. 1998년 자바2(JDK 1.2 ~ 1.4)에 이르러 자바 플랫폼이 스탠더드에디션(J2SE)과 엔터프라이즈에디션(J2EE), 마이크로에디션(J2ME) 등으로 분화됐다
자바는 2000년대 닷컴 붐과 함께 기업용 웹애플리케이션의 표준 언어로 확산됐고 전성기를 누렸다. 특히 J2EE 혹은 자바 엔터프라이즈 에디션은 대형 기업의 웹애플리케이션 시스템에서 폭발적 인기를 구가했다. 2000년대 한국의 개발자들은 SI 시장을 바탕으로 거대한 자바 커뮤니티를 형성했다.

마이크로소프트는 1996년 ‘비주얼 J++’이란 언어를 자바 언어 사양을 준수해 독자적으로 출시했다. 표준 자바에 마이크로소프트만의 확장 기능을 추가한 언어였다. 이에 썬은 1997년 마이크로소프트를 상대로 라이선스 위반 소송을 제기해 승소했다. 마이크로소프트는 썬에 손해배상금을 지급하고 1998년 비주얼 J++을 폐기했다. 비주얼 J++은 2002년 닷넷 플랫폼의 ‘비주얼 J#’란 이름으로 재생됐다. J#은 기존 자바 코드를 닷넷으로 마이그레이션하는 도구였다. 마이크로소프트는 닷넷 플랫폼에서 C#이란 언어로 자바와 기업 시장에서 경쟁했다. 한동안 C# 닷넷과 자바 사이에서 플랫폼 우위 논쟁이 치열하게 벌어졌다.
썬마이크로시스템즈는 무료로 자바를 배포하긴 했지만 오픈소스로 완전히 공개하진 않았다. 썬이 자바 대부분을 GPL 라이선스로 공개한 건 2006년 11월 13일이다. 이후
2009년 썬마이크로시스템즈가 오라클에 인수됐다. 오라클은 이를 통해 자바의 권리를 확보했다. 오라클이 썬을 인수한 이유 중 첫 번째가 자바였다는 게 이후 오라클과 구글의 안드로이드 소송 과정에서 밝혀졌다.
2010년대에 들어서며 프로그래밍 언어 세계에 새로운 바람이 불었다. 애플 아이폰 출시 후 폭발한 모바일 플랫폼의 성장은 자바에게 안드로이드 OS란 새로운 피를 수혈했다. 구글은 안드로이드 OS에서 자바를 1순위 언어로 활용하게 했다.
하지만 자바의 인기는 오라클이 구글을 상대로 라이선스 소송을 제기하면서 꺾였다. 오라클은 자바의 API를 구글에서 무단 복제했다고 주장했다. 2010년부터 이어진 지난했던 소송은 2021년 대법원에서 구글의 손을 들어주며 마무리됐다. 구글의 자바 API 활용이 공정이용에 해당돼 오라클의 주장을 기각한 것이다. 구글은 그 사이 안드로이드의 런타임을 교체했고, 자바 대신 코틀린을 1순위 언어로 바꿨다.
코틀린처럼 언어로서 자바를 대체하는 신생 언어가 2010년대 들어 쏟아져 나왔다. 스칼라가 엔터프라이즈 시장에서 자바의 지위를 공략했고, 코틀린이 모바일 시장에서 자바 자리를 차지했다. 머신러닝 이후 인공지능(AI) 기술이 주류로 떠오른 뒤 파이썬의 인기가 자바를 한참 넘어섰다.
언어로서 자바는 전같은 인기를 누리지 못하고 있다. 하지만 플랫폼으로서 자바는 여전히 강력한 지위를 차지한다. 오라클이 자바EE를 이클립스재단에 내던졌지만, 자카르타EE란 이름으로 명맥을 유지하고 있다.
30년 동안 전세계에 퍼진 수많은 자바 플랫폼 기반의 시스템이 여전히 작동하고 있다. 자바를 활용한 시스템의 확산은 언어의 대중화와 일자리의 창출을 낳았다. 이는 현재도 자바 플랫폼의 생명력을 유지하는 기반이다.
C와 C++이란 언어가 1970년대 시작됐음에도 여전히 널리 사용되고 있고, 코볼이나 포트란 같은 언어도 여전히 수요가 있다. 자바는 현대 애플리케이션의 마이크로서비스와 클라우드 네이티브 아키텍처 속에서 여전히 발전하고 있다. 특히 30년을 쌓아온 자바 플랫폼의 신뢰성이 시장의 수요를 떠받치고 있다. 자바 플랫폼의 JVM은 새롭게 발전하고 분화되고 있다. 자바는 앞으로 40주년까지도 그 중요성을 인정받을 것이다.
자바와 한국의 인연은 남다르다. 일단 수많은 개발자가 자바 언어를 배워서 엔터프라이즈 시장에서 활약했다. 썬은 한국에서 자바 라이선스 수익을 적지 않게 올렸다. 국내 통신사들이 휴대폰 소프트웨어 펌웨어에 자바 임베디드 에디션을 사용했고, 스마트폰 시대 직전까지 막대한 라이선스 비용을 썬 측에 지급했기 때문이다.
자바 플랫폼은 7 버전으로 넘어가는 시기에 부침을 겪었다. 자바6에서 자바7으로 넘어가기까지 5년 넘게 걸렸다.
자바의 소유 기업이 오라클로 바뀌기도 했지만, 무엇보다 자바7이 언어에서 큰 변화를 추진했기 때문에 버전업이 늦춰졌다. 하지만 자바7은 당초 계획했던 변화 상당수를 자바8로 미루고 2011년 출시됐다. 3년 뒤 2014년 자바8은 람다 표현식을 추가하면서 함수형 프로그래밍 패러다임을 받아들였다.
오라클은 자바10부터 새 버전을 6개월마다 내놓는 것으로 바꿨다. 한번에 대대적으로 업그레이드하는 대신 작게 변화하는 방식을 도입했다. 현재 자바의 최신 버전은 자바24다.
오라클은 자바의 30주년을 맞아 기념 행사를 열고 있다. 지난 몇 년 동안 열리지 않았던 ‘자바원’ 컨퍼런스가 지난 3월 캘리포니아주 레드우드에서 개최댔다.
‘쓰기 쉽고 실용적인 데이터베이스’ 마이SQL
마이SQL은 세계에서 가장 많이 쓰이는 오픈소스 관계형 데이터베이스 관리 시스템(DBMS)이다.
핀란드의 마이클 몬티 위드니우스는 스웬덴 컨설팅 회사에서 근무하면서 데이터베이스에 관심을 갖다 mSQL의 한계를 느끼고 직접 개발에 나섰다. 그는 1994년 빠르고, 안정적이며, 사용하기 쉬운 데이터베이스를 목표로 마이SQL의 원시 소스를 만들었다. 그리고 1995년 5월 23일 마이SQL이 처음으로 일반에 공개됐다.
마이SQL에서 ‘My’는 위드니우스의 딸 이름이었다고 한다. 위드니우스는 1995년 첫 공개부터 마이SQL을 무료로 제공했다. 그가 근무하던 컨설팅회사 TcX 데이터컨설트AB의 고객 프로젝트에서 마이SQL을 사용하고 실제 운영 환경에서 테스트하며 개선시켰다.
위드니우스는 데이티비드 악스마크, 앨런 라르손 등과 2000년 마이SQL AB란 법인을 세워서 본격적인 마이SQL 사업을 벌였다. 마이SQL AB는 2002년 미국 본사를 따로 세우며 북미 지역에 진출했다. 마이SQL은 2004년 전세계에서 다운로드 1000만건, 설치 500만건을 기록하며 폭발적으로 성장했다. 2006년 마이SQL AB 매출은 5000만달러였고, 2007년 7500만달러를 기록했다.
마이SQL의 본격적인 확산 계기는 2000년부터 마이SQL을 GNU GPL 기반 오픈소스 라이선스로 제공하면서다. 단기적으로 법인 매출 감소를 보였지만 더 큰 사용자층을 확보하면서 이내 회복했다. 마이SQL AB 법인은 GPL과 별도로 독점 소프트웨어에 마이SQL을 포함시킬 경우 상업 라이선스를 이용하는 이중 라이선스를 도입했다.
2008년 썬마이크로시스템즈가 마이SQL AB를 10억달러에 인수했다. 공동창업자였던 마이클 위드니우스와 데이비드 악스마크는 인수합병 직후 썬을 떠났다.
첫 탄생 후 썬에 인수되기까지 기간동안 마이SQL은 전세계 웹서비스의 표준 기술로 자리잡았다. 닷컴 버블과, 그리고 웹 2.0 유행 시기 수많은 기업이 인터넷 사업을 위해 경쟁적으로 IT시스템을 구축했는데, 버블 붕괴 후 비용 압박에서 벗어나려는 목적으로 ‘리눅스, 아파치서버, 마이SQL, PHP’로 이뤄진 이른바 LAMP 아키텍처로 웹 시스템을 구축했다. 마이SQL을 썬에서 인수하던 전성기다.

마이SQL의 가장 큰 성공 사례는 페이스북이다. 2005년 12월 7일 하버드대학교에서 초청 강연을 하게 된 마크 저커버그는 페이스북 개발을 설명하면서 여러 기술에 대한 의견을 말혔다. 이 자리에서 마크 저커버그는 50명의 직원과 몇 대의 서버, 그리고 마이SQL로 하루 4억 페이지뷰의 웹서비스를 만든 과정을 설명했다.
마크 저커버그는 “마이SQL은 정말 좋은 오픈소스 데이터베이스”라며 “오라클과 완전히 같진 않아도 사용하기 꽤 쉽고 인덱스가 꽤 잘 작동한다”고 말했다. 페이스북은 여전히 마이SQL를 대규모로 사용하고 있다.
마이SQL은 동시대의 포스트그레SQL과 다른 목표로 만들어졌다. 다중 스레드, 다중 사용자, 복제 등을 처음부터 감안해 개발됐다.
마이SQL 성공의 또 다른 이유는 커뮤니티의 의견을 적극적으로 반영한 것이다. 처음부터 사용자 커뮤니티를 구축했고, 메일링 리스트로 활발하게 소통했다. 이용자의 버그 리포트와 기능 요청에 빠르게 대응했다.
마이SQL AB는 재택근무 중심의 문화를 갖고 있었다. 회사는 커뮤니티와 경영 사이의 균형을 찾으려 노력했다. 이런 문화는 2006년 썬에 인수된 뒤에도 유지됐다. 당시 썬의 CEO였던 조나단 슈워츠는 마이SQL 인수 후에도 기존 조직과 운영방식을 유지하겠다고 약속했다. 썬 안에서 마이SQL은 별도의 스타트업처럼 활동했다.
마이SQL이 위기에 놓인 시점은 2009년 오라클의 썬 인수였다. 썬이란 회사 안에 데이터베이스 제품은 마이SQL뿐이었지만, 오라클은 세계 최고의 데이터베이스 회사였다. 그 오픈소스 데이터베이스를 사랑했던 사용자들은 오라클에서 마이SQL을 없애버릴 지 몰라 불안해 했다.
커뮤니티의 우려가 커지자 마이SQL을 떠났던 마이클 위드니우스가 2009년 마이SQL의 포크 버전인 오픈소스 프로젝트 ‘마리아DB’를 만들고 창업했다. 마리아DB의 이름 역시 위드니우스의 둘째딸 이름인 ‘마리아’에서 따왔다. 마리아DB는 마이SQL과 호환되며, GPL v2 라이선스 기반의 순수한 오픈소스다.
정치적인 우려가 있었지만, 오라클에서 마이SQL은 더 성장한 게 사실이다. 마이SQL은 현재 DB엔진에서 오라클 데이터베이스에 이은 2위이며, 세계에서 가장 많이 쓰이는 오픈소스 데이터베이스 자리를 유지하고 있다. NoSQL과 포스트그레SQL의 급성장에도 마이SQL의 지위는 여전히 탄탄하다. 오라클에 합류한 기존 마이SQL 조직의 적지 않은 수가 남아있다. 오히려 마리아DB가 2022년 기업공개(IPO) 후 경영 위기를 겪으며 사모펀드에 팔렸다.
지난 30년 간 이룩한 이 오픈소스 데이터베이스의 업적은 위대하다. 마이SQL을 사용한 웹서비스를 언급하는 게 의미없는 정도로 사례는 너무 많다. 유튜브도 마이SQL을 사용한다. IT시스템의 소프트웨어 라이선스에서 가장 큰 비중을 차지하는 게 데이터베이스다. 세상에서 오라클 데이터베이스나 IBM DB2, 마이크로소프트 SQL서버밖에 쓸 수 없었다면, 그 많은 스타트업과 지금의 구글도 없었을 것이다. 스타트업은 창업 단계에서 특별한 고민없이 데이터베이스를 선택할 수 있다. 대형 IT기업과 힘겨운 라이선스 협상을 벌일 필요도 없었다.
지금은 오픈소스 소프트웨어 사용이 너무 자연스럽고 흔한 일이지만, 마이SQL의 출발 시기와 닷컴 버블 시기만 해도 그렇지 않았다. 오픈소스의 사용이 대중화된 오늘날 마이SQL의 지위는 한동안 유지될 것으로 예상된다. 다만 LAMP의 시대가 끝나고 AI 에이전트의 시대로 넘어가는 현 시점에 마이SQL이 과거처럼 당연히 선택받을 지 확신하진 못하겠다. 카카오톡 사례처럼 대규모 접속과 복잡하면서 완벽해야 하는 커뮤니케이션 시나리오에서 마이SQL은 한계를 보이며, 어느정도 성장한 시점엔 거대한 기술 부채가 되기도 한다.
오라클은 마이SQL 30주년을 맞아 여러 기념 행사를 벌이고 있다. 지난 5월 23일 오라클에서 직접 마이SQL 30주년 파티를 열기도 했다. 각종 컨퍼런스와 밋업이 전세계에서 이어질 예정이다. 마이SQL의 최신 버전은 9.0 버전이다. 장기 지원(LTS) 버전은 마이SQL 8.4다.
글. 바이라인네트워크
<김우용 기자>yong2@byline.network