자바 라이브러리 내부 살펴보기

후추·2022년 11월 3일
0

2주차 프리코스 과정에서 외부 라이브러리 camp.nextstep.edu.missionutils를 사용하라는 프로그래밍 요구 사항을 마주했다.

사용 예시는 다음과 같이 주어졌다.

List<Integer> computer = new ArrayList<>();
while (computer.size() < 3) {
    int randomNumber = Randoms.pickNumberInRange(1, 9);
    if (!computer.contains(randomNumber)) {
        computer.add(randomNumber);
    }
}

Randoms.pickNumberInRange() 메소드는 범위를 입력하면 범위 내에서 숫자 하나를 랜덤으로 반환해주는 듯 했다.

Console.readLine() 메소드는 콘솔 창에서 한 줄을 읽어오는 것으로 짐작했다.

하지만 짚고 넘어가야할 점이 보였다.

Randoms.pickNumberInRange()

  1. Randoms.pickNumberInRange()는 입력 숫자를 포함할까? 아니면 제외할까?
  2. Randoms.pickNumberInRange()는 int형 자료만 입력 가능할까?
  3. Randoms.pickNumberInRange()가 Random 숫자를 반환하는 로직은 무엇일까?

Console.readLine()

  1. Console.readLine()가 입력을 읽는 로직은 무엇일까? Stream, Scanner, Buffer?
  2. Console.readLine()가 입력을 읽으면 어떤 자료형으로 반환할까?
  3. Console.readLine()는 입력을 받은 뒤, 스스로 입력을 닫을까? (Scanner.close()와 같이 OS자원을 자동으로 되돌려줄까?)

등등

따라서 라이브러리 내부를 살펴보아야 했다.

프로젝트에 있는 build.gradle 을 살펴보니 별다른 조치없이 라이브러리를 사용할 수 있게 이미 넣어주셨다.

자바 파일에서 라이브러리를 import하고, 클래스나 메소드에 Go to / Declaration or Usages 를 사용하면 클래스나 메소드의 내부를 볼 수 있다. ctrl + 마우스 좌클릭으로도 동작한다.


Randoms.pickNumberInRange()의 내부 코드


Console.readLine()의 내부 코드

라이브러리를 살펴보면서 궁금한 점에 대한 답을 얻을 수 있었고, 어떻게 사용해야 할지 감이 왔다.

또한 라이브러리를 살펴보며 낯선 개념과 메소드 형태 등을 보며 공부해야 할 내용들도 추가로 정리할 수 있었다. 라이브러리의 내부를 살펴보는 것도 좋은 공부가 되는 것 같다.

0개의 댓글