라이브러리(library)
는 프로그래밍에서 활용할 수 있는 특정 기능들을 모아둔 것을 말합니다. 자바에서는 클래스, 인터페이스를 모아놓은 것을 라이브러리라고 할 수 있죠. 기능들을 모아놨기 때문에 프로그래머는 사용법만 숙지하고 가져다 사용하면 되기에 코드를 빠르게 생산해낼 수 있다는 장점이 있습니다.
모듈(module)
은 Java 9
부터 지원하는 패키지 관리 기능이 포함된 라이브러리입니다. 모듈을 이용하면 라이브러리에서 사용하지 않는 특정 패키지들은 은닉할 수 있습니다. 그리고 module-info.java
라는 파일에 의존 모듈을 작성하기 때문에 모듈 간의 의존 관계를 확인할 수 있는 특징도 있습니다.
자바에서는 라이브러리와 모듈을
JAR 파일(.jar)
형태로 배포하고 사용합니다.
java.base 모듈
은 모든 모듈이 의존하는 모듈입니다. 모듈을 가져다 사용할 때는 requires
를 사용해서 알리는데, java.base 모듈
은 알리지 않아도 사용할 수 있다는 특징이 있습니다.
java.base 모듈
에 포함된 패키지로는 다음 표와 같은 것들이 있습니다. 물론 아래 표 외에도 많은 패키지들이 존재하지만, 표에 나온 패키지들은 정말 자주 사용되는 것들이니 한 번 즈음은 확인해봅시다.
패키지 | 설명 |
---|---|
java.lang | 자바의 기본 클래스들을 제공하는 패키지 |
java.util | 자료구조에 사용되는 클래스들을 제공하는 패키지 |
java.text | 숫자나 날짜 등의 데이터를 문자열로 만드는 format 클래스들을 제공하는 패키지 |
java.time | 날짜나 시간 조작에 사용되는 클래스들을 제공하는 패키지 |
java.io | 입출력 스트림 클래스들을 제공하는 패키지 |
java.nio | Buffer나 새로 등장한 입출력 클래스들을 제공하는 패키지 |
java.net | 네트워크 통신에 사용되는 클래스들을 제공하는 패키지 |
이 중 java.lang
은 그동안 계속해서 사용해왔던 익숙한 패키지이죠? 우리가 계속 사용했던 System, String, Exception
등의 클래스들이 여기에 포함되어있습니다.
우리는 java.lang 패키지
에 조금 더 주목을 해볼까 합니다. 자바의 기본 클래스이기 때문에 자바 프로그래밍을 위해서는 필수적으로 알아둬야할 사항이 많기 때문입니다.
java.lang 패키지
는 자바 언어의 기본 클래스들을 제공하는 패키지입니다. 이 패키지는 import
명령 없이도 바로 사용할 수 있다는 것이 특징입니다.
java.lang 패키지
의 대표적인 클래스들로는 Object, String, System, Math
등이 있습니다. 앞으로 몇 개의 포스트에 걸쳐서 이 패키지의 클래스를 알아보고 각 클래스의 핵심적인 멤버들을 알아보려고 합니다.
처음시작할 때 소개드렸었는데요. 앞으로 클래스를 소개하면서 모든 멤버들을 소개할 수도 없기도 하고, 더 자세하게 적혀있기도 하기에 함께 참고하면 훨씬 더 좋습니다.