9장_아이템59 - ririkat/effective-java GitHub Wiki
1️⃣ 앞서 사용한 다른 프로그래머들의 경험 활용
- 표준 라이브러리를 사용하면 그 코드를 작성한 전문가의 지식과 여러분보다 앞서 사용한 다른 프로그래머들의 경험을 활용할 수 있다.
2️⃣ 시간 허비를 줄여줌
- 프로그래머들은 하부 공사를 하기보다는 어플리케이션 기능 개발에 집중하고 싶어 한다.
- 표준 라이브러리를 사용하면 핵심적인 일과 크게 관련 없는 문제를 해결하느라 시간을 허비하지 않아도 된다.
3️⃣ 성능 지속적 개선
- 따로 노력하지 않아도 성능이 지속해서 개선된다.
- 사용자가 많고, 업계 표준 벤치마크를 사용해 성능을 확인하기 위해 표준 라이브러리 제작자들은 더 나은 방법을 꾸준히 모색할 수밖에 없다. 자바 플랫폼 라이브러리의 많은 부분이 수 년에 걸쳐 지속해서 다시 작성되며, 때론 성능이 극적으로 개선되기도 한다.
4️⃣ 기능이 점점 많아진다.
- 라이브러리에 부족한 부분이 있다면 개발자 커뮤니티에서 이야기가 나오고 논의된 후 다음 릴리즈에 해당 기능이 추가되곤 한다.
5️⃣ 여러분이 작성한 코드가 많은 사람에게 낯익은 코드가 된다.
- 자연스럽게 다른 개발자들이 더 읽기 좋고, 유지보수하기 좋고, 재활용하기 쉬운 코드가 된다.
이상의 이점들에 비춰볼 때 표준 라이브러리의 기능을 사용하는 것이 좋아 보이지만, 실상은 많은 프로그래머가 직접 구현해 쓰고 있다. 왜 그럴까? 아마도 라이브러리에 그런 기능이 있는지 모르기 때문일 것이다. 메이저 릴리즈마다 주목할 만한 수많은 기능이 라이브러리에 추가된다. 자바는 메이저 릴리즈마다 새로운 기능을 설명하는 웹 페이지를 공시하는데, 한번 쯤 읽어볼 만 하다. 라이브러리가 너무 방대하여 모든 API 문서를 공부하기는 벅차겠지만 자바 프로그래머라면 적어도
- java.lang
- ava.util
- java.io 와 그 하위 패키지들에는 익숙해져야 한다.
- 컬렉션 프레임워크
- 스트림 라이브러리(아이템 45 ~ 48)
- java.util.concurrent 동시성 기능
- 멀티 스레드 프로그래밍 작업을 단순화해주는 고수준의 편의 기능
- 라이브러리 코드는 개발자 각자가 작성하는 것보다 주목을 훨씬 많이 받으므로 코드 품질도 그만큼 높아진다.
- 우선은 라이브러리를 사용하려 시도해보자. 어떤 영역의 기능을 제공하는지 살펴보고, 여러분이 원하는 기능이 아니라 판단되면 대안을 사용하자.
- 자바 표준 라이브러리에서 원하는 기능을 찾지 못하면, 그 다음 선택지는 고품질의 서드파티 라이브러리가 될 것이다.
- 그 다음 선택지가 직접 구현이다.
- 이펙티브 자바 3/E