스무살 자바, 어디로 가고 있는가?

한국 자바챔피언이 본 자바 20주년

컴퓨팅입력 :2015/06/01 15:56    수정: 2015/06/01 15:57

지난 5월23일은 프로그래밍언어 자바의 스무번째 생일이었다. 자바는 1995년 세상에 처음 나온 이래 객체지향프로그래밍(OOP)의 대명사로서 IT산업의 성장과 함께 해왔다.

특히 한국에서 자바는 다른 프로그래밍 언어들을 압도하는 위상을 구축했다. 일찌감치 한국 커뮤니티가 만들어졌고, 엔터프라이즈 시장은 대부분의 프로젝트들이 자바 기반으로 이뤄진다. 그런만큼, 전체 개발자 생태계에서 자바가 차지하는 비율도 매우 높다.

국내외에서 막강한 영향력을 과시하는 자바지만, 이전보다 주변의 관심이 덜 해진 것도 사실이다. 일각에선 자바를 두고 ‘올드패션(old-fashioned)’, ‘레거시(legacy)’를 상징하는 기술로 평하기도 한다. 그러나 자바는 계속해서 진화에 진화를 거듭하고 있다. 지난해 공개된 자바8의 경우 이전에 비해 큰 폭의 변화가 반영됐다. 수많은 개발 언어와 프레임워크가 등장하는 요즘, 자바를 어떻게 바라봐야 할까. 한국JCO 1대 회장이자 썬마이크로시스템즈에서 인정한 첫번째 한국인 ‘자바 챔피언’인 양수열 씨에게 자바의 현재와 미래에 대해 물었다.

양수열씨는 “자바를 언어나 프레임워크로 보면, C#에 비해서도 많이 뒤떨어진게 사실”이라며 “하지만, 플랫폼으로 자바를 보면 그 혁신이 어떤 언어에도 뒤지지 않는다”고 강조했다.

“자바는 커뮤니티를 통해 합의를 거쳐 이슈를 해결하기 때문에 생태계 저변을 늘리기 쉬웠지만, 합의도출까지 시간이 오래 걸린다. 이 때문에 자바 언어의 피처 혁신은 다른 혁신적인 개발 언어에 비해 느리다. 재밌는 사실은 스칼라나 클로저처럼 요근래 나오는 핫한 언어가 모두 JVM 상에서 돌아간다는 것이다. 빅데이터 진영의 대세인 스파크가 스칼라로 만들어졌다. 병렬컴퓨팅, 스케일아웃 등의 이슈를 해결하는 혁신이 결국 자바란 플랫폼에서 이뤄졌다.”

그의 말대로, 최근 JVM은 수많은 언어를 품는 역할을 하고 있다. 클로저, 스칼라 같은 함수형 언어가 JVM을 기반으로 돌아간다. 피보탈에서 만들어 아파치소프트웨어재단 프로젝트로 진행되는 그루비도 JVM을 기반으로 한다. 그루비는 루비나 파이선 같은 기능을 제공하고 있다. JVM의 포용력은 자바판 파이선, 자바판 루비인 ‘자이선, J루비’ 등을 통해 이미 입증됐다.

“생태계를 열심히 만들려 했던 옛 썬의 노력이 이제 빛을 발하고 있다고 생각한다. 창발적 아이디어가 그 플랫폼에서 자라고, 대중에게 선택받은 혁신이 시장 주류로 올라오는게 가능해진 것이다. MS가 닷넷을 오픈소스로 공개하긴 했지만, MS 밖 생태계에서 창발적 아이디어가 나올 수 있는 상황은 아직 아니다. 생태계 안에서 경쟁이 활발하면 개발자에겐 정말 좋다. 해볼 여지가 많이 생기기 때문이다. 빅데이터도, PaaS도 자바에서 돈다. 그렇기에 자바에게 뜻깊은 20년이라고 생각한다.”

언어로서 자바는 등장과 함께 C 언어에서 해결하기 힘들었던 메모리 관리 문제에 명쾌한 해법을 제시했다. 재컴파일 없는 크로스 플랫폼이란 특징도 개발자를 열광하게 했던 요소였다. 2000년대 초반 이후에는 프레임워크로서 각광받았다. 스프링 같은 프레임워크가 등장해 자바 언어 피처의 부족한 점을 메웠고, 선풍적 인기를 끌었다. 그렇게 자바는 SW개발의 대세로 자리잡았다.

오늘날 자바는 인류의 일상과 업무 환경 전반에 쓰인다. 엔터프라이즈 빅데이터, 클라우드, 소셜, 모바일 및 사물인터넷(IoT) 등은 물론, 커넥티드카, 스마트폰, 게임에 이르기까지 개발자에게 혁신을 위한 도구로 활용되고 있다. 전세계 900 만 명의 개발자가 선택하고, 70 억 개 디바이스에서 사용된다. 현재까지 1억 2 천500만 개 이상의 자바 기반 미디어 디바이스가 도입됐으며, 100 억 개 이상의 자바 카드가 출하됐다.

“20주년에 되돌아봤을 때 자바 생태계에도 풍파가 많았다. 생태계에서 시도했던 수많은 스펙과 모델이 돌고 돌아 지금으로 정착되기까지 모든 이슈가 잘 됐다고 볼 수 없다. 그러나 그 가운데서도 생태계를 잘 만들어갔던 노력은 지금와서 엄청나게 큰 자산이다.”

그는 현재 자바 생태계를 주도하는 오라클에 대해 아쉬움을 내비쳤다. 생태계에 대한 안목과 지원이 부족하다는 것이다.

“오라클과 구글 간의 자바 소송이 진행중인데, 개인적으로 오라클에 부정적이다. 구글이 안드로이드 런타임을 달빅에서 아트로 바꾸려 하는데, 가장 큰 요인이 오라클 소송 때문이라 본다. 솔직히 요즘 자바를 처음 배우는 사람은 서버사이드를 배우지 않는다. 안드로이드로 자바를 처음 배우는 사람이 정말 많다. 구글이 안드로이드의 VM을 바꾸면, 자바는 안드로이드란 강력한 생태계 하나를 혼자 가졌다가 나눠써야 한다. 그럼 사실상 지는 것 아닌가. 지적재산권 문제로 소송하기보다 어떻게 두 플랫폼 생태계가 함께 갈지 고민하는게 더 좋지 않았을까 싶다. 오라클이 어떤 혁신이나 비전을 드라이브하는 게 미흡하달까. 그런 측면에서 오라클의 개발자 생태계 어프로치가 안타깝다.”

물론 오라클 시대의 자바가 완전히 부정적인 건 아니다. 그는 오라클이 여러 반도체 회사와 협력해 기술적 현안을 해결하고, 사물인터넷(IoT) 시장에 자바의 자리를 만들려 시도하는 것엔 긍정적 평가를 내렸다.

“오라클이 인텔같은 칩 회사를 통해 JVM 성능을 끌어올리는 작업을 많이 한다. 지금 인텔과 오라클의 노력으로 자바8의 성능 이슈는 비약적으로 발전하고 있다. JVM과 하둡이 JDK8을 지원하면 빅데이터 처리가 빨라질거다. 또, 썬의 경우 모바일 피처나 임베디드에선 마이크로에디션 하나였는데, 오라클은 다양한 칩 벤더와 많이 협력해서 SE 임베디드 플랫폼을 확장하고 있다. 이처럼 IoT나 현재 이슈되고 있는 플랫폼에 대응하는 건 잘하고 있다.”

자바 언어 자체에 대한 발전도 계속 된다. 오라클은 작년 자바8의 스탠더드에디션(SE)과 마이크로에디션(ME)을 출시했다. 자바 엔터프라이즈에디션(EE)8은 올해 프리뷰로 공개되고 내년 정식버전이 나올 예정이다. 자바8은 함수형 프로그래밍 기능을 받아들였다.1995년 등장이래 가장 큰 규모의 업그레이드였다.

자바9은 플랫폼을 모듈화하는 직소 프로젝트(Project Jigsaw)를 포함한다. 이는 자바를 더 광범위한 디바이스로 확장하고, 개발자가 라이브러리와 대규모 애플리케이션을 개발 및 유지하기 쉽도록 지원하며, 보안, 유지보수기능 및 성능을 향상시켜준다. 자바코드의 스니펫(snippets)을 평가하는 상호보완 툴인 자바셸(Java shell), HTTP/2와 웹소켓을 지원하는 새로운 HTTP클라이언트 API, 리눅스 상 ARM 64비트 아키텍처 포트 등도 담는다.

자바란 플랫폼이 20주년을 맞았고, 한국의 자바 커뮤니티도 15년째다. 하지만 커뮤니티 분위기는 전처럼 활발하지 않다. 한국 자바 커뮤니티의 시작부터 함께 해온 양수열씨는 아쉬움을 토로하면서 변화를 받아들여야 한다고 말했다.

“아무래도 이슈가 자바란 언어 자체보다 자바로 된 하둡, 빅데이터, 클라우드 등 컴퓨팅에 몰려 있다. 전에 비해 주목도가 확실히 떨어졌다. SW 헤게모니가 바뀌는 것인데, 자바를 주로 해온 개발자 중 하나로서 아쉬운게 사실이다. 그러나, 시대적 흐름이라 생각한다. 클라우드란 말처럼 기술이 구름 안에 가려서 안 보이는 세상이니 자바로 만들었다는게 중요치 않다. 언어가 중요한게 아니라, 만들어낸 서비스를 얼마나 쉽고 편하게 쓰느냐에 초점을 맞추는 쪽으로 담론이 발전한 것이다.”

그는 SW 커뮤니티에게 15년은 환갑과 같다고 표현했다. 그 사이에 기술혁신 부분에서 수많은 이슈가 있었고, 개발자의 관심이 수많은 갈래로 쪼개져 분화되는게 당연하다는 말도 했다.

“스파크, 하둡, 오픈스택 세미나엔 개발자들이 구름처럼 모인다. 커뮤니티가 생존하는 가장 큰 조건은 이슈에 동의하는 사람들이 얼마나 많은가다. 예전처럼 엄청나게 많은 사람이 한곳에 모이기보다 특정 관심사별로 작게 모이는 형태로 바뀌었다. 한 커뮤니티가 수많은 담론을 담아내기엔 커뮤니티 정체성을 잡기가 쉽지 않다. 어찌보면 자연스러운 거다. 커뮤니티 모델도 시대 변화를 받아들여 조금씩 변모해야 한다.”

그는 변화를 받아들여야 한다는 얘기를 하면서, 그동안 자바에 적응해온 숙련 개발자로서 미래에 대한 걱정도 내보였다.

“지금의 자바쪽 사람들은 특정 벤더 기술이나, 특정 프레임워크에 고도로 최적화된 사람들이다. 그런데, 클라우드와 PaaS가 더 보편화될수록 이 사람들의 기술셋이나 커머셜 벤더의 WAS를 지원하던 사람의 생태계가 완전히 없어질 수 있다. 기술혁신때문에 다음 단계로 어떻게든 변모해야 하는데, 쉽지 않다. 과거야 장비 늘리는게 엄청 큰일이었지만, 클라우드에선 증설에 대한 부담이 없다. 상용 WAS에 비용을 지불하면서 서비스하려는 회사 자체도 줄어들고 있다. SI가 없어지지는 않을 것이다. 퍼블릭 클라우드에선 개발의 콘셉트가 달라지고 그에 대한 생각과 기조가 달라져야 할 텐데, 그런 게 걱정된다. 지금 당장이야 기술셋 노하우가 업계서 통하지만, 과연 얼마나 갈까. 그 속도가 급격하다. 그래서 자바를 언어로 보지 않고, 내가 개발할 수 있는 플랫폼으로 봐야 한다.”

그는 지난해 자바원2014 컨퍼런스서 만났던 자바 코어 개발자와의 미팅을 언급했다. 자바 분야 고수 중의 고수라는 그들은 오라클, 구글 같은 대형 회사에서 고액의 연봉을 받으며 자바에만 집중한다. 그러나 이처럼 최상급에 이른 사람은 수많은 개발자 중 정말 극소수다. 자바 코어에 일가를 이루더라도 갈 만한 기업체가 손가락에 꼽힐 정도가 됐다.

“자바가 20년이란 긴 역사를 갖게 됐지만, 변화하는 현실 속에서 어떻게 자바를 바라보고, 변화에 적응할 것인가에 대해 숙제를 많이 던지고 있다. 기념비적이면서 동시에 많은 숙제를 함께 안고 있기에 뜻깊은 20주년이다.“

관련기사

그는 다양한 기술을 접하면서 주어진 문제들을 열린 자세로 풀어보려 하고 있다. 변화에 적응하기 위한 그 나름의 판단이다.

“개발자가 새로운 상황에 어떻게 적응하느냐가 앞으로 관건이다. 오랜 시간 자바에 집중해온 저 자신이 레거시다. 다른 언어를 배우는 게 너무 어렵다. 함수형 언어로 하다가도 나도 모르게 OOP로 생각한다. ‘노드JS가 빠르긴 한데 스프링부트로 그냥 하면 안될까?’ 이런식이다(웃음). 개발자가 서비스를 자기가 생각해 만든다는 시각으로 바라볼 수 있으면 적응하기 좀 더 쉽지 않을까 생각한다. 혹자는 ‘우리가 기획자냐’고 반론할 수 있지만, 고객에게 제공하는 서비스란 관점으로 보면 개발자가 IT적으로 보지 않게 된다. ‘JVM에서 이 파라미터를 쓰는게 얼마나 도움될까’ 하는 식으로 바뀌는 거다. 시도라도 한번 해보고, 잘 안 되면 경험을 갖게 된다. 그렇게 조금씩 현재 개발하는 모델에서 탈피하는 것이다. 다른 것과 비교할 수 있어야 내가 좋아하는 것에 좀 더 객관적일 수 있다.”