인터뷰

“자바(Java)는 죽지 않는다, 다만 진화할 뿐”

백지영

이일민 한국스프링사용자모임(KSUG) 설립자 겸 이프릴 대표
이일민 한국스프링사용자모임(KSUG) 설립자 겸 이프릴 대표
- [인터뷰] 이일민 한국스프링사용자모임(KSUG) 설립자 겸 이프릴 대표

[디지털데일리 백지영기자] ‘자바(Java)’는 전세계적으로 가장 인기 있는 프로그래밍(개발) 언어 중 하나다. 프로그래밍 언어 인기 순위인 ‘TIOBE 인덱스’에 따르면, 자바는 계속해서 선두를 유지하고 있다. 또, 개발자 구인 사이트인 ‘인디드닷컴(indeed.com)’에서 자바 개발자의 선호도는 여전히 높다.

물론 자바에게도 위기는 있었다. 새로운 언어의 등장과 함께 한때 “자바가 죽었다(Java is dead)”거나 “자바는 새로운 코볼(Java is the new cobol)”과 같은 얘기가 나오기도 했다. 그때마다 자바는 위기를 극복하고 가장 영향력 있는 언어로 자리매김하고 있다는 것이 이일민(영어명 토비 리) 씨의 설명이다.

이씨는 자바 관련 국내 대표 기술 커뮤니티인인 한국스프링사용자모임(KSUG)의 설립자다(스프링은 자바 기반 프레임워크). 또 국내에서 가장 인기 있는 자바 기술 서적인 ‘토비의 스프링’ 시리즈 저자이기도 하다. 그는 현재 호주에서 ‘이프릴(Epril)’이라는 IT컨설팅 회사를 운영하고 있다.

최근 한국오라클이 개최한 개발자 행사 ‘오라클 코드 서울’ 참석을 위해 방한한 그는 “실제 엔터프라이즈 개발을 해보면, 언어가 성숙하다는 의미가 생각보다 크다”며 “자바가 기능적으로 팬시한 언어에 비해 떨어질지는 모르겠지만, 지난 22년 간 전세계 개발자와 기업에서 축적한 기술을 결코 무시할 수 없다”고 의미를 부여했다.

그는 “2000년대부터 자바를 본격적으로 쓰기 시작했는데, 개인적인 관점에서 지금까지 총 4번의 위기가 있었다고 생각한다”며 “하지만 그때마다 자바 커뮤니티는 이를 잘 극복했기 때문에 여전히 건재하고, 이는 9월 21일에 출시될 자바SE9과 스프링프레임워크 5.0의 새 기능에서도 드러난다”고 강조했다.

그가 언급한 4번의 위기 가운데 첫 번째 위기는 과도한 기술로 복잡해진 코드 때문이었다. 서블릿이나 엔터프라이즈 자바 빈(EJB)과 같은 과도한 엔지니어링에 따라 소스가 복잡해지면서 개발자들의 외면을 받았던 것이다. 그는 “‘EJB 없는 자바 개발’과 같은 책이 등장하는 등 개발자들이 편하고 좋은 코드를 작성하자는 움직임, 즉, 자바의 기본인 객체지향에 충실한 개발 기술이 등장하면서 위기를 극복했다”고 설명했다.

두 번째 위기는 닷넷과 경쟁에서 왔다. 자바보다 늦게 등장한 닷넷은 가벼운 코드 작성이 장점이었다. 자바 개발자들 사이에서도 언어 발전의 요구와 함께 구버전과의 호환성 문제가 대두됐다. 당시 자바는 금융과 항공, 심지어 원자력발전소에서도 사용되는 언어였는데, 구버전과의 호환성을 깨서라도 언어적으로 발전시키자는 의견도 제기됐다. 그는 “자바 개발자들은 언어를 업그레이드하면서도 완벽한 호환성을 지키는 것으로 이 위기를 또 다시 극복했다”며 “이와 함께 자바에 대한 신뢰성도 높일 수 있었다”고 말했다.

세 번째 위기는 루비와 레일즈 프레임워크의 등장으로 시작됐다. 간결한 코드와 관례로 무장한 언어와 기술의 습격은 자바를 위기로 몰아넣었다. 그는 “어쩌면 자바의 시대가 끝나지 않을까 하는 생각이 들 정도로 자바의 가장 큰 위기였다”며 “하지만 역시 자바는 애노테이션 기반의 메타프로그래밍 등을 적극 도입하며 다시 살아났다”고 말했다.

마지막 위기는 노드JS와 같은 함수형 프로그래밍과 비동기 논블록킹 개발 방식의 등장이었다. 클라우드 컴퓨팅과 같은 대규모의 시스템 등장에 따라 거대한 모노리틱 애플리케이션 아닌 마이크로서비스와 같은 개념이 등장했다. 동기식 블록킹 개발 방식을 채택했던 자바는 함수형 언어와 비동기 논블록킹 방식을 접목하면서 다시 위기를 극복할 수 있었다. 객체형과 함께 함수형 프로그래밍 개발이 가능해지면서 하이브리드 패러다임의 언어로 변신할 수 있었다는 설명이다.

그는 “자바는 항상 기본에서 멀어질 때 위기에 처했다”며 “해결책은 늘 자반의 기본으로 돌아가는 것”이라고 말했다. 자바9과 스프링5 출시를 앞둔 현 시점에서 그가 말한 자바의 위기는 애노테이션과 메타프로그래밍, 관례의 범람이다.

자바5부터 등장한 애노테이션은 주석의 형태로 소스코드에 메타데이터를 삽입해 비즈니스 로직에는 영향을 주지 않으면서 소스코드에 대한 정보 추가나 구조변경, 오류제거 등을 할 수 있는 기능이다. 애노테이션을 통해 빠르게 더 적은 코드로 개발하는 것에 너무 심취해 있다 보니 자바의 본질에서 한발짝 떨어져 있다는 것이 그의 분석이다.

그는 “애노테이션은 컴파일러에 의해 검증이 불가능하고 이해가 어렵거나 오해하기 쉬운 코드가 생산될 수 있으며, 테스트와 커스터마이징이 어렵다”며 “역시 해결책은 자바의 기본으로 돌아가는 것이지만, 이 기본은 2000년대 초반의 자바가 아니라 함수형 스타일 프로그래밍이 도입된 업그레이드된 자바”라고 강조했다.

이는 오는 21일 출시될 자바9와 스프링5에 녹아들어 있다. 새롭게 출시되는 스프링 프레임워크 5.0에선 새로운 함수형 스타일의 웹 개발을 지원하고, 명시적인 코드로 모든 기능을 표현하도록 했다. 또 리액티브(반응형) 프로그래밍을 개발의 메인으로 사용한다. 자바SE(스탠다드 에디션) 9에도 플로우 API가 추가되는 등 언어적으로도 획기적인 변화를 꾀했다. 플로우 API는 리액티브스트림즈 표준과 호환이 가능하다.

그는 “반응형 앱 개발을 위한 표준 인터페이스를 자바 언어의 표준으로 넣어버리면서 보다 간단한 개발이 가능해졌다”며 “자바가 젊어졌다고 할 정도로 획기적인 변화”라고 강조했다.

한편 그는 자바EE(엔터프라이즈 에디션) 개발 프로세스를 오픈소스 커뮤니티 중심으로 바꾸겠다는 오라클의 최근 발표에 대해선 긍정적으로 평가했다.

그는 “이미 자바 개발의 주체는 오라클이 아니며, 자바SE9을 출시할 때도 자바 커뮤니티를 통해 기능을 넣을지 말지 결정한다”며 “자바EE는 표준을 기다렸다가 벤더가 이에 맞는 기술을 만드는 만큼 요즘 같은 시대의 빠른 변화를 따르기 힘들다”고 지적했다. 때문에 이를 오픈소스화할 경우 빠른 개발이 가능할 것으로 내다봤다.

<백지영 기자>jyp@ddaily.co.kr

백지영
jyp@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널