Java/Java Tips

자바의 장단점

검정비니 2018. 7. 4. 02:40
728x90
반응형

자바의 특징



1. 자바의 장점?


1) 완벽한 캡슐화


이 캡슐화에 의해 프로그램 자체의 보안성 등이 더욱 강화된다.


2) 휴대성(portability)


자바 응용 프로그램은 JVM에 종속적이지만 플랫폼 독립적이다. 따라서, 한번 작성을 하면 JVM이 있는 어느 플랫폼에서든지 작동을 한다.


3) 타입


데이터 타입이 있고 타입 변환이 불가능하다는 것은 자바의 강한 장점이다. 실제로, 코딩을 하다 보면 데이터 타입이 변하지 않았으면 하는 상황들이 생기곤 한다. 특히 주어진 데이터를 분석하는 데이터 과학 분야에서는 타입 변환이 안되는 이 자바의 특성이 매우 중요하다고 한다.


4) 객체 지향적 특징


객체 지향 언어인 자바는 절차 지향 언어보다 더 다양하고 창의적인 논리적 디자인이 가능하다.


5) 쉽게 배울 수 있다


자바는 기본 개념만 잡게 되면 쉽게 배울 수 있는 프로그래밍 언어이다.



2. 자바의 단점?


자바의 단점은 매우 명확하다.


1) JVM의 보안적 측면


자바로 코딩을 하는 프로그래머들 중 대부분은 은연중에 JVM을 맹신하는 경향이 있다. 알다시피, 현재에 세계의 많은 기업들이 자바를 사용하고 있다. 자바 외에도 코틀린이나 그루비, 자이썬(Jython), J루비 등 다양한 언어들이 JVM 상에서 작동을 하고, 그 언어들은 많은 곳들에 사용되고 있다. 자연스럽게, JVM은 헤커들의 주요 공격 대상이 되었고, 이에 따라 JVM의 보안적 측면이 여러번 화두에 올랐었다. JVM의 사용으로 인해 휴대성이라는 엄청난 장점을 가지고 있는 자바이지만, 그 JVM에 의해 큰 단점 역시 갖게 된 것이다.


2) 구조가 잘 짜여지지 않은 프레임워크


자바의 초기 목표는 임베디드 앱 개발용 언어였다. 그러나, 그 초기 목표는 실패하였고 사장될 뻔 하였다. 다행히 애플릿을 통해 웹 세계에 발을 들이며 화려하게 부활을 하였다. 그 이후에는 Java EE 버전의 꽃이라고 할 수 있는 서블릿과 JSP, 그리고 Spring API등의 등장으로 웹 개발 계의 핵심 언어가 되었다. 게다가, JDBC나 하둡, 그리고 JPA의 등장으로 서버-데이터베이스 모델에서도 강자가 되었다. 그러나, 서블릿이나 Spring을 사용하다보면 자연스럽게 이런 생각이 들게 된다. "과연 이 프로그램이 컴퓨터 내부에서는 어떤 식으로 돌아갈까?" 화려하게 부활을 하긴 했지만, 너무 성급한 부활이었는지, 웹 개발 관련 API 등을 보면 그 구조가 잘 짜여졌다고는 할 수가 없다. 최근 자바스크립트의 react-native나 node.js 등의 등장으로 인해서 이런 자바에 실증을 느끼던 개발자들이 점점 자바스크립트 생태계로 옮겨가고 있는 추세이다.


3) 오라클의 돈독


몇 달 전, 오라클과 구글의 법정 다툼에서 오라클이 승리했다는 소식이 들렸다. 웹 개발 계에서 조금씩 입지를 잃어가던 자바에게 있어서 새로운 살 길이었던 모바일 앱 시장에서의 앞날이 불투명해지는 순간이었다. 오라클은 자바를 계속 발전시킬 생각이 크게 없다. 돈이 안 되기 때문이다. 그렇다고 자바를 오픈소스로 바꿀 생각은 더더욱 없는 듯 하다. 자바가 이대로 사장될 지 아니면 극적으로 부활을 하게 될지는 아무도 모른다. 사실, 오라클의 돈 욕심 때문에 JVM 언어 모두의 앞날이 불투명하다고 해도 될 듯 싶다.

반응형