Search

아이템59 : 라이브러리를 익히고 사용하라

 Random 클래스 관련 깨알 팁

자바 7부터 Random은 더 이상 사용하지 않는 것을 권장한다.
ThreadLocalRandom으로 대체하는 것을 권장한다.
보다 더 고품질의 무작위 수를 생성해준다.
속도도 더 빠르다.
포크-조인 풀이나 병렬 스트림에서는 SplittableRandom을 사용하라.

 표준 라이브러리를 사용하면 어떤 이점이 있을까?

 다른 프로그래머들의 경험을 활용할 수 있다

코드를 작성한 전문가의 지식과 나보다 앞서 사용한 다른 프로그래머들의 경험을 활용할 수 있다.

 시간 낭비를 줄일 수 있다

핵심적인 일과 크게 관련 없는 문제를 해결하느라 시간을 허비하지 않아도 된다.
애플리케이션 기능 개발에 집중할 수 있다.

 성능을 개선할 수 있다

따로 노력하지 않아도 성능이 지속해서 개선된다.
사용자가 많고, 업계 표준 벤치마크를 사용하여 성능을 확인하기 때문이다.
표준 라이브러리 제작자들은 더 나은 방법을 꾸준히 모색한다.

 많은 기능을 활용할 수 있다.

기능이 점점 많아진다.
라이브러리에 대해 부족한 부분은 커뮤니티를 통해 논의 후 다음 릴리스에 기능이 추가될 수 있다.

 읽기 좋고, 유지보수하기 좋다.

많은 사람들에게 낯익은 코드가 될 수 있다.
자연스럽게 다른 개발자들도 읽기 쉽고, 유지보수하기 쉽고, 재활용하기 쉬운 코드가 될 수 있다.

 라이브러리 기능 대신 왜 직접 구현할까?

라이브러리에 그런 기능이 있는지 모르는 것이 가장 크다.
메이저 릴리스마다 주목할 만한 수많은 기능이 라이브러리에 추가되고 있으므로 이를 확인하면 좋다.

 이것만은 알아두자!

자바 프로그래머라면 적어도 아래 목록에 대해 익숙해지자
java.lang, java.util, java.io와 그 하위 패키지들
컬렉션 프레임워크
스트림 라이브러리
java.util.concurrent 동시성 기능
해당 패키지를 알아두면 멀티스레드 프로그램 작업을 단순화해줄 수 있다.
고수준의 편의 기능은 물론 자신만의 고수준 개념을 직접 구현하게 도와주는 저수준 요소들도 제공

 어떻게 라이브러리를 활용할까?

1.
라이브러리를 사용하는 것을 시도하자.
원하는 기능이 아니면 대안을 사용하자.
2.
자바 표준 라이브러리에서 원하는 기능을 찾지 못하면, 고품질의 서드파티 라이브러리를 사용하자.
ex) 구글의 구아바
3.
다른 선택지가 없을 때, 직접 구현하자.

 핵심 요약

주요 라이브러리에 대해서 관심을 가지자.
바퀴를 재발명하지 말자.
코드를 작성하기 전에 같은 기능을 하는 라이브러리는 없는지 찾아보자.
나만의 프로세스를 만들자.
라이브러리의 코드는 내가 작성한 것보다 품질이 좋고, 꾸준히 개선될 수 있다.
주목을 훨씬 많이 받고 있기 때문이다.