java-squid/effective-java

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

Closed this issue · 5 comments

[아이템 59] 라이브러리를 익히고 사용하라
  • 라이브러리를 이해하고, 적극적으로 이용하는 건 코드 품질을 높이는 데 좋은 방법 인 것 같습니다 (특히 Java 관련)
  • 다만 서드파티의 사용의 경우 저도 다른 분들께 여쭤본 적이 있는데요,
    • 의존성 문제도 있고
    • 필요한 기능을 제공하는 라이브러리를 먼저 찾기보단,
    • 기본적으로 제공되는 라이브러리를 통해, 직접 만들어 보는 게 자신의 실력을 기르는 데 좀 더 도움이 되는 것 같다는 조언을 받았습니다.
  • Guava나 Apache Common lang같은 대표적인 서드 파티는 사용해도 괜찮은 것 같지만, 무분별하게 사용하는 건 지양해야할 것 같다는 느낌이 드네요 ㅎㅎ
  • 라이브러리를 이해하고, 적극적으로 이용하는 건 코드 품질을 높이는 데 좋은 방법 인 것 같습니다 (특히 Java 관련)

  • 다만 서드파티의 사용의 경우 저도 다른 분들께 여쭤본 적이 있는데요,

    • 의존성 문제도 있고
    • 필요한 기능을 제공하는 라이브러리를 먼저 찾기보단,
    • 기본적으로 제공되는 라이브러리를 통해, 직접 만들어 보는 게 자신의 실력을 기르는 데 좀 더 도움이 되는 것 같다는 조언을 받았습니다.
  • Guava나 Apache Common lang같은 대표적인 서드 파티는 사용해도 괜찮은 것 같지만, 무분별하게 사용하는 건 지양해야할 것 같다는 느낌이 드네요 ㅎㅎ

저도 한님의 말씀에 어느정도 와닿는 것이 있네요. 기본적인 라이브러리를 만들어보고, 타 라이브러리와 비교해보면서 실력을 발전시키는것도 도움이 될것 같네요. 급하게 반영하거나, 정말 만드는 시간대비 가치가 떨어지는 것이라면 서드파티 라이브러리를 사용해도 좋을 것 같네요.

이번 챕터를 요약하면 "바퀴를 다시 발명하지 말자." 가 핵심 같네요.

이미 서드 파티 라이브러리를 사용하는 것에 대해서 여러 의논이 오갔는데,
여러분들은 서드파티 라이브러리를 선택하는 기준이 보통 어떻게 되시나요?

저는 보통

  1. 얼마나 많은 사람들이 최근 해당 라이브러리를 다운받았는지,
  2. 라이브러리의 유지보수가 최근까지 활발하게 이루어지고 있는지

위 의 2가지를 기준으로 서드파티 라이브러리를 신뢰할지 고민합니다.
회사가 아무리 유명하고, 많은 사람들이 사용하고 있더라도,
마지막으로 서드 파티 라이브러리의 프로젝트의 github 타일이 초록색인 시점이 1년 이상이면 사용하기를 꺼리게 되는 것 같아요.
(npm 라이브러리 기준으로 이야기합니다. 자바 쪽에서는 npm 같은 중앙 집권적인 패키지 매니저가 없어서 서드 파티 라이브러리를 어떻게 선택하는지 모르겠네요.)

시간 라이브러리에 대한 좋은 글입니다. 자바7에서 자바8로 넘어갈 때 Joda-Time을 적용했는데 그 이전에는 어떤 라이브러리를 써서 문제를 해결했는가에 대한 글입니다.
코드스쿼드에서 네이버를 만든 자바 기술? 이었나 그 책에서 봤었는데 시간 라이브러리에 대한 설명이 있어서 가져왔습니다.
https://d2.naver.com/helloworld/645609

@ghojeong
자바 진영에서는 보통 Maven Central에서 찾아서 씁니다.