[블로터포럼] ‘자바’ 맛 좀 보시려오?

가 +
가 -

요즘 미국은 자바 때문에 들썩인다. 커피숍 메뉴판 한 귀퉁이를 차지하고 있는 자바 커피 얘기가 아니다. 커피값도 안되는 비용으로 사물에 지능을 부여하는, 전세계 900만 개발자가 사용하고 있는 프로그래밍 언어 ‘자바’ 때문이다.

미국 국토안보부와 애플은 자바 기반 소프트웨어를 사용하지 말라고 당부했다. 자바의 보안취약점을 이용해 사용자의 컴퓨터가 해킹에 노출될 가능성이 커졌다는 이유에서다. 애플은 아예 자사 OS X에 탑재된 악성코드방지프로그램 블랙리스트에 ‘자바’를 추가했다.

자바는 전세계 기업용 데스크톱 PC 97%에서 운용되고 있는 프로그래밍 언어다. 썬마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어로, 오픈소스다. 오라클이 2009년 썬마이크로시스템즈를 인수하면서 자바 프로그램 언어 저작권을 확보했다.

자바로 개발된 프로그램은 CPU나 운영체제 종류에 관계없이 자바가상머신(JVM)이 설치될 수 있는 시스템이라면 어디서나 실행할 수 있다. 처음에는 가전제품에 탑재해 동작하는 프로그램으로 시작했지만, 이젠 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나가 됐다. 최근에는 모바일 기기용 소프트웨어 개발에도 널리 사용되고 있다.

오라클은 이제 우리 생활에서 자바를 빼놓고는 얘기할 수 없게 됐다고 주장한다. 실제로 많은 개발자들이 웹 애플리케이션을 손쉽게 만들 수 있게 도와준다는 장점 때문에 자바를 선택하고 있다. 국내에서는 가장 큰 커뮤니티 중심에 자바가 자리잡았을 정도다. 한국자바개발자협의회(JCO)가 매년 한국자바개발자컨퍼런스를 진행하고 있다. 2010년 부득이하게 개발자 행사가 열리지 않았을 때를 제외하고는 해마다 꼬박꼬박 행사가 열렸다.

이쯤되니 대체 자바가 무엇인지 궁금증이 생긴다. 자바란 무엇인지부터 시작해 최근 얘기되는 보안문제까지 말이다. 왜 미국은 난리인데 국내에서는 보안 문제가 크게 대두되지 않는 것일까. 이번 제13회 한국자바 개발자 컨퍼런스 진행 준비를 맡은 운영진들을 모아놓고 자바와 관련된 얘기를 허심탄회 하게 나눠봤다.

JCO 2013 main

  • 일시 : 2013년 2월 7일 목요일 오후 7시
  • 장소 : 블로터아카데미 사무실
  • 참석자 : 유현석 JCO 회장, 강대권 부회장, 김동연 사무국장, 박관웅 팀장, 김대환

이지영 : 얼마 전 딴지일보에서 ‘자바가 난리다’라는 주제의 기사가 나온 적 있다. 자바 보안성과 국내 개발자들이 자바에 편중돼 있다는 걸 지적한 내용이었다. 솔직히 부끄러웠다. JCO 행사에 2년 연속 참가했으면서도 해당 이슈에 대해서 제대로 쫒아가지 못한 것 같아서 말이다. 묻고 싶다. 대체 자바가 무엇이길래 다들 관심을 보이는 건가.

강대권 : 자바가 나온 목적은 윈도우 플랫폼 등 타 환경에서 만들어진 코드를 좀 더 쉽게 호환할 수 있게 만든 데 있다. 자바는 자바가상머신(JVM)을 이용해 타 환경에서 만들어진 코드도, JVM 위에서 작동할 수 있게 도와준다. 자바 등장 후 각 컴퓨팅 환경마다 코드를 새로 짤 필요가 없어졌다.

유현석 : 미국 사람이나 스페인 사람과 얘기하고 싶을 때 그 나라 언어를 배우는 걸 생각하면 이해하기 쉽다. 외국인과 대화할 때 필요한 언어가 있듯, 컴퓨터와 대화하기 위해서도 필요한 언어가 있다. 그 중 하나가 바로 자바다. 강대권님이 말한 것처럼 다른 환경에서 개발된 언어를 JVM에 올리면 환경에 상관없이 작동한다. 언어이면서 동시에 번역기 역할도 한다.

자바가 뭐냐고 물은 것 같은데, 그냥 공기다. 다양한 운영체제와 환경에서 사용한다. 심지어 ‘애니팡’에도 자바가 들어 있다. 일상생활에서 공기처럼 쓰인다.

이지영 : 단순히 그 이유 때문에 자바를 많이 쓰는 것인지 궁금해졌다. 자바는 1995년에 나온 언어 아닌가. 그 전에 나온 컴퓨팅 언어도 있을 텐데, 왜 자바에 유독 개발자들이 몰렸는가.

강대권 : 다양한 개발 환경이 나오고 다양한 기기가 등장하면서, 이 모든 환경을 통합해서 개발할 수 있는 도구가 필요했다. 이때 등장한 게 자바다. 다양한 기기와 환경을 통합해 개발 시간을 단축시켰다. 그래서 많은 개발자들이 자바를 사용하기 시작했다.

유현석 : 자바 등장 이전에 iOS용 앱을 개발하려고 했다면 아이폰과 맥 등 관련 개발도구를 사야 했다. 물론 이 과정에서 들어가는 비용은 한두푼이 아니다. 기본적으로 들어가는 개발비를 무시할 수 없다. 그러나 자바는 오픈소스인데다 무료다. 개발도구가 무료여서 개발비를 줄일 수 있었단 얘기다. 당연히 많은 개발자들이 찾지 않겠는가.

강대권 : 자바가 왜 이렇게 많이 퍼졌나를 분석한 얘길 들은 적 있다. 그 중 하나가 이해관계가 맞아떨어졌다는 점 때문이었다. 마이크로소프트 진영은 서버를 비롯해 각종 개발도구를 모두 사야 했다. 사실 자바는 웹애플리케이션서버(WAS)만 사면 된다. 크게 비용이 들어가지 않는다. 오픈소스 자바에 열광한 이유다.

이지영 : 자바가 그렇게 만능인가. 너도나도 자바를 찾게.

박관웅 : 국내에서 자바 개발자가 많은 것과는 좀 별개다. 전세계적으로 자바에 대해 관심이 몰린 이유는 오픈소스와 개발 편의성에 있다. 다만, 국내는 지나치게 자바에 편중돼 있다.

강대권 : 만능은 아니다. 태어난지 10여년이 넘은 언어다. 신생 언어가 가지는 심플함을 가져다주지 못한다. 신생 언어로 20~30줄이면 짤 수 있는 걸 자바로는 100줄을 짜야 할 때도 있다. 그럼에도 다들 자바를 선택한다.

김대환 : 게다가 국내에서는 개발자가 밥을 먹으려면 자바를 해야 한다. 그 다음에 다른 언어도 할 줄 알면 좋다. 국내 프로그래밍 언어에서 국어는 자바가 되어버렸다고 할까. 국내에서는 90% 이상 자바를 사용하고 있다. 자바를 배워야 개발자로 활동할 수 있다. 해외에도 자바가 있긴 한데 한국처럼 절대적이지 않다. 해외에서는 PHP를 많이 쓴다고 들었다.

유현석 : 외국에는 훨씬 다양한 프로그래밍 언어가 있다. 외국은 자바도 자바지만, 자기들이 필요한 언어를 만들어 사용하는 편이다. 라이선스 문제 때문이다. 구글도 이번에 자바 라이선스 관련해 오라클과 소송하지 않았는가. 자신들이 필요한 작업을 맘 편하게 하기 위해 언어를 개발하는 편이다. 국내는 좀 다르다. 자바 중심이다. 이유는 잘 모르겠지만, 너도나도 자바를 쓰고 있으니 보편화된 기분이다. 최근엔 분위기가 바뀌어 다른 언어를 공부하는 개발자들도 많이 찾아볼 수 있지만.

이지영 : 다들 언제부터 자바에 대해서 관심 가지기 시작했는가. 자바가 처음 나왔을 때도, 이렇게 많은 사람들이 사용할 거라고 예측했는지 궁금하다.

유현석 : 1998년도에 처음 접했다. 그땐 국내에 자바와 관련해 번역된 책이 없었다. 원서를 읽으면 자바를 접했는데, 그때 느낌이 그냥 ‘재미있다’라고 할까.

강대권 : C언어는 ‘포인터’라는 허들이 있다. 이 개념을 이해하지 못해 중도에 머리를 쥐어뜯는 개발자가 많을 정도다. 자바는 포인터가 없다. 그래서 다들 쉽게 관심 가지지 않았나 싶다.

박관웅 : 아무래도 포인터에 대해 설명을 드려야 할 것 같은데, 포인터는 누가 어디에 저장돼 있는지를 찾는 게 아니라, 누가 어디에 저장돼 있는지를 옆사람에게 물어 찾는 과정과 같다. 예를 들어 박관웅이 어디에 저장돼 있는지를 바로 물어보는 게 아니라, 박관웅 주변에 있는 강대권에게 박관웅이 어디 있는지를 묻는 식이다. 강대권이 박관웅이 어디에 있는지를 가리키게끔 만들어야 하는데, 이 부분에서 다들 잘 이해하지 못해 헤매는 편이다. 사실, 포인터로 얘기를 풀기 시작하면 끝도 없이 길어진다. 오늘 자바 얘기하려고 온 거 아닌가.

김동연 : JCO에서 유일하게 개발자가 아니다. 전공도 경영이다. 처음부터 자바를 알고 있었던 건 아니다. 제니퍼소프트에서 일하면서 자바에 대해 배웠다. 제3자 입장에서 자바를 접한 거라 조금 얼떨떨하다. 지금은 정확하게 무엇인지 모르지만, 맥락은 파악하는 정도다.

이지영 : 평소 궁금한 게 있었는데, 이 자리를 빌려 물어보고자 한다. 자바와 자바스크립트는 다른 것인지, 객체지향언어라는 게 무엇인지 궁금하다. 매번 기사 쓰면서 두 용어를 자주 접했는데, 많이들 헷갈려한다.

김대환 : 자바와 자바스크립트는 완전히 다르다. 원래 이름은 라이브스크립트인데, 마케팅 차원에서 자바를 빌려왔다. 자바스크립트는 웹브라우저에서 쓰인다.

강대권 : 제대로 묻어 왔다. 그 덕에 자바스크립트를 아는 자가 늘었을 정도니까.

김대환 : 넷스케이프에서 라이브스크립트를 만들었고, 이게 나중에 자바스크립트가 됐다. 자바스크립트는 엔진으로, 오픈소스가 아니다. 예를 들어, 웹사이트에서 비밀번호를 잘못 입력하면 알림창이 뜨지 않는가. 그 알림창을 구현하는 게 자바스크립트다. 다시 말하지만, 자바와 자바스크립트는 완전히 다르다.

강대권 : 그리고 객체지향언어는 참, 설명하기 ‘거시기’하다. 개발할 때 보통 자동차 아니면 스타크래프트에 비유하곤 하는데 말이다. 적절한 지 잘 모르겠다.

김대환 : 굳이 비유를 하자면, 자동차는 객체고, 차종은 개체다. 객체를 이루는 종류를 개체라고 보고, 개체를 모아 객체라고 한달까.

유현석 : C와 비교해 설명하겠다. C언어는 순서가 있어서, 순서대로 명령이 진행됐다. 이를 ‘절차지향언어’라고 한다. 자바는 ‘객체지향’이라고 해서, 순서대로 명령하는 게 아니라 필요한 객체를 호출해 작업한다. 각 객체별로 작업해 모을 수 있다고 할까. 사실 자바는 쉬운 언어가 아니다. 코딩하면서 신내림을 받는 게 좀 중요하다. 더 깊이 들어가면 말이 길어지니 이 정도로 끝내자.

이지영 : 자바에 대해서 대략 기초적인 지식은 쌓았다. 최근 자바 이슈에 대해서 얘기를 나눠보자. 자바 하면 오라클이란 기업 이름과 함께 보안 얘기도 많이 거론되던데, 무슨 얘기인가.

강대권 : 오라클 법무팀을 떠올리면 이해되실 텐데 말이다.

유현석 : 우선 오라클 얘기부터 짚어보자면, 오라클이 썬마이크로시스템즈를 인수하면 라이선스 비용을 받기 시작한 데서 비롯됐다. 자바가 오픈소스라 개발자들에게는 돈을 안받지만, 라이선스 비용은 많이 받는다. 그런데 라이선스 비용을 받으면 받은만큼 자바를 개선하면 좋은데, 자바 자체에 큰 관심이 없다. 여기서 보안 문제가 터졌다.

강대권 : 관심 가지지 않는 자바에 투자해서 개선할 이유가 없지 않은가. 오라클은 자바에 대한 무관심으로 이번 보안 문제가 터졌다. 자바 관련 커뮤니티 활동에 귀를 기울이지 않는 모습이다.

이지영 : 해외에서는 자바7 보안취약점 때문에 난리라고 들었는데, 국내는 조용하더라.

유현석 : 자세히는 알지 못하지만, 원격에서 시스템을 공격할 수 있는 취약점이 발견된 것으로 알고 있다. 문제는 이 보안 취약점을 개선하려고 내놓은 업데이트 버전에서도 보안 취약점이 발견되면서 논란되고 있는 모양새다.

이지영 : 사실이 그렇다면 굉장히 위험하지 않은가. 그런데도 국내는 자바의 보안 취약성을 놓고 잠잠한 것 같다.

유현석 : 그럴만도 하다. 국내는 7을 잘 안쓴다. 버전 5,6을 쓰니까 문제가 없다고 느낀 것이다. 국내 기업은 5,6버전에서 충분히 원하는 기능을 구현할 수 있기에 7로 가지도 않았다. 이점이 해외와 달리 보안 문제에 대해서 조용한 이유라고 할까. 별로 관심이 없다.

김대환 : 물론 오라클이 앞으로 이런 식으로 자바를 대하면, 선호도가 자바에서 다른 언어로 옮겨갈 수 있다고 생각한다. 시장은 충분히 변할 수 있다. 자바를 대체할 언어도 계속 나오고 있는 추세다.

유현석 : 사실 현업에서는 자바6도 잘 쓰지 않는다. 썬마이크로시스템즈가 오라클이 인수되기 전, 2008년에 나왔던 자바5를 주로 도입해 많이 사용하는 편이다. 자바5 기능만 해도 충분히 불편없이 쓸 수 있기 때문이다. 자바 5,6버전은 나름 안정성 있다. 7은 약간 8이 나오기 전에 과도기 버전으로 나온 거라 말이 많다.

강대권 : 게다가 지금은 자바 외에도 루비온레일즈 등 웹 개발을 손쉽게 도와줄 수 있는 오픈소스 웹프레임워크가 많이 나오는 추세다. 새로운 언어들이 나오고 있다.

유현석 : 자바를 제대로 가져가려면 보안취약점 리포팅을 받아 제대로 업데이트를 해야 하는데, 오라클은 자바7을 발표하면서 건성으로 문제를 해결했다. 데이터베이스(DB) 분야에만 관심을 보이고 있다. 사실, 지금도 자바의 기술표준은  ‘자바커뮤니티프로세스(JCP)’가 주도하고 있는 상황이다. 결국 커뮤니티 힘이다.

강대권 : 어쩌면 오라클로서는 돈이 안 되는 자바보다는 다른 분야를 더 키울지도 모를 일이다. 이 때문에 자바가 앞으로도 지금처럼 인기를 자랑할 거라고는 생각하지 않는다. 지금 이 순간에도 더 좋은, 자바의 단점을 극복한, 새련된 언어들이 나오고 있다. 10여년 뒤에는 또 다른 언어가 개발자들 사이에서 표준으로 자리잡을지도 모를 일이다.

자바 보안취약점이란?

2013년 1월, 오라클 자바7에 대한 심각한 제로데이 취약점이 발견됐다. 급기야 미국 국토안보부 소속 컴퓨터침해사고대응반은 자바7을 사용한 웹사이트의 보안성이 의심된다고 경고하기에 이르렀다.

공격에 사용된 보안 취약점은 블랙홀 익스플로잇 키트와, 레베톤이라고 불리는 변종 랜섬웨어를 확산시키는 쿨 익스플로잇 키트 공격 도구다. 해커는 이를 통해 특정 웹사이트에 방문하는 것만으로도 사용자 PC를 악성코드에 감염시켜 원격으로 조작할 수 있다.

안랩은 ‘2013년 예상 7대 보안 위협 트렌드’를 통해 “MS오피스, 어도비리더 같은 문서 프로그램이나, 자바 같은 웹 응용프로그램에 존재하는 취약점을 악용한 보안 공격이 지속적으로 발견될 것으로 예측된다”라고 발표했다. 한국트렌드마이크로 역시 “올해 초 오라클 자바에 대한 심각한 취약점이 발견됐다”라며 “많은 해커들이 자바의 보안 취약점을 악용해 브라우저를 공격하고 있다”라고 자바의 보안취약성을 경고하고 나섰다.

실제로 애플과 파이어폭스를 만든 모질라재단, 야후 등은 자바7 플러그인 사용 자제를 당부한 상태다. 해당 자바 취약점으로부터 안전하려면 자바를 사용하지 않거나 웹브라우저에서 자바 콘텐츠를 비활성화하는 방법 밖에 없기 때문이다.

이와 관련해 오라클은 “자바 보안취약점은 자바7에만 국한된다”라고 강조하며, 자바의 보안 취약성을 해결한 자바7 업데이트11 패치를 내놓았다.

그러나 자바 보안 취약성에 대한 논란을 가라앉지 않은 상태다. 미국 국토안보부는 보안 패치가 발표된 이후에도 여전히 자바의 보안취약점을 경고하며 사용 자제를 당부했다.

네티즌의견(총 21개)