IT프리랜서

Java 개발자, C# 개발자 선택은? 둘다를 하는 개발자

긋대디 2019. 1. 3. 20:39

최근까지 자바 개발만 해오다 현재 C#으로 프로젝트를 진행 중입니다.


처음 프로그램 입문하면서 부터 지금까지 어느게 더 한국에서 잘나가느냐고 묻는다면 시장은 양분화 되어 가는 추세인 것 같다. 즉, 공공은 전자정부프레임워크를 등에 업고 자바가 거의 독식하게 되었고, 일반 기업은 올인원으로 윈도우 하에서 발전해온 ms Visual Studio 플랫폼이 우위인 상황으로 거의 정리된 것 같다. 

자! 그럼 자바가 좋은가 C#이 좋은가 다시 묻는다면, 난 둘다 해야한다고 생각한다. 어느 정도 개발을 해오니 언어는 개발툴일 뿐이고, 상황에 맞는 언어로 할 수 있는 능력이 있어야 한다고 본다. 모든 것을 Java로만 할 수 없고 , 또 모든 것을 C#으로만 할 수 도 없다. 


아래 관련 기사를 보고 나의 현재 상황에 딱 맞는 내용이 있어 스크랩해 본다.




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


“자바 개발자, C# 개발자는 이제 없다. 오로지 개발자만 있을 뿐이다. 특정 프로그래밍 언어 하나만 고집하는 있는 개발자의 미래는 없다.” 


지난 24일 한국마이크로소프트(MS)가 개최한 테크데이즈2014 컨퍼런스 현장. 자바 개발자도 C#을 배우는 것이 좋다는 한 발표자의 도발적 메시지에 2천여명이 밀집한 장내가 잠시 술렁거렸다.


자바와 C#이 어떤 사이인가. C#는 자바 개발자가 불편해 하는 MS가 밀고 있는 자바의 경쟁 기술이 아닌가. 그런데도 자바 개발자가 미래를 위해 자바말고 C#이나 다른 언어도 다룰 필요가 있다니..


자바 개발자들 입장에선 듣기 거북하고 오만하다는 인상을 풍길만한 얘기였다.


발언의 당사자는 임백준씨다. 


미국 뉴욕 모건스탠리에서 일하는 개발자이자 지디넷코리아 칼럼니스트이기도한 임백준씨는 테크데이즈2014 기조연설에서 “자기가 선택한 프로그래밍 언어와 플랫폼이 세상의 전부라 생각하는 개발자는 큰 착각을 하고 있는 것이다”며 다양한 기술을을 수용할 것을 적극 주문했다. 


그의 주장은 폴리글랏 프로그래밍이라는 말로 요약된다. 그에게 폴리글랏 프로그래밍은 지금의 IT 시장에서 개발자가 지침으로 삼아야할 중요한 화두다. 미국에서 잘나가는 개발자의 ‘잘난체’는 아니라는 얘기다.


폴리글랏 프로그래밍이란 한명의 개발자가 여러 개발언어를 알고 사용한다는 의미다. 2006년 처음 닐 포드란 개발자가 블로그에 올린 글을 통해 퍼지기 시작했다. 그는 처음부터 끝까지 웹 애플리케이션 전체를 하나의 언어로 작성했던 시대를 회고하고, 프론트엔드에 자바스크립트와 HTML, 미들티어에 자바나 C#, 데이터에 SQL를 쓰는 최신 개발 경향을 조망했다. 그러면서 미래는 폴리글랏의 시대가 될 것이라고 주장했다.(☞참고기사 링크) 


임백준씨도 올해들어 다수의 칼럼과 책을 통해 통해 국내 개발자들을 상대로 폴리글랏을 외치기 시작했다. 개발자들이 다양한 프로그래밍 언어와 바람을 피울필요가 있다면서 폴리글랏을 강조하고 또 강조해왔다.


“세상에 존재하는 프로그래밍 언어가 만개를 넘는다고 한다. 폴리글랏이 모든 걸 다 알아야 한다는 말은 아니다. 하나도 제대로 못쓰면서 이 언어, 저 언어 다 건드려보는 사람도 있는데, 이런 사람은 폴리글랏 프로그래머라 부르지 않고, 랭귀지 정키, 마약중독자라 부른다. 그런가 하면 자기가 선택한 언어와 플랫폼이 세상의 전부라 생각하는 사람도 많다. 이 사람은 더 큰 착각을 하고 있는 것이다.”


수많은 개발 언어가 있다. 다 비슷한 기능을 수행하는 왜 이렇게 많아야 할까. 포크, 나이프, 스푼으로 설명할 수 있다. 식사 도구의 기능은 음식을 입에 가져가는 걸 도와주는 것이다. 무얼 먹느냐에 따라 특정 도구가 다른 것보다 유용한지 불편한지 차이가 생긴다. 프로그래밍의 본질은 문제를 해결하는 것이다. 언어를 선택할 때 해결해야 할 문제에서 어떤 언어가 더 유용하고 불편한가 차이가 있다. 기본적으로 모든 언어의 수행 기능은 같지만, 해결해야 할 문제는 그 종류나 범위가 끝이 없으므로, 언어가 계속 나올 수 밖에 없다.” 


특정 언어만 익숙한 개발자는 새로운 접근 방식에 어려움을 느낄 수 있다. 그는 “하나의 플랫폼과 언어만 쓰면서 개발하는 사람은 샐러드, 수프, 스테이크를 먹으면서 숟가락 하나로 먹는 사람과 같다. 여러 도구를 섞어 쓰면서 먹는 사람과 비교할 때 누가 더 효율적으로 먹을 수 있겠는가?라고 물으며 문제 해결을 위해 폴리글랏은 거부할 수 없는 대세임을 분명히 했다. 


그는 폴리글랏 프로그래밍이 실재하는 예로 지난 3월 출시된 자바8을 들었다. 자바8에 포함된 나스호른이란 자바스크립트 엔진은 자바와 자바스크립트를 함께 쓰고, 데이터까지 주고 받게 한다. C# 언어에도 유사한 기능이 있다. 프로그래밍 언어들 간 기술 공유가 많이 이뤄지고 있고 이로 인해 폴리글랏의 가치는 계속 올라가고 있다는 설명이다. 
그의 얘기는 계속된다. 


“올해 미국에선 마이크로서비스 아키텍처가 인기다. 하나의 서비스를 구성하는 코드 분량이 개발자 자신의 머리크기를 넘어가면 안 된다는 것이다. 만약 코드를 C++로 간결하게 짤 수 있다면, 자바나 C# 개발자가 그 서비스를 자신이 원하는 언어로 작성하려 시간을 길게 들일 필요가 없다. 그런 측면에서 마이크로 서비스 아키텍처는 그 자체로 폴리글랏을 촉진하는 아키텍처이며, 단일 언어를 사용하는 집단을 필요없게 만든다.”


하나의 언어만 쓰는 개발자는 필요없어진다는 간담 서늘한 주장의 핵심은 다양성이다.


“개발자란 단어 앞에 붙는 수식어에 집중하지 말아야 한다. 수식어는 중요치 않다. 몸체에 집중하라. 목수가 드라이버를 쓰면 드라이버 목수고, 망치를 쓰면 망치 목수라 부르는가. 그냥 목수다. 개발자는 개발자일 뿐이다.” 


그는 미국에선 폴리글랏 프로그래밍이 자리를 잡아가고 있는 만큼, 국내 개발자들도 흐름을 받아들일 것을 강조한다. 

“앞으로는 얼마나 하나를 잘 아느냐보다 새로운 언어를 얼마나 빨리 익힐 수 있는가가 중요하다. 폴리글랏 프로그래밍에 준비된 개발자에겐 천국일 수 있고, 준비되지 않은 게발자에겐 지옥일 수 있다.”


임 씨의 주장은 국내 개발자들 사이에선 낯설게 들리는 것이 사실이다. 실제로 현실과 괴리된 지나친 이상주의 아니냐는 시선도 있다. 


이에 대해 임백준씨는 이렇게 받아친다. 


“천국일수도, 지옥일수도 있다는 말은 준비를 하지 않으면 안 된다는 말이다. 현실을 이해는 한다. 내가 쓰는 언어가 어쩔 수 없이 등 떠밀려 하는 거라 생각하면 개발자가 자기 열정이 없는 것이다. 그건 하나의 직업으로써 먹고 살기 위해 하는 것이지, 그 자체가 재밌는 삶은 아니다. 만약 언어 자체가 재밌다고 느낀다면, 궁금하지 않을 수가 없다. 내가 쓰는 것과 저건 뭐가 다를까. 궁금하니 기웃거리게 되는 거다. 직장, 직업 등 생존을 기반으로 말할 때 폴리글랏은 얘기할 수 없는 태제다. 각도나 차원을 달리하는 얘기기 때문이다. 프로그래머의 열정이란 측면으로, 누가 말하지 않아도 궁금하면 보게 된다는 각도에서 생각해야 한다.”