오픈소스 선택 시 고려사항

유사한 기능을 제공하는 여러 오픈소스 중 어느 것을 선택해야 하나?

필요한 기능을 구현하기 위해 오픈소스를 사용하기로 했다면 유사한 기능을 제공하는 여러 오픈소스 프로젝트 중 어느 오픈소스를 선택하는게 좋을까? 여러 측면의 고려해야 할 포인트를 알아보자.

품질

기능, 성능, 호환성 등 오픈소스의 품질은 오픈소스를 선택하는데 가장 중요한 요소이다. GitHub에서 호스팅하는 프로젝트라면 Star수, Fork수로 오픈소스의 완성도를 가늠할 수 있다. 오픈소스를 사용하려는 기술 조직은 당연히 충분한 기능과 성능 검증을 수행 한 후 제품/서비스에 도입해야 한다.

커뮤니티

오픈소스가 얼마나 많은 사용자를 보유하고 있는지, Issue 관리는 이루어지고 있는지, 지속적으로 업데이트를 하는지 등 커뮤니티 활성화 여부도 오픈소스 선택 시 고려해야 할 사항이다. 커뮤니티 활동이 수년전에 정지된 오픈소스보다는 현재에도 활발히 활동하는 커뮤니티를 보유한 오픈소스를 선택하는게 유리함은 당연한다.

문서화

오픈소스를 적절히 도입하고 유지보수하기 위해서는 프로젝트가 얼마나 문서를 충실하게 제공하는지도 확인해야 할 포인트다. 문서화가 잘 된 프로젝트의 산출물은 기업이 도입하는데 수월하다. 또 기업이 개선한 패치를 다시 프로젝트에 기여하는 것도 가능하게 한다.

보안 취약점

오픈소스 보안 취약점이 알려진 오픈소스는 사용해서는 안된다. 보안 취약점이 발견된 오픈소스의 버전은 CVE와 같은 데이터베이스에서 관리된다. 사용하려는 오픈소스의 버전이 보안 취약점이 있는지 확인 후 사용해야 한다.

라이선스

오픈소스 라이선스는 소프트웨어를 누구나 자유롭게 사용할 수 있는 권리를 부여하는 허가증이다. 하지만, 대부분의 오픈소스 라이선스는 오픈소스를 재배포 시 준수해야 할 의무사항을 요구한다. 예를 들어, 고지 의무, 소스 코드 공개 의무 등이다. 대표적인 오픈소스 라이선스인 GPL-2.0은 이와 결합하는 소프트웨어의 소스 코드까지 공개할 것을 요구한다. 따라서, 오픈소스를 선택할 때는 라이선스가 무엇인지, 라이선스를 준수할 수 있는 환경인지 반드시 미리 확인해야 한다. 이를 위한 오픈소스 컴플라이언스 활동을 아래에서 설명한다.



Last modified February 14, 2021: renewal (50136428)