BE/Java
[Effective Java] 아이템 59. 라이브러리를 익히고 사용하라
멍목
2022. 11. 24. 22:51
반응형
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다.
아이템 59. 라이브러리를 익히고 사용하라
ex 1) 무작위 정수를 생성하는 좋지 않은 예
static Random rnd = new Random();
static int random(int n) {
return Math.abs(rnd.nextInt()) % n;
}
- 흔하지만, 문제가 있는 소스이다.
- 첫 번째, n이 그리 크지 않은 2의 제곱수라면 얼마 지나지 않아 같은 수열이 반복된다.
- 두 번째, n이 2의 제곱수가 아니라면 몇몇 숫자가 평균적으로 더 자주 반환된다. (n 값이 크면 이 현상은 더 두드러진다.)
- random 메서드는 지정한 범위를 벗어나는 수가 종종 튀어나올 수 있다.
- rnd.nextInt()가 반환한 값을 Math,abs를 이용해 음수가 아닌 정수로 매핑하기 때문이다.
- 자바 7부터는 Random을 사용하지 않고, ThreadLocalRandom을 사용하도록 하자, (성능이 더 좋음)
- 이러한 경우에는, 표준라이브러리를 사용하도록 하자.
표준 라이브러리의 이점
- 표준 라이브러리를 사용하면 그 코드를 작성한 전문가의 지식과 여러분보다 앞서 사용한 다른 프로그래머들의 경험을 활용할 수 있다.
- 핵심적인 일과 크게 관련없는 문제를 해결하느라 시간을 허비하지 않아도 된다.
- 성능이 지속해서 개선된다.
- 기능이 점점 많아진다.
- 표준 라이브러리를 이용해 작성한 코드는 다른 사람들에게 익숙한 코드가 된다.
정리
- 특별한 나만의 기능이 아니라면, 그 기능이 구현된 라이브러리를 사용하도록 하자.
- 일반적으로 라이브러리는 직접 작성한 것보다 품질이 좋고, 유지보수가 계속 된다.
반응형