콘텐츠로 이동

서드파티 라이브러리 (Third-party Libraries)

서드파티 라이브러리를 쓰기로 할 때는 주변 코드와 일관되게 하세요.

정의:

서드파티 라이브러리란 여러분의 코드와 같은 저장소에서 주로 개발되지 않는 라이브러리를 말합니다.

장점:

  • 품질 좋은 서드파티 라이브러리를 재사용하면 그 기능을 다시 만드는 막대한 작업을 피할 수 있습니다.
  • 어떤 서드파티 라이브러리는 해당 문제 영역에서 워낙 자리를 잡고 있어서, 오히려 그것을 피하면 코드를 읽기가 더 어려워집니다.

단점:

  • 서드파티 라이브러리는 우리와 다른 프로그래밍 관행을 가질 수 있습니다. 어떤 경우에는 그것이 "전염성"을 띠어, 그 라이브러리를 쓰는 코드가 우리의 스타일과 프로그래밍 관행을 따르기 어려워집니다.
  • 서드파티 라이브러리에는 라이선스 준수, 취약점 감시와 패치, 업스트림의 호환성 깨는 변경 대응처럼 눈에 잘 띄지 않는 유지 부담이 여럿 딸려 올 수 있습니다.

결정:

특정 문제를 풀 라이브러리를 고를 때는, 먼저 여러분의 코드베이스가 그런 종류의 문제에 이미 흔히 쓰는 라이브러리가 있는지 확인하세요. 있다면 그것을 쓰세요. 없다면 대략 다음 순서로, 우선순위가 높은 것부터 선호하세요.

  • Abseil
  • C++ 표준 라이브러리(여기에서 다룬 것은 제외)
  • 코드베이스에 이미 있는 자사(first-party) 라이브러리
  • 서드파티 라이브러리

서드파티 라이브러리를 쓰기로 했다면, 서드파티 코드에 대한 여러분 코드베이스의 정책을 반드시 따르세요.


옮긴이 풀이

핵심: 우선순위에 따라 고르고, 주변과 일관되게

좋은 서드파티 라이브러리를 재사용하면 중복 작업을 피할 수 있지만, 다른 프로그래밍 스타일이 "전염"되거나 라이선스·보안·업스트림 변경 같은 숨은 유지보수 부담이 따릅니다.

선택 우선순위

문제를 풀 라이브러리를 고를 때, 먼저 코드베이스에 이미 쓰는 것이 있으면 그것을 쓰세요. 없으면 대략 다음 순서로, 위쪽을 더 선호합니다.

  1. Abseil
  2. C++ 표준 라이브러리 (이 가이드에서 금지한 것 제외)
  3. 코드베이스의 기존 자사(first-party) 라이브러리
  4. 서드파티 라이브러리

서드파티를 쓰기로 했다면 코드베이스의 서드파티 정책을 따르고, 주변 코드와 일관성을 유지하세요.