라이브러리, 패키지, 컴포넌트, 모듈

cutiepazzipozzi·2023년 3월 8일
0

지식스택

목록 보기
4/35
post-thumbnail

사실 얘기할 개념은 라이브러리, 패키지 / 컴포넌트, 모듈로 나뉘는데 한 포스팅에 모아 쓰는 이유는 지금 읽고 있는 이펙티브 자바 1장(들어가기) (이라고 불리지만 사실 저자의 글에서 나오는 모든 용어들을 알라고 경고해주는 것만 같은) 입문 글에서 나오는 용어들이므로 쓴다...

라이브러리

한 개 이상의 패키지(+모듈)를 압축한 형태

위 그림에서 자바의 하위 폴더가 모두 자바 클래스 라이브러리임
(우리가 흔히 하는 java.util.~ java.lang.~ java.io.~ 이 보인다!)

  • 라이브러리 >> 패키지

패키지

클래스들을 모아놓은 디렉토리 (클래스의 체계적인 관리를 위해)
(=서로 관계가 싶은 클래스/인터페이스들을 모아놓은 묶음 단위)

  • 하나의 소스파일에는 단 한번의 패키지 선언을 허용
package sk000801.백준.DP;

import java.util.*;
import java.io.*;

public class Student {
}
  • 모든 클래스는 반드시 하나의 패키지에 속해야 함
  • '.'을 구분자로 두어 계층 구조로 구성할 수 있음

import 키워드

다른 패키지에 속하는 클래스를 사용하기 위해 아래 예시처럼 사용

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

profile
노션에서 자라는 중 (●'◡'●)

0개의 댓글