개발/Java

[Java] Java 9 의 모듈 시스템

hojak99 2017. 11. 26. 21:42

Java 9 에서 모듈 시스템이 등장했다. Java 9 에서의 가장 큰 변화이다. 


1. 왜 Java 9에서는 모듈 시스템을 도입했는지?


왜 Java 9에서는 모듈 시스템을 도입했는지?


Java 8 과 그 이전의 환경에서 자바 기반의 어플리케이션을 개발이나 제공할 때 문제점들이 발생했다고 한다. 
  • JDK 가 너무 크다.  이것은 소형 장치로 확장하기 어렵다는 뜻이다. Java 8 에서는 3가지 compact profies(compact1, compact2, compact3) 를 도입했지만, 이러한 문제를 해결하지는 못했다. 
  • small device 과 어플리케이션에서 사용하기에 rc.jar 등과 같은 JAR 파일들이 너무 크다. 
  • JDK 카 너무 커서, 어플리케이션이나 기기들에서 더 나은 퍼포먼스를 제공할 수 없다
  • 현재 자바 시스템에서는 캡슐화가 강력하지 않다. 왜냐하면, "public" access modifier is too open 이라 아무나 접근할 수 가 있다.
  • JDK, JRE 가 너무 무거워서 Test 나 어플리케이션을 유지관리하기 어렵다
  • public 이 너무 공개되어 있다. They are not to avoid the accessing of some Internal Non-Critical APIs like sun.*, *.internal.* etc.
  • 사용자가 내부의 API 에 접근할 수 있어서 보안에 큰 문제이다.
  • Its a bit tough to support Less Coupling between components. (구성 요소 간의 적은 결합에 대해 이야기하는 것 같다.)

위와 같은 문제들 때문에 Java 9 에 Module system 을 도입했다고 한다.

나의 개인적인 주관이지만, 이러한 Module system 을 도입해서 용량을 줄인다라는 것은 알겠는데 기존에 Java 9 이전의 버전들에서는 이러한 system 을 사용하지 않고 있기 때문에 기존의 서비스들은 Java 9 버전을 사용하기 위해서는 조금 시간이 걸릴 것 같다고 생각한다. 장단점이 좀 큰 것 같다. 

이러한 문제들은 언젠간 해결해야 했던 문제들인데 이번 Java 9 에서 총대를 맨 것 같다. c++ 인가 에서도 모듈 시스템을 도입했나 했었던 것 같은데 기억이 나질 않는다.. C++ 하고싶다.. 




[출처 : https://www.journaldev.com/13106/java-9-modules#introduction]


반응형