폴리글랏을 고민하는 개발자를 위한 조언

다양성 중시하는 폴리글랏 프로그래밍 확산-3

일반입력 :2014/09/30 18:11    수정: 2014/10/01 06:54

그간 만나온 국내의 여러 개발자들이 폴리글랏 프로그래밍의 필요성에 공감했다. 동시에 한국의 현실이 여러 언어를 학습하기 어렵게 만든다는 점도 지적했다.

오라클이 부여하는 자바챔피언 인증을 갖고 있는 양수열 쇼유커뮤니케이션 CTO는 “자바가 세상의 모든 문제를 해결할 수 없다는 건 명확하다”며 “특정 목적에 맞게 특정한 개발 언어가 만들어지기 때문에 하나의 언어가 만능일 수 없다”고 말했다.

어느 개발자든 시작은 같다. 특정한 언어를 배우고 한동안 그 언어에 머무른다. 시간이 갈수록 숙련도를 높이고 실력을 쌓으며 직업을 갖는다. 그런 사람이 어느날 갑자기 다른 언어를 새로 익히기 어렵다. 특히 개념과 차원이 전혀 다른 언어일수록 더 힘들다.

---------------------------------------

*글 싣는 순서

1)자바만 하는 자바 개발자의 미래는 없다?

2)韓개발자에게 폴리글랏이 와닿지 않는 이유

3)폴리글랏을 고민하는 개발자를 위한 조언

---------------------------------------

임백준씨는 “실용주의 프로그래머란 책에 보면 1년에 하나씩 새 언어를 학습하라고 조언한다”며 “1년마다 회사에서 쓰는 언어를 바꾸라는 게 아니라 좋은 개발자라면 다른 언어, 자기가 쓰는 언어와 패러다임이 완전히 다른 언어를 공부하라는 것”이라고 조언했다.

그는 “새로운 하나를 익히고 나면 그 다음에 또 새로운 걸 익히는 건 더 수월해진다”며 “처음 다른 언어를 배우는데 들이는 시간이 10이라고 할 때 한번 그 경험을 하면 두번째엔 5로 줄고, 그 다음엔 2.5로 줄어든다”고 말했다.

사고의 지평을 넓힌다는 측면으로 볼 때 전혀 다른 패러다임의 언어일수록 도움이 된다고 한다. 예를 들어 자바와 C#은 결국 동일한 계통의 언어기 때문에 교차 학습의 효과가 그리 크지 않다. 자바나 C#을 배운 개발자라면 동시성 프로그래밍과 함수형 언어를 알 수 있는 ‘얼랑(Erlang)’이나 ‘클로저(Clojur)’, ‘스칼라(Scala)’를 배우는 게 유용하다.

물론 뿌리가 같은 언어를 익히는 것도 도움이 된다. 자바 개발자가 함수형 언어를 익히려 할 때 C#에 구현된 함수형 프로그래밍 기법을 접하면서 감을 익힐 수 있다는 것이다.

올해 자바원2014 컨퍼런스에서 만난 유명 자바 개발자인 마르타인 펄버그 제이클래러티(jClarity) CEO는 우리 회사에선 JVM을 기반으로 자바 외에 그루비, 스칼라 같은 언어들을 함께 사용하고 있다며 폴리글랏 프로그래밍을 익히려고 할 때 그루비, 스칼라 같은 새 언어를 프로토타입 개발에 활용하는 게 좋다고 조언했다.

마이크로소프트 같은 대형 IT회사들이 강조하는 크로스플랫폼에 대한 접근법도 눈여겨볼 만하다.

임백준씨는 “크로스플랫폼은 폴리글랏과 같은 내용을 다른 각도에서 얘기하는 것”이라며 “폴리글랏 프로그래밍은 언어에 대한 얘기로, MS의 CLR에서 돌아가는 언어가 JVM에서 돌아가도록, 혹은 그 반대가 되도록 컴파일러를 MS 같은 회사가 제공한다”고 설명했다.

그는 “크로스플랫폼이란 언어를 건드리지 않고 컴파일러만 얘기하는 것이다”며 “개발자는 언어를 지금 쓰는 걸 쓰고, 플랫폼 회사에서 컴파일러를 제공해 코드를 여러 곳에서 쓸 수 있게 만들어 주겠다는 얘기”라고 덧붙였다.

MS는 올해 들어 크로스플랫폼을 전면에 걸면서 C#만 알아도 iOS, 안드로이드 등을 위한 앱을 만들 수 있다고 강조한다. C#으로 만든 앱을 iOS앱으로 변환하는 자마린(Xamarin) 같은 툴도 각광받고 있다.

개발자 개인의 차원으로 볼 때 새 언어를 배운다는 건 엄청난 노력과 시간을 들여야 하는 문제다. 동기부여를 어떻게 받느냐에 따라 시작 자체를 안 할 수도 있다.

그 동기부여를 가로막는 게 한국에선 사회구조다. 개발자는 회사에 부속된 부품 중 하나로 여겨지면서 가치를 인정받지 못하고 있다. 거대한 사회 구조 안에서 살아가는 나약한 개인에게 자발적인 변화의 노력을 하지 않는다고 손가락질 할 수는 없다.

이규영 시터스 기술이사는 현 상황에서 민간 기업에서 근무하는 개발자의 자발적 노력이든, 고용주의 지원을 통한 재교육이든 폴리글랏 프로그래밍이 준비되는 건 기대할 수 없다고 지적했다.

그는 “국내 IT회사, 특히 SI를 하는 회사의 경우 태반이 재교육에 대한 의지가 직원이나 회사나 둘 다 빈약하다”며 “민간에서 될 수 없다면, 정부가 민간기업의 직원 재교육을 통해 새 언어를 새로 익힐 수 있도록 지원해주면 좋겠다”고 말했다.

여기서 재교육 지원이 최근 유행하는 ‘IOT’, ‘빅데이터’, ‘클라우드’ 같은 트렌드 감잡기가 아님은 물론이다. 진지하게 새 언어를 배우는 재교육이다. 임백준씨는 “생존을 기반으로 한 사고방식으로 폴리글랏 프로그래밍을 받아들일 수 없다”고 강조한다. 열정과 생존은 양립할 수 없는 개념이란 것이다.

폴리글랏 프로그래밍은 무한 경쟁을 요구하는 자본주의시대의 또 다른 단면일 수 있다. 치열한 경쟁 속에서 한 사람에게 더 많은 걸 갖추라고 요구하는 시대, 폴리글랏 프로그래밍은 21세기를 살아가는 개발자의 생존법일 수 있다. 그런만큼 몸으로 실천하기 어렵다고 해서 폴리글랏 프로그래밍과 아예 담을 쌓고 지내는건 바람직하지 않아 보인다.

폴리글랏 프로그래밍에 동의했던 개발자들은 사고의 지평을 넓히면 솔루션을 쉽게 찾을 수 있다고 했다.

한 개발자는 “한국의 현실이 미국과 많이 달라서 폴리글랏 프로그래밍이 그리 잘 와닿지 않는 건 오히려 다행스러운 일이다”며 “아직 시간이 있다는 얘기기 때문이다”고 말했다.

관련기사

임백준씨는 이런 말을 남기고 미국으로 돌아갔다.

“하나를 깊게 파는 것이 의미가 없는 시대다. 하나를 깊게 파면 그 세계 안에서 살 수는 있겠지만, 거기서 그 사람이 동원할 수 있는, 주어진 문제에 대한 해결법을 사고하는 법은 틀에서 벗어날 수 없다. 다양함을 보는 사람은 자기가 아는 모든 가능성 중 최선의 선택을 할 수 있다. 하나를 깊게 알아서 해결할 문제의 범위가 예전처럼 많지 않다.”