Search

Item 59. 라이브러리를 익히고 사용하라

생성일
2023/08/07 23:17
챕터
9장 - 일반적인 프로그래밍 원칙

요약

자바 표준 라이브러리에는 우리가 모르는 도움이 되는 기능이 많으니, 잘 찾아보고 잘 읽고 잘 쓰자.

표준 라이브러리를 익히고 사용하자

static Random rnd = new Random(); static int random(int n) { return Math.abs(rnd.nextInt()) % n; }
Java
복사
위 코드에는 3가지 문제가 있다.
n이 그리 크지 않은 2의 제곱수라면 얼마 지나지 않아 같은 수열이 반복된다.
n이 2의 제곱수가 아니라면 몇몇 숫자가 평균적으로 더 자주 반환된다.
지정한 범위 바깥의 수가 종종 튀어나올 수 있다.
이런 결함을 해결하기 위해서는 의사 난수 생성기, 정수론, 2의 보수 계산 등에 조예가 깊어야 하는데, 다행히 Random.nextInt(int)를 사용하면 간단하게 해결된다.
Random이 필요한 경우 더 빠르고 더 고르게 분포된 난수를 생성하는 ThreadLocalRandom을 사용하는 것이 좋다.
이처럼 표준 라이브러리를 사용하면 여러 이점들이 있다.
표준 라이브러리를 사용하면 해당 코드를 만든 전문가의 지식과 다른 프로그래머들이 사용했던 경험을 활용할 수 있다.
표준 라이브러리를 사용하면 핵심적인 일과 크게 관련 없는 문제를 해결하느라 시간을 허비하지 않아도 된다.
따로 노력하지 않더라도 성능이 지속해서 개선된다.
기능이 점점 많아진다.
작성한 코드가 다른 많은 사람들에게 낯익은 코드가 되어, 더 읽기 좋고 유지보수하기 쉽고 재사용이 쉬워진다.
이렇게 표준 라이브러리를 사용하면 수많은 이점들이 있는데, 사람들은 라이브러리에 그런 기능이 있는 줄 모르고 직접 구현해서 사용하고 있다.
라이브러리가 너무 방대하여 모든 API 문서를 공부하기는 벅차겠지만, 자바 프로그래머라면 적어도 java.lang, java.util, java.io와 그 하위 패키지들 정도는 익숙해져야 한다.
그 외에도 컬렉션 프레임워크와 스트림 라이브러리, java.util.concurrent의 동시성 기능도 알아두면 큰 도움이 된다.
바퀴를 다시 발명하지 말자!