사실 얘기할 개념은 라이브러리, 패키지 / 컴포넌트, 모듈로 나뉘는데 한 포스팅에 모아 쓰는 이유는 지금 읽고 있는 이펙티브 자바 1장(들어가기) (이라고 불리지만 사실 저자의 글에서 나오는 모든 용어들을 알라고 경고해주는 것만 같은) 입문 글에서 나오는 용어들이므로 쓴다...
한 개 이상의 패키지(+모듈)를 압축한 형태
위 그림에서 자바의 하위 폴더가 모두 자바 클래스 라이브러리임
(우리가 흔히 하는 java.util.~ java.lang.~ java.io.~ 이 보인다!)
클래스들을 모아놓은 디렉토리 (클래스의 체계적인 관리를 위해)
(=서로 관계가 싶은 클래스/인터페이스들을 모아놓은 묶음 단위)
package sk000801.백준.DP;
import java.util.*;
import java.io.*;
public class Student {
}
다른 패키지에 속하는 클래스를 사용
하기 위해 아래 예시처럼 사용
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
}
}
컴포넌트
는 여러개의 프로그램 함수들을 모아 하나의 특정한 기능을 수행할 수 있도록 구성한 작은 기능적 단위
실행(실제 동작)되는 단위
모듈
은 구조의 최소 단위로 함수, 변수, 클래스 등을 모아놓은 것
구현된 단위
헷갈리겠지만 여러개의 모듈이 모여 컴포넌트가, 여러개의 컴포넌트가 모여 모듈이 될 수 있다! = 상하위 개념 XX !! 다른 개념 o
(ex. 교수님이 10명의 학생들에게 메일을 통해 수업 정보를 알릴 때 모듈은 2개, 컴포넌트는 11개)
https://developerhuni.tistory.com/m/13
http://www.ktword.co.kr/test/view/view.php?m_temp1=5909
https://aliencoder.tistory.com/20
https://scshim.tistory.com/221
https://gallery-k.tistory.com/219