서드파티 라이브러리 (Third-party Libraries)¶
서드파티 라이브러리를 쓰기로 할 때는 주변 코드와 일관되게 하세요.
정의:
서드파티 라이브러리란 여러분의 코드와 같은 저장소에서 주로 개발되지 않는 라이브러리를 말합니다.
장점:
- 품질 좋은 서드파티 라이브러리를 재사용하면 그 기능을 다시 만드는 막대한 작업을 피할 수 있습니다.
- 어떤 서드파티 라이브러리는 해당 문제 영역에서 워낙 자리를 잡고 있어서, 오히려 그것을 피하면 코드를 읽기가 더 어려워집니다.
단점:
- 서드파티 라이브러리는 우리와 다른 프로그래밍 관행을 가질 수 있습니다. 어떤 경우에는 그것이 "전염성"을 띠어, 그 라이브러리를 쓰는 코드가 우리의 스타일과 프로그래밍 관행을 따르기 어려워집니다.
- 서드파티 라이브러리에는 라이선스 준수, 취약점 감시와 패치, 업스트림의 호환성 깨는 변경 대응처럼 눈에 잘 띄지 않는 유지 부담이 여럿 딸려 올 수 있습니다.
결정:
특정 문제를 풀 라이브러리를 고를 때는, 먼저 여러분의 코드베이스가 그런 종류의 문제에 이미 흔히 쓰는 라이브러리가 있는지 확인하세요. 있다면 그것을 쓰세요. 없다면 대략 다음 순서로, 우선순위가 높은 것부터 선호하세요.
서드파티 라이브러리를 쓰기로 했다면, 서드파티 코드에 대한 여러분 코드베이스의 정책을 반드시 따르세요.
옮긴이 풀이¶
핵심: 우선순위에 따라 고르고, 주변과 일관되게¶
좋은 서드파티 라이브러리를 재사용하면 중복 작업을 피할 수 있지만, 다른 프로그래밍 스타일이 "전염"되거나 라이선스·보안·업스트림 변경 같은 숨은 유지보수 부담이 따릅니다.
선택 우선순위¶
문제를 풀 라이브러리를 고를 때, 먼저 코드베이스에 이미 쓰는 것이 있으면 그것을 쓰세요. 없으면 대략 다음 순서로, 위쪽을 더 선호합니다.
- Abseil
- C++ 표준 라이브러리 (이 가이드에서 금지한 것 제외)
- 코드베이스의 기존 자사(first-party) 라이브러리
- 서드파티 라이브러리
서드파티를 쓰기로 했다면 코드베이스의 서드파티 정책을 따르고, 주변 코드와 일관성을 유지하세요.