[JAVA] API & module

Coastby·2022년 8월 4일
0

JAVA

목록 보기
16/33

아래의 코드는 화면에 1을 출력하는 코드이다.

System.out.println(1);

System : class의 이름의 첫 문자는 대문자라는 것을 감안하면 이는 클래스 이름일 것이다.

println : 메소드일 것이다.

out : class의 변수일 것이며 인스턴스화 시키지 않고 사용하고 있으므로 static일 것이다.

자바가 기본적으로 제공하는 package 중에 java.lang (import java.lang.* 으로 임포트)이 있다. 자바는 자동으로 이러한 package들을 임포트해서 사용자가 따로 import하지 않아도 된다.

클래스 System은 이 java.lang의 소속이다.

○ API

API란 자바 시스템을 제어하기 위해서 자바에서 제공하는 명령어들을 의미한다. Java SE (JDK)를 설치하면 자바 시스템을 제어하기 위한 API를 제공한다. 자바 개발자들은 자바에서 제공한 API를 이용해서 자바 애플리케이션을 만들게 된다. 패키지 java.lang 의 클래스들도 자바에서 제공하는 API 중의 하나라고 할 수 있다.

Overview (Java SE 18 & JDK 18)

java의 API 목록과 사용법이다. 왠만한 것들은 java.base module 안에서 찾으면 된다.

자바에서 제공하는 기본 패키지들은 아래와 같은 기능을 담고 있다.

  • java.lang : 자바 프로그래밍을 위한 가장 기본적인 패키지와 클래스를 포함하고 잇다.
  • java.util : 프로그램을 제어하기 위한 클래스와 데이터를 효율적으로 저장하기 위한 클래스들을 담고 있다.
  • java.io : 키보드, 모니터, 프린터, 파일 등을 제어할 수 있는 클래스들의 모음
  • java.net : 통신을 위한 기능들을 담고 있다.

✋ 모듈 (module)

강의 내용에서는 화면과는 다르며 패키지들이 module 로 카테고리가 나눠져 있다. Java9 부터는 모듈 지원을 한다고 한다. 자바의 모듈은 외부에서 재사용할 수 있는 패키지들을 묶을 것을 말한다. 어떻게 보면 이클립스에서 개발하는 프로젝트는 하나의 모듈을 개발하는 것. 그리고 서로 다른 프로젝트가 import와 export를 이용하여 패키지를 주고 받는다.

모듈의 기능

모듈을 다른 외부 모듈에서 사용할 수 있도록 공개 API로 간주되는 모든 패키지 목록을 제공한다. 만약 어떤 클래스가 public 이라 할지라도 export된 패키지에 없으면 모듈 외부에서 이 클래스에 접근할 수 없다. 이를 통해 패키지 단위의 가시성을 제공한다. 모듈이 없을 때는, 클래스는 다르고, 같은 패키지안에서만 공개하고 싶은 경우 public을 사용했고, 이렇게 되면 다른 패키지에서도 사용할 수 있게 된다.

모듈 디스크립터

module은 모듈 디스크립터에 아래의 세가지 질문에 대한 답을 선언한다. 이 모듈 디스크립터는 module-info.java라는 파일에 저장되고, src/main/java 폴더에 위치한다.

  • name : 이름이 무엇인가? 오라클에서는 패키지명처럼 인터넷 도메인명을 역순으로 모듈의 이름을 정하다록 추천하고 있다.
  • export : 어떤 것을 제공하는가? 패키지 단위로 다른 모듈에서도 사용할 수 있도록 공개하는 키워드이다.
  • require : 어떤 것들이 필요한가? 의존하고 있는 모듈을 지정하는 키워드이다. 기본적으로 모든 모듈은 java.base라는 모듈을 의존하고 있다. 때문에 이 java.base는 생략가능하며, java.base가 아닌 모듈을 의존하는 경우에 requires를 사용한다.

작성법은 다음에!

profile
훈이야 화이팅

0개의 댓글