한국에선 유독 왜 Java를 배우는 거죠?
채워Dream. Java is law.
한국에선 유독 왜 Java를 배우는 거죠?
몇 년 전 강의를 마치고 나오는 길에 학생 한 명이 던진 질문이었다.
내가 프로그래밍을 배울 때는 Java is King이었다. 즉, Java가 왕이었고, 취업이 가장 잘 되는 언어였고, 프로그래밍 is Java라고 할 정도로 Java를 배우는 것이 당연했다
하지만 질문을 던진 학생에게 일반 프로그래밍 학원의 상담선생님들처럼 취업에 좋으니까요라는 대답을 해주긴 싫었다. 왜냐면 나는 현직 프로그래머이고, 지금은 학생이지만 취업후엔 후배가 될 이들에게 올바른 대답을 주고 싶었다.
Java가 프로그래밍 언어 중에서 가장 좋은가요?
대답부터 하자면 아니다. 프로그래밍 언어는 상황에 따라 달라질 수 있고, 목적에 따라 쓰임이 다른데 좋고 나쁨이 어디 있겠나
대한민국 프로그래밍 학원의 90%는 Java를 가르친다. 프로그래밍을 통해 취업 전선에 나가는 이들이 학원에서 상담을 받으면 Java라는 언어를 최우선으로 추천한다. 이건 이유가 명확하다. 프로그래밍 학원 특히 취업연계/국비지원을 하는 학원이라면 수강생이 취업을 하면 국가로부터 지원금을 받는 제도가 존재하므로 학원에서는 당연히 취업에 가장 유리한 언어를 추천해야 하고, 그것은 누가 뭐래도 당연히 Java다
보통 학원에서 상담을 받거나 프로그래머 선배들에게 질문을 던지면 일반적으로 듣는 대답은 다음과 같다.
- 취업 잘되고
- 가장 많이 쓰고
- 개발할 때 레퍼런스도 많으니까 Java가 좋아
다 맞는 말이다. 틀린 말은 없다. 하지만 왜? 유독 Java가 취업 시장에서 선호되는 언어인지에 대해서 이야기하는 경우를 못 봤기에 내 경험을 되살려서 꼼꼼히 생각해 보고 질문을 준 학생에게 답변을 했다.
(이후 시기는 다르지만 몇몇의 학생들이 같은 질문을 준걸 보면 취준생 입장에선 꽤나 궁금하고, 중요한 부분이라고 생각된다.)
Java를 많이 쓰는 이유? 당연히 존재합니다.
Java를 많이 쓰는 이유는 바로 법이기 때문에 다른 언어들보다 취업 시장에서 선호되고, 가장 오랫동안 일을 할 수 있는 언어라고 볼 수 있습니다.
법? 프로그래밍 언어가 무슨 법이냐 하겠지만 대한민국 공공기관에서 발주하여 제작되는 시스템(혹은 어플리케이션)은 전자정부프레임워크라는 Spring 기반의 프레임워크를 사용해야 함이 법에 명시되어 있다.
이걸 사용하지 않으면 공공프로젝트에 참여하지 못하고, 개발 완료 후 인수단계에서 통과하지 못한다.
전자정부 프레임워크의 기반인 Spring이 Java의 프레임워크 중 하나다. 즉, 국가 공공기관 프로젝트는 90%가 Java를 사용하고 있고, 이걸 법으로 지켜주고 있다.
[행정기관 및 공공기관 정보시스템 구축ㆍ운영 지침 개정(행정안전부고시 제2021-3호, 2021.1.19.] 부분을 보면 다음과 같은 내용이 존재한다.
- 행정기관등의 장은 정보시스템 사업에서 소프트웨어를 개발하고자 하는 경우 전자정부표준개발프레임워크의 적용을 우선적으로 고려하여야 한다
강제사항은 아니다고 하지만 인수단계에서 전자정부프레임워크가 적용되었는지를 검수사항에 넣어서 확인하게 될 테니 정말 강력한 권고 사항이라고 볼 수 있다.
다른 프레임워크나 기술을 를 사용해도 되는 거 아닌가요?
공공기관 입장에선 전자정보프레임워크를 사용하던 최신의 Spring이나 다른 기술을 사용하던 상관없다. 애플리케이션이나 시스템만 잘 작동하면 된다.
라는 답변을 누군가에게 듣는다면 아직 IT 경력이 낮거나 프리랜서의 생태계를 모르는 친구다. (공공기관은 대부분 프리랜서가 근무)
공공기관 입장에서 가장 중요한 것은 시스템이 잘 작동하는 게 맞다. 하지만 시스템이란 게 1-2년 사용하고 없어지는 게 아니라 5-10년 이상 장기적으로 사용하려고 만드는 것인데 개발할 당시에 최신 기술을 이용해서 개발해서 오픈했는데 사람을 구하기 어려워서 유지보수에 막대한 비용이 든다면 어떻게 되겠나?
그렇기 때문에 공공기관의 입장에선 전자정부 프레임워크처럼 대다수가 사용할 수 있는 기술을 기반으로 구축을 하는 것을 선호할 수밖에 없다. (IT 개발 비용에는 유지보수에 대한 부분도 고려해야 하므로)
유지보수를 고려한 합리적 선택은 이전 세대의 프레임워크들인 삼성 SDS의 AnyFrame, LG의 LafJ 등의 프레임워크와도 연결이 되는 주제라 다른 글에서 다루겠습니다.
결론 대한민국에선 프로그래밍을 배운다면?
취업이 최우선인 분은 Java를 메인 언어로 배우고 본인의 스타일에 맞는 서브언어를 배우는 것이 좋습니다.