소프트웨어 개발문화 Git-Hub의 Social Coding

0
3772
  • 깃허브와 게릿의 가치

소프트웨어 오픈소스 공개가 가장 활발하게 이루어지는 곳은 깃허브이다. 이를 중심으로 거대한 소프트웨어 개발자 커뮤니티가 형성되었다. 애플, 구글, 삼성전자 등 글로벌 ICT 기업들은 소스코드 공개장소로 깃허브를 선택한다. 가장 최근에는 중국 검색엔진 업체 바이두가 딥러닝 소프트웨어 ‘패들패들’을 깃허브에 공개하고 발표하였다. 이들의 목적은 소셜코딩을 통해 더 나은 품질과 아이디어를 얻기 위함이다.

깃허브1

먼저 깃허브 오픈소스공개가 왜 소프트웨어 개발자들에게 각광을 받고 있는지 살펴보자. 깃허브가 오픈소스 성지가 될 수 있었던 비결은 크게 세가지로 말할 수 있다.

  1. 집단지성의 힘이다. 개발자들 사이에서 오래 전 리눅스에서부터 시작된 오픈소스 운동의 시작은 집단지성에서 비롯되었다. 프로젝트간 공동의 인식을 촉진하는 사회적 요소들을 제공함으로써 자발적 참여를 이끌고 있다.
  2. 웹 기반으로 참여가 쉽고, 무료 호스팅이다. 실제 깃허브에 들어가서 오픈소스 프로젝트에 참여하는 과정을 거쳐보면 누구나 쉽게 사용할 수 있다는 것을 알 수 있다. 직접 저장소를 만들고 오픈소스 프로젝트를 만들어 등록하는 방법과, 포크기능을 이용하여 이미 진행되고 있는 오픈소스 프로젝트를 내 저장소에 끌어와 참여하는 방식이다.
  3. 소프트웨어 개발자 지향적이다. 실제로 깃허브는 개발 프로세스에 인력을 집중하고 투자 하고 있다. 소프트웨어 개발자가 가장 편리하게 사용할 수 있도록 인터페이스를 제공한다.

소셜코딩 관점에서 또 주목할 것은 깃을 기반으로한 코드리뷰 툴인 게릿이다. 웹브라우저를 통해 다른 사람이 변경한 자신의 소스코드 내역을 확인하고, 변경을 허락하거나 거절하는 방식이다. 오픈 코드리뷰인 게릿이 소프트웨어 개발에 주는 가치는 다양하다.

  1. 역량을 증진시킨다. 본인과 다른 생각을 가진 개발자들에게 리뷰 코멘트를 주고 받으며, 개인 역량 향상과, 협업능력을 증대시킨다. 또한 이름있는 개발자의 코드를 쉽게 볼 수 있고, 더불어 개발할 수 있는 것은 실력을 쌓기 더할 나위 없는 환경을 제공한다고 할 수 있다.
  2. 자신의 포트폴리오가 된다. 최근 실리콘밸리 ICT기업의 채용에서 소셜코딩 관련 깃허브 계정과, 스택오버플로우 계정을 요구한다. 스택오버플로우는 개발자용 지식인 웹사이트이다. 소셜코딩이 소프트웨어 개발자의 포트폴리오가 되고 실제 리쿠르팅으로 이어지면서 이제는 선택이 아니라 필수적인 요소가 되어가고 있다.
  3. 불량이 감소한다. 본인이 작성한 코드를 복수의 사람들이 검증하는 것은 불량률을 줄이는데 도움이 되고 코드의 가독성도 좋아질 수 있다.

깃허브가 제공하는 소셜코딩 가치의 원천을 프로젝트 기능적 요소에서 찾아볼 수 있다. 소프트웨어 개발자용 SNS라고 불릴 만큼 기능적 요소가 우리가 많이 사용하는 SNS와 흡사하다.

- Watch: 원하는 프로젝트의 알림.

- Follow: 원하는 개발자 정보와 알림. 

- Fork: 특정 프로세스의 소스코드를 본인계정으로 가져와서 코드추가변경.

- Issue: 원하는 프로젝트의 자유토론방.

- Pull Request: 수정한 코드나 아이디어를 원래 주인에게 받아달라고 요청.

- Commit: 외부참여자를 의미.

- Contributor: 프로젝트에 공헌한 참여자의 수

깃허브2

<개발자들의 커뮤니케이션을 강조하는 깃허브> 출처: GitHub

  • 국내 코드리뷰 현황은?

그렇다면 국내 ICT기업 중 공개하기 힘든 상품화 과제들의 코드리뷰는 어떻게 하고 있을까? 기술 유출의 위험 때문에 철저한 보안 속에서 대부분이 상용코드리뷰를 통해 코드리뷰를 수행 중이다.

게다가 국내 대부분의 기업은 사내라 할지라도 프로젝트가 다른 경우 서로의 소스코드를 공개하는 일이 드물다. 보통 코드리뷰는 접근 권한 승인을 통해 제한적으로 공유한다.

문화적으로 자신이 작성한 코드에 대한 방어적인 태도와, 상사가 커밋한 코드를 판단하고 블레임하는 것이 익숙하지 않다. 또한 개발일정은 촉박하여 리뷰 할 수 있는 물리적 제약이 존재한다. 이러한 상황이지만 코드품질을 높이기 위해서는 소셜코딩 문화를 사내에 정착시키는 것을 권고한다.

일례로 구글이나 넥플릭스의 경우, 사내전체 구성원간 모든 소스코드를 공유하고 이를 통해 시너지 효과를 얻는다. 국내기업도 사내에서 만큼은 ‘In-House Social Coding’을 제도적으로 지원해서 코드품질을 높여야 한다.

현재 ICT기업의 개발자 채용에서 중요하게 보는 항목이 소프트웨어 알고리즘 평가이다. 이는 채용과 승진에 영향을 주는 제도로 자리잡았는데 앞으로는 ‘Social Coding Index’(소셜코딩지수)를 정량화하여 평가하는 방식이 도입될것이라고 본다.

가령 게릿처럼 코드리뷰율, 팔로우수, 좋아요수등으로 등급을 매겨 이름있는 개발자는 확연하게 구분되듯이 말이다.

1

  • 소셜 코딩의 사회적 파급효과

소셜코딩 문화가 사회에 미치는 파급효과도 크다. 미국백악관 2016년 예산안을 깃허브에 공개하였고, 서울시도 500만 건의 주요 행정정보 리스트를 공개하는 등 공공데이터에 대한 접근성과 활용성을 높이기 위한 노력이 엿보인다.

정부가 추진하고 있는 공공데이터 개방 정책을 들여다 보면 소셜코딩 문화의 긍정적인 효과를 기대하고 있다는 사실을 알수있다.

실제로 각 자치구와 공공기관에서 공공데이터를 활용한 공모를 유례없이 쏟아내고 있다. 소셜코딩의 바람이 사회 전체적으로 파급효과를 가져올 수 있는 문화흐름이 되어가고 있는 것이다.

마지막으로 개발자들에게 ‘Be Social’이라는 메시지를 전하면 이 글을 마친다.