서드파티 라이브러리 (Third-party Libraries)¶
타사 라이브러리를 사용하기로 선택한 경우 주변 코드와 일관성을 유지하세요.
타사 라이브러리는 주로 코드와 동일한 저장소에서 개발되지 않은 라이브러리입니다.
- 고품질 타사 라이브러리를 재사용하면 기능이 중복되는 막대한 양의 작업을 피할 수 있습니다.
-
일부 타사 라이브러리는 문제 영역에서 너무 잘 확립되어 있으므로 이를 피하면 실제로 코드를 읽기가 더 어려워집니다.
-
타사 라이브러리는 우리와 다른 프로그래밍 방식을 가질 수 있습니다. 어떤 경우에는 이것이 "바이러스성"이 되어 라이브러리를 사용하는 코드가 우리의 스타일과 프로그래밍 방식을 따르기가 더 어려워질 수 있습니다.
- 타사 라이브러리는 라이센스 준수, 취약점 모니터링 및 패치, 업스트림의 주요 변경 사항 처리 등 많은 숨겨진 지원 부담을 짊어질 수 있습니다.
특정 문제를 해결하기 위해 라이브러리를 선택할 때 먼저 코드베이스에서 해당 종류의 문제에 일반적으로 사용하는 라이브러리가 이미 있는지 확인하십시오. 그렇다면 사용하십시오. 그렇지 않은 경우 대략 우선순위가 낮은 순서대로 다음 소스의 라이브러리를 선호합니다.
- Abseil
- C++ 표준 라이브러리(여기서 금지한 내용 제외)
- 코드베이스의 기존 자사(first-party) 라이브러리
- 서드파티 라이브러리
타사 라이브러리를 사용하기로 선택한 경우 타사 코드에 대한 코드베이스 정책을 따르십시오.
이해하기 쉽게 설명하기¶
핵심: 우선순위에 따라 고르고, 주변과 일관되게¶
좋은 서드파티 라이브러리를 재사용하면 중복 작업을 피할 수 있지만, 다른 프로그래밍 스타일이 "전염"되거나 라이선스·보안·업스트림 변경 같은 숨은 유지보수 부담이 따릅니다.
선택 우선순위¶
문제를 풀 라이브러리를 고를 때, 먼저 코드베이스에 이미 쓰는 것이 있으면 그것을 쓰세요. 없으면 대략 다음 순서로 선호합니다.
- Abseil
- C++ 표준 라이브러리 (이 가이드에서 금지한 것 제외)
- 코드베이스의 기존 자사(first-party) 라이브러리
- 서드파티 라이브러리
서드파티를 쓰기로 했다면 코드베이스의 서드파티 정책을 따르고, 주변 코드와 일관성을 유지하세요.