NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

객체지향 프로그래밍 언어, 자바에 대해서

자바는 서버를 다루는 개발 언어 중 하나입니다. 이번 시간에는 자바의 특징이 어떤 것이 있는지 알아보고, 어떤 상황에 주로 사용되는지 장단점은 무엇인지에 대해서 살펴보도록 하겠습니다. 

 

자바는 Oracle이 소유 중인 개발 언어입니다. 객체지향 프로그래밍(Object Oriented Programming) 방식을 사용하는 개발 언어이며, 학습 난이도가 낮은 언어에 속합니다.

 

 

객체지향 프로그래밍(OOP) 방식의 언어

객체지향 프로그래밍(OOP) 방식이란, 여러 가지 종류의 재료로 햄버거를 만드는 과정과 비슷합니다. 햄버거 하나에 여러 장의 패티를 넣을 수도 있고, 베이컨이나 달걀을 추가할 수도 있습니다. 실제 프로그래밍 과정도 이와 비슷하게 하나의 서비스를 만들더라도, 여러 가지 작은 단위의 프로그램을 연결해 다양한 서비스를 만들어낼 수 있습니다. 

 

하나의 서비스를 분해해서 늘어놓으면 마치 거대한 기계처럼 반복되는 부품들이 나옵니다. 옛 개발 언어로 만든 서비스들은 반복되는 부품을 하나로 인식하지 않았습니다. 그래서 기능을 사용할 때마다 각각의 파츠를 새로 정의해줘야 하는 문제가 있었습니다. 그러나 자바 같은 객체지향 개발언어가 나오면서 상황이 달라졌습니다. 하나의 기능을 여러 개로 쪼개어 각각의 내용을 다른 곳에 다시 연결할 수 있게 되었고, 심지어 하나의 부품을 만들어 놓으면 그것을 떼어 더 큰 부품을 만드는 데 사용할 수도 있습니다. 

 

 

플랫폼과 상관없이 돌아가는 호환성

세상에는 여러 OS들이 있습니다. 우리에게 익숙한 윈도우 외에도 Linux, Unix 같은 운영체제들이 있고, 안드로이드 같은 모바일 운영체제들도 있죠. 만약 각각의 OS들에서 동일한 서비스를 만들어야 한다면 지원하는 OS의 개수만큼 추가적인 작업을 해줘야 합니다. 하지만 자바로 개발을 진행한다면, JVM (자바 버추얼 머신)이라는 기능을 사용해 OS와 상관없이 돌아가는 서비스를 하나만 만들어주면 됩니다. 그렇기 때문에 개발을 하는 입장에서 매우 효율적인 언어라고 할 수 있습니다.

 

 

배우기 쉽고, 업계에서 사랑받는 개발 언어

자바는 개발 언어들 중에 배우기 쉬운 언어에 속합니다. 물론 일반인도 배우는 파이썬에 비해서는 좀 더 복잡하다고 할 수 있지만, 개발에 사용되는 클래스와 함수 개념, 사칙연산과 조건문, 반복문처럼 대부분의 개발 언어가 갖고 있는 기본적 특성을 손쉽게 이용할 수 있습니다. 그래서 다른 개발언어를 공부해보았거나, 개발 언어에서 사용되는 핵심 개념을 이해한 사람이라면 자바 언어 학습에 오랜 시간이 걸리지 않습니다. 

 

또한 자바는 대부분의 웹 개발자들이 기본적으로 배우게 되는 개발 언어 중 하나입니다. 한국을 기준으로 보아도 자바는 기본적인 개발 언어라 불립니다. 수많은 서비스들이 자바를 기반으로 만들어졌고, 이 서비스를 유지보수하려면 자바를 배워야 하죠. 그래서 지금도 많은 사람들이 자바를 통해 개발을 배우고 있습니다. 업계에서 가장 많이 사용되는 Spring 프레임워크도 자바를 기반으로 사용하는 프레임워크입니다. 

 

 

자바의 문제점들 

자바는 좋은 지점만 갖고 있는 언어일까요? 사실 그렇지는 않습니다. 자바는 오래된 언어이며, 동시에 합리적이지 못한 문제들을 많이 갖고 있습니다.

 

  • 자바는 백엔드에서 주로 사용되며, 하드웨어를 다룰 수 없는 개발 언어다. 
  • 실시간으로 많은 정보를 다루는 애플리케이션 개발에는 적합하지 않다.
  • JVM (자바 버추얼 머신)에 많은 것을 의존하기에 초기 시작 속도가 느린 편이다.
  • 자바 자체보다, 자바에 사용되는 프레임워크의 학습 난이도가 매우 높은 편이다.

 

자바는 오라클이란 거대 회사가 라이센스를 쥐고 있는 개발 언어입니다. 구글과 오라클의 법정 싸움에서도 알 수 있듯. 수십 년의 시간 동안 자바를 뛰어넘는 개발언어는 나오지 못했습니다. 모바일 앱 개발은 코틀린(Kotlin) 같은 대체 언어가 등장했지만, 여전히 서버와 백엔드 개발을 위한 언어는 자바입니다. 그래서 업계인들이 자바를 원하지 않더라도, 대체 언어가 없는 상태입니다. 

 

자바의 자체 문법도 새로운 개발 언어들에 비해 비효율적인 경우가 많습니다. 그래서 상대적으로 배우기 쉽다고는 이야기하지만 일반인을 기준으로 보았을 때, 학습 난이도가 높은 것은 여전합니다. 게다가 자바를 사용하기 위해 추가로 쓰는 Spring 프레임워크 같은 경우, 자바 언어 자체보다 더 배우기가 어려운 편이기에 학습 난이도가 급격하게 올라가기도 합니다. 

 

 

그럼에도 불구하고 사랑받는 자바

자바는 여러 가지 문제를 갖고 있는 언어이지만 웹이나 앱 기반 서비스를 만들 때 빼놓을 수 없는 언어입니다. 특히 서버와의 통신과정을 다루고, DB를 다뤄야 하는 상황이라면 더욱더 그렇습니다. Spring 같은 자바 기반 프레임워크는 자바가 갖고 있던 버전 관리나 호환성 체크 문제를 해결해주었고, 일반적인 기능을 넘어선 고급 기능들도 갖고 있습니다. 그래서 학습 난이도가 높다 하더라도, 여전히 개발자들에겐 인기를 얻고 있는 것이죠.

 

코틀린 같은 언어가 좀 더 확장되다 보면, 언젠가는 자바를 대체할 날이 올지도 모릅니다. 실제로 국내 대기업 등에서도 자바를 대체해 코틀린을 기반으로 서버를 개발하거나, 운영하고 있는 사례가 종종 나타나고 있기 때문입니다. JVM(자바 버추얼 머신) 기반의 언어이다 보니 서로 호환도 되고, 문법도 크게 바뀌지 않으니 여러 시도가 이어지고 있는 것이죠. 하지만 여전히 이런 시도는 소수에 불과하고, 대부분의 회사들은 자바를 중심으로 개발을 하는 곳이 많습니다.

 

가장 큰 이유는 코틀린의 미래가 아직도 불안정하기 때문이고, 실제 사용하기에 쉬운 언어도 아니기 때문입니다. 자바와 코틀린 모두 JVM(자바 버추얼 머신)을 기반으로 하고 있지만, 문법이나 사용성이 사용성이 다르다 보니 서로 충돌이 나기 때문입니다. 또한 코드의 분석이나 재활용성을 높이려면, 한 가지 언어로 통일되는 편이 더 낫습니다. 이런 흐름이 현재에도 계속되고 있기 때문에, 자바가 다른 언어로 대체되는 일은 없을 거라는 것이 전문가들의 평가입니다.

 

 

지금까지 자바 개발언어에 대해 알아보았습니다. 자바에 대해 좀 더 자세한 내용이 알고 싶다면, 다음 링크를 참고해보세요.

 

<참고자료>

https://java119.tistory.com/19

댓글 0

리플러스

웹개발과 UI를 연구하는 리플러스입니다. 현재 UD LAB이라는 채널을 운영하고있고, 디자이너를 위한 개발 공부법을 만들고 있습니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.