예전에 한 커뮤니티에서 자바와 자바스크립트의 차이/관계가 뭐냐는 질문에 이런 댓글을 본 적이 있습니다
자바와 자바스크립트의 관계는 장갑과 장갑차의 관계와 같습니다.
이게 무슨 말일까요? 개발 공부하려고, 혹은 취업하려고 알아보다가 궁금한 내용을 질문을 한 건데 갑자기 무슨 장갑? 장갑차? 게다가 자바와 자바스크립트의 관계가 장갑과 장갑차의 관계와 같다고??? 아니 이게 무슨 말인데? 애초에 장갑이랑 장갑차랑 무슨 관계가 있다는 건데...??? 응??
그게 답입니다.
자바와 자바스크립트는 어떠한 관계도 없습니다 단지 이름 앞에 "자바"라는 단어가 똑같이 들어가 있을 뿐입니다. 마치 "장갑"과 "장갑"차라는 단어처럼요! 이 댓글을 보고 혼자 박수를 쳤던 기억이 나네요.
이름이 비슷한 것도 있지만 이 두 개를많이들 사용하고, 여러 회사에서 요구하는 사항에 자바와 자바스크립트가 있기 때문에 이런 질문이 나온 것일 겁니다. 그런데 제가 위의 질문을 처음 봤을 때가 거의 4~5년 전이었던 거 같은데 그때 상황과 지금의 상황은 많이 다릅니다.
자바
https://audioclip.naver.com/channels/7548/clips/171
지금도 여전히 Java로 취업할 수 있는 회사는 많지만 예전만 못한 게 사실입니다. 얼마 전까지만 해도 JavaScript와 Java를 대등하게 보거나 비교하는 경우는 거의 없었습니다. 자바가 대세였고, 자바스크립트는 보조해 주는 역할이었으니까요. 그것도 자바스크립트는 녀석은 웹 개발이라는 영역에서만 보조이지, 조금만 다른 분야로 가도 자바스크립트는 사용할 필요도 없었습니다. 그냥 Java 하나로 거의 모든 영역에서 개발이 가능합니다. FrontEnd/BackEnd, 웹/앱, Android/Windows/IOS, 서버/네트워크 등등 어떤 기준으로 해도 자바는 1순위로 사용 가능한 프로그램 언어입니다. 자바의 장점 중의 하나가 범용성인 이유입니다. 저도 자바로 개발자 경력을 시작했고, 퇴사할 때까지도 Java로 윈도/서버/네트워크/통신/웹/앱 개발을 했습니다. 심지어 퇴사 후 사업을 하면서도 자바를 사용했었고, 개발 회사 취업을 목표로 하시거나 다른 분야에서 개발 분야로 넘어오시는 분들한테도 자바를 추천했었습니다. 제가 제일 잘 아는 게 자바였던 것도 있지만 실제로 취업이든 아니든 개발 분야에서의 자바의 점유율/위상이 제일 높았기 때문에 그러는 게 당연한 것이었습니다.
하지만 영원한 건 역시나 없나 봅니다. 제 상황만 봐도 사업을 하든 외주를 하든 컨설팅을 하든 교육을 하든 무조건 자바를 사용하거나 추천하지 않고 있습니다. 이제는 자바가 우선 선택지가 아닙니다. 불과 1~2년 사이에 저도 바뀌어 버린 거죠. 이유가 뭘까요?
여러 이유가 있겠지만 개인적으로 가장 큰 이유는 데이터분석, 머신러닝/딥러닝/AI, 블록체인 등 적어도 최근에 새롭게 떠오르고 있는 분야에서는 자바보다 더 적합한 개발 언어가 따로 있기 때문입니다. 게다가 범용성이라는 게 "양날의 검"일 수밖에 없는 게 여기저기에서 사용할 수 있다는 건 반대로 어느 한 분야에서도 압도적이지 않다는 걸 의미하기도 합니다. 인터넷이 빨라지고 스마트폰도 생기고, 하드웨어 성능은 좋아지는 데 가격은 오히려 떨어지고, 사용자도 폭발적으로 늘어남에 따라 거의 동시 다발적으로 여러 분야에서 개발 일이 늘어났을 때는 자바의 범용성이 엄청난 강점이었겠지만 적어도 현재는 데이터나 클라우드 쪽이 대세이기 때문에 이 쪽에서만 압도적인 퍼포먼스를 낼 수 있는 것들이 더 뜨고 있는 거죠.
Python
그런 측면에서 지금 시점의 유망주는 파이썬입니다. 음... 이제는 유망주보다는 더 큰 거 같기는 하지만 대세인지는 제가 판단하기가 어렵습니다. 하지만 파이썬이 자바보다 더 많은 관심을 받고 있는 건 분명한 사실입니다. 앞에서 말씀드린 것처럼 지금은 여러 분야가 아니라 데이터분석/빅데이터/머신러닝/딥러닝/AI 분야에서 확실한 아웃풋을 낼 필요가 있는 시대이기 때문입니다. 그 이유는 당연히 더 많은 돈과 인력이 데이터 쪽으로 몰리고 있어서겠지요?
물론 여전히 사용자가 많다는 이유와 범용성 덕에 여전히 자바로도 데이터 분야에서 개발을 할 수는 있지만 저처럼 자바로 개발 경력을 시작했고, 그걸로 한창나이 때 일을 한 게 아니라 이제 개발 분야로 진입을 하는 분들이라면 굳이 Java를 선택할 필요가 없습니다. 그냥 Python을 선택하면 됩니다. 게다가 조금씩 파이썬의 범용성도 좋아지고 있기 때문에 더욱더 자바를 선택할 이유가 줄어들고 있는 상황입니다.
https://audioclip.naver.com/channels/7548/clips/19
한창 자바가 잘 나가고 있었을 때... 그리고 빅데이터라는 녀석이 여기저기에서 들려오기 시작할 때 즈음... 그리고 알파고가 이세돌 선수를 이기기 몇 년 전... 운이 좋게도 회사에서 빅데이터 R&D 인원으로 6개월 정도 신사업에 참여했던 적이 있습니다. 회사는 물론 제 사수도 당연히 Java를 사용하길 원했습니다. 그 당시 제가 다니던 회사는 C에서 Java로 넘어가던 시기였고, 저와 제 사수 포함 대부분의 인력들이 Java를 사용하는 회사였으니까요. 그런데 빅데이터 프로젝트를 Java로 하면 할수록 제한이나 한계가 많다는 걸 알게 되었습니다. 그럼에도 그 당시에는 어떻게든 자바로만 하려고 기를 쓰고 일을 했었습니다. 결국 그 프로젝트는 실패로 끝났습니다. 물론 자바로 했기 때문에 실패했다는 건 아니지만 데이터 분야 개발을 할 때는 자바보다는 python으로 하는 게 맞다는 건 확실합니다.
현재 저는 자바도 파이썬도 사용하고 있지 않습니다. 정확하게는 자바는 할 줄 알지만 최대한 사용하지 않으려는 거고, 파이썬은 할 줄 몰라서 사용하지 못하고 있는 겁니다. 만약 제가 계속 개발 관련 일을 하려고 한다면 파이썬을 하는 게 맞습니다. 만약 제가 자바만 고집을 했다면 개발자로서의 제 수명은 이미 끝났을 겁니다. 앞으로도 계속 개발 일을 하려면 python은 필수인 거죠. 단지 당장은 제가 필요하지 않고, 계속 개발을 할 생각은 솔직히 없기 때문에, 그리고 무엇보다도 귀찮음과 바쁨으로 인해 python은 건들지 않고 있습니다.
자바스크립트
앞에서 제가 자바만 고집했다면 이미 개발자로서의 수명은 끝났을 거라고, 또 나중에도 계속 개발을 할 거라면 파이썬을 할 줄 알아야 된다고 말을 했었습니다. 그런데 저는 현재 파이썬을 하고 있지 않습니다. 그럼 저는 현재 개발을 못하고 있는 걸까요? 제가 자바만 고집을 하지 않았다는 말은 결국 다른 뭔가를 했다는 의미이고, 그건 당연히 적어도 현재 자바보다 좀 더 활용도가 크거나 비전이 있는 것이겠지요. 그게 저에게는 JavaScript였습니다.
제가 대략 10년 전 처음 개발을 접했을 당시에는 프론트 개발을 할 때 JSP를 많이 사용했었습니다. 그런데 그것과는 별개로 어떤 걸로 프론트 영역 개발을 하든 항상 자바스크립트라는 녀석이 따라 다녔습니다. 솔직히 프론트 영역 개발은 관심이 없었고 저와도 잘 맞지 않았었기 때문에 자바스크립트라는 건 신경도 쓰지 않았습니다. 그냥 기본적인 것만 살짝 흉내 내는 정도로만 사용을 했었고, 그 정도만 해도 제가 하는 개발 일(주로 백엔드 영역)에는 큰 불편도 영향도 주지 않았습니다.
그런데 시대가 변한 거죠. 어느 순간 옆에서 얼쩡거리던 JavaScript가 대세로 떠오른 겁니다. 게다가 앞에서 제가 언급했던 자바나 파이썬 이야기는 어떻게 보면 백엔드에 국한된 이야기였고, 자바스크립트는 프론트 뿐만이 아니라 백엔드까지 커버 치는 Full-Stack을 논할 수 있는 녀석이기 때문에 자바나 파이썬과 비교할 게 아닙니다. 애초에 비교 대상이 다르고, 역할이 다릅니다. 게다가 개발 분야가 아닌 그 개발의 결과물을 사용하는 고객(소비자/사용자) 입장에서는 UI/UX가 더 중요하기 때문에 아무리 백엔드 개발을 잘해도 프론트가 엉망이면 고객한테는 첫 이미지부터 깨지고 시작하는 겁니다. 그런 걸 개발할 때 사용되던 JavaScript가 이제는 백엔드 영역까지 진출하면서 지금 현재 가장 많이 사용되고 있는 놈들 중의 하나가 된 겁니다.
솔직히 저는 JavaScript를 배우려고 배운 게 아니라 지인의 소개로 스타트업에서 관리자로 일하면서 처음 접하게 됐고, 회사에서 밥 값 하려고 어쩔 수 없이 배우게 됩 겁니다. 그런데 해보니 너무 좋은 겁니다ㅋㅋㅋ 결국 자바 버리고 JavaScript로 넘어왔습니다. 개발 분야가 정말 잘 나가고 있고, 개발자들 입장에서는 UI/UX를 몰라도 할 일은 많지만 그런 개발자들을 고용하는 회사 입장에서는 소비자/고객에게 개발의 결과물을 판매해야 되기 때문에 무조건 프론트 개발은 필요합니다. 그런 측면으로만 봤을 때도 풀스택 개발이 가능한 JavaScript는 매력적으로 보이지만 그게 아니어도 웹/앱을 아우를 수 있는 개발이 가능하고, 사용 가능한 라이브러리도 많으며, 현재 사용하고 있는 개발자들도 많기 때문에 자바스크립트는 너무나도 좋은 선택지입니다. 사업을 하고 있는 제 입장에서 사용성/개발 속도적인 면에서도 매력적이고요.
결국 이제는 뭘 해도 자바보다는 JavaScript로 어떻게 할까부터 생각하게 되었습니다. 적어도 제 상황에서는 자바로 해왔던 것들 모두 자바스크립트로도 가능하고, 자바로 할 수 없는 것들을 자바스크립트로 할 수 있는 것들이 더 많기 때문에 여기로 넘어오게 된 건 천운이었다고 생각합니다. 덕분에 앞으로 몇 년 더 개발자라는 타이틀을 이어나갈 수 있게 되었습니다.