개발자 관계

오픈소스 코드의 수명은 왜 1년밖에 안 될까?

2018-10-03
개발자 관계
ko

솔직히 말해, 고대 그리스의 시시포스가 2016년에 오픈소스 코드를 작성하는 개발자였다면, 그는 집에 온 것 같은 느낌을 받았을 것입니다. 유명한 시시포스의 형벌은 신화에서 전해져 내려오는데, 그는 거대한 바위를 산 위로 밀어 올려야 했고, 정상에 도달하면 그것이 굴러내리는 것을 지켜만 봐야 했으며, 이것이 영원히 반복되었습니다. 조용히, 전 세계의 개발자들도 지난 몇 년간 비슷한 형벌을 받고 있습니다. 그리고 바위는 계속 커지고 있습니다.

미국 의회도서관은 약 2400만 권의 다양한 유형의 도서를 보유하고 있습니다. 이것은 인류 역사상 창조된 인간 지식의 가장 큰 보고입니다.

2009년, GitHub가 설립되었습니다. 현재 3500만 개 이상의 소프트웨어 저장소 또는 정보 저장소를 보유하고 있으며, 수십 조 줄의 코드가 있습니다. 연구에 따르면 이 수치는 지수적으로 성장하여 약 14개월마다 두 배가 됩니다. 오픈소스는 의심할 여지 없이 오늘날 프로그래밍 기술의 최전선이며, 인간 지식의 가장 크고, 가장 강력하며, 가장 진보된 보고입니다.

그렇다면, 왜 90%-98%의 오픈소스 코드가 12개월 후에 버려질까요?

세부 사항에서 코드를 보다

먼저 놀라운 숫자를 살펴보겠습니다: 오늘 작성된 코드는 내년 이맘때 90% 이상이 다시는 사용되지 않을 것입니다.

그것들은 무효가 되고, 시대에 뒤떨어지며, 시간의 모래 속에 잊혀집니다. 2015년 조사에서 Stack Overflow는 각 개발자가 업무 외에 일주일에 평균 약 7시간을 프로그래밍하는 데 소비한다는 것을 발견했습니다. GitHub의 보고서는 1200만 명 이상의 사용자가 오픈소스 프로젝트에서 작업하고 있다고 지적했습니다. 수백만 명의 똑똑한 사람들이 수백만 시간의 작업을 했는데, 이것이 사람들에게 무시당하고 있습니다.

가장 미친 부분은 아무도 “왜?”라고 묻지 않는 것 같다는 점입니다. 왜 대다수의 오픈소스 코드가 묻히고 잊혀질까요? 왜 우리는 매일 같은 코드를 반복해서 작성하면서, 동시에 그 코드가 거의 확실히 오픈소스 플랫폼 어딘가에서 우리가 사용하기를 기다리고 있을까요?

이런 일이 발생하는 주요 이유는 사람들이 정보 저장소를 단순한 저장소로만 생각하기 때문입니다. 개발자들은 AngularJS, JQuery, React를 알지만, 10개 이상의 오픈소스 패키지를 아는 사람은 거의 없습니다. 이것이 미친 부분인데, 사람들이 전체 오픈소스 패키지를 알지 못하거나 사용하지 않기 때문에 그 안의 코드도 아무도 사용하지 않습니다. 2015년에 작성된 패키지는 한 사람에게 전체적으로 유용하지 않을 수 있지만, 필요한 기능이 포함되어 있을 수 있습니다. 가장 유용한 부분은 항상 전체 패키지가 아니라, 때로는 그 안의 코드 조각입니다.

예를 들어, 누군가 배열의 요소를 섞는 JavaScript 기능이나 임의의 문자열을 생성하는 다른 기능을 찾고 있다고 가정해 봅시다. 이러한 작은 코드 조각은 오픈소스 플랫폼에 수백 개의 동일한 것이 있습니다. 하지만 아무도 그것들의 존재를 모르고, 알더라도 어떻게 찾을지 모릅니다. 따라서 이러한 가치 있는 지식은 단지 얻기 어렵다는 이유로 버려지거나 잊혀집니다. 정말 말도 안 되는 일이며, 모든 사람에게 좋지 않습니다.

모든 코드를 정리하고 쉽게 찾을 수 있게 하기

그렇다면 이 엉망진창을 어떻게 해결할까요? 이 질문에 대답하는 것은 쉽지만, 실행하기는 어렵습니다. 세 가지를 해야 합니다:

  1. 기능 측면에서 모든 오픈소스 코드를 정리하고 상세하게 분류하기
  2. 이러한 다양한 코드의 실제 기능을 나타내는 모델 구축하기
  3. 이러한 코드 조각을 검색하고 찾기 쉬운 간단한 방법 만들기

이것이 우리가 Cocycles를 만든 이유입니다. Cocycles는 위의 모든 조건을 충족하며 계속 개선되고 있습니다. 그 알고리즘은 대량의 오픈소스 코드를 처리하고, 각기 다른 코드의 기능을 읽고 이해할 수 있습니다. 그런 다음 사람들이 간단한 영어를 사용하여 코드를 검색할 수 있게 합니다.

예를 들어, 사용자는 “shuffle array” 또는 “create random string”을 입력하기만 하면, 다양한 오픈소스 실행, 문서, 사용 예시 등이 제공됩니다. 모든 종속성과 하위 기능이 포함된 유용한 코드 조각도 생성하여 제공합니다.

몇 년 후 인공지능 소프트웨어는 이것을 사용하여 새로운 코드를 찾고 학습할 수 있을 것이며, 코드를 계속 개선하고 변경할 수 있을 것입니다.

전재请注明:개발자 관계 »


Similar Posts

Content icon
Content