라이브러리
미리 프로그램 내의 가지고 있는 기능을 모아둔 집합소(저장소)에서 필요할 때마다 기록된 코드를 재사용할 수 있도록 Class나 Function으로 만들어 진 것
- 프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것을 의미
-> Scanner, Println 등등

라이브러리 추가하기
-
라이브러리는 일반적으로 JAR(.jar) 압축 파일 형태임
-
클래스와 인터페이스의 바이트코드 파일들이 압축됨
-
라이브러리 JAR 파일을 이용하기 위해서는 ClassPath (클래스를 찾기 위한 경로)에 추가
-
CMD 또는 터미널과 같은 콘솔에서 프로그램 실행
-> JAVA 명령어를 실행할 때 -classpath로 제공
-> CLASSPATH 환경 변수에 경로 추가
-
이클립스 프로젝트에서 실행할 경우 : 프로젝트의 Build Path에 추가함
- 라이브러리 생성 (my_lib)

- 위의 사진처럼 이클립스 메뉴에서
File > New > Java Project를 선택하여 my_lib 자바 프로젝트 만들기
- 모듈을 만드는 것이 아니기 때문에 Create a Java Project 체크박스 해제
- src 폴더에 pack1, pack2 패키지 생성 후 각각 패키지에 A와 B 클래스 생성
A 클래스
package pack1;
public class A {
public void method() {
// TODO Auto-generated method stub
System.out.println("A-method 실행");
}
}
B 클래스
package pack2;
public class B {
public void method() {
// TODO Auto-generated method stub
System.out.println("B-method 실행");
}
}
- 폴더 생성

- my_lib 프로젝트 우클릭 > 폴더 생성
- my_lib 폴더에 jar 파일을 저장할 폴더(dist)를 생성
- JAR 파일 생성






- library : 제작자
- my_application : 사용자
모듈
- 패키지 관리 기능까지 포함된 라이브러리 (Java 9 이상)
- 모듈은 일부 패키지를 은닉하여 접근할 수 없게끔 할 수 있음
- 의존 모듈을 모듈 기술자(module-info.java)에 기술할 수 있어 모듈 간 의존 관계를 파악하기 쉬움
- 대규모 응용프로그램은 기능별로 모듈화해서 개발함
- 재사용성 및 유지보수에 유리
모듈화
- 응용프로그램을 기능별로 서브 프로젝트(모듈)로 쪼갠 다음 조합해서 개발하는 것
- 응용프로그램의 규모가 클 수록 협업과 유지보수 측면에서 모듈화 유리
- 다른 응용프로그램에서도 재사용 가능


자바 표준 모듈
- JDK가 제공하는 표준 라이브러리는 Java 9부터 모듈화됨
- 응용프로그램을 실행하는 데 필요한 모듈만으로 구성된 작은 사이즈의 자바 실행 환경(JRE)
- 독립 실행형(응용프로그램 + 표준 라이브러리)으로 배포할 경우 표준 라이브러리의 크기가 작을수록 배포 사이즈가 줄어듬
