“당신의 소스코드를 공개하세요.”

“당신의 소스코드를 공개하세요.”

“당신의 Github를 공개하세요.”

취업 시즌때 한번 싹 지나고 나면 한번씩 나오는 이야기 중 하나 같다. 지원자가 github 주소를 줘서 확인했는데 뭐 제대로 된 거 하나도 없는 주소라서 깠고, 남의 소스 포크해서 자기 껄로 채워넣기 바빴다고 해서 까고….

포트폴리오 달라고 하면 문서만 달랑 주고 소스코드 안줬다고 소스코드 달라고 난리치고 하는…

당연히 이번 취업시즌때도 엄청 나온 이야기라고 한다. 그러다보니 뭐 이런 저런 사고 터지고 하는 일들 허다했을 거다.

우리가 흔히 아는 그룹 기업에서도 저렇게 소스코드 내놓으라 뭐라 하는지는 모르겠지만, IT만을 전문적으로 하는 회사에서 개발자 뽑을 때에 저런 소리 꼭 나온다. 작성한 소스코드를 보여달라거나 github를 보여달라거나.. 어느쪽이던 그 사람의 소스코드를 보고 어떤 실력을 가지고 있는지 판단하기 위해서 이용하는 것이다. 제일 확실한 방법이다.

학생들과 프로그래머 지원자들은 잘 모르겠지만, 특히 신입일수록… 알고리즘 테스트나 코딩 테스트를 하면 회사쪽에서는 95%의 쭉쩡이 개발자들을 걸러낼 수 있다. (이들을 가지고 개발자라고도 하지도 않지만… 좋게 불러줘야 코더, 나쁘게 부르면 코드몽키(영미권에서 단순한 수준의 코드만 양산해내는 개발자를 뜻하는 용어)라고 한다. 그러나 둘 다 같은 뜻이지만…) 그 다음으로 쭉정이를 걸러낼 수 있는 것이 바로 소스코드를 직접 보는 것이다.

근데 여기서 github를 보는 것과 그냥 소스를 보는 것에는 큰 차이가 있다. 이에 접근하기 위한 과정을 알 수 있다는 점에서는 버전관리된 github가 훨씬 더 유용하다. 개발을 하면서 특정 디자인 패턴을 이용해서 개발을 하였는데, 자기가 쓴 디자인 패턴이 어떤 패턴인지도 모르고 그냥 막 갖다쓴 거랑 제대로 알고 쓴 거랑의 차이를 알 수 있는 것이 바로 소스코드와 change log다. 어떤 과정을 이용했는지 잊어버리지 않기 위해서라도 변경 로그를 남기게 되어 있다. 근데 그런 부분이 빠져있다면? 게다가 주석조차 없다면? 아마 면접때 질문 던지면 바로 “모릅니다.” 크리티컬 뜰 꺼다.

자기 코드를 얼마나 소중히 작성하였는지도 여기서 알 수 있다. 그냥 막 짜는 개발자 치고, 버전 관리 잘 하는 개발자 없다. 대학원에서 조교를 할 때, 학부에 과제를 github로 제출하도록 해본 적이 있다. 제대로 알고 쓴 학생은 35명 중 6명이었다. 이 친구들은 원래 잘했고, git이 몰랐던 친구는 뭐 좀 제대로 찾아보면 금방 따라할 수 있는 내용 가지고 금방 따라해서 적용해봤다. 이들은 앞으로도 잘할 친구들이다.

그 외에는 그냥 커밋 메시지에 0,1,2,.. 숫자로만 적은 친구도 있었고, 과제 제출 하루 전에 git 생성해서 첫 커밋하고는 오류 수정하는 데 두번째 커밋하고 올리고 땡하는 친구들도 많다. “그런 거 못들었어요.” 같은 친구가 C를 초과해서 받은 적은 없었으니 그런 부류는 제외하고… 학교다보니 그냥 “과제 제출”이라는 거에만 맞춰서 대충 구색 갖추고 해서 그런지 아니면 우리 교수 수업이 재미 없었는지는 몰라도 정말 대충하는 친구들이 많았다.

그리고 github가 하도 많은 양의 프로젝트들이 올라와서 그런지 뭔가 자기가 알고싶었던 것이나 자기가 과제에 참고하려고 이미 만들어진 프로젝트를 fork 하는 친구들 엄청 많다. 자기는 레포 하나 만들어서 뭐 하나 제대로 해본 건 없으면서 그런 식으로 남의 프로젝트 포크하는 건 대체…

프로젝트 포크를 하면 “내가 이 프로젝트의 현재 버전을 내 입맛대로 수정해서 쓰겠다”라는 의미다. 그러니 포크만 하고 아무것도 안한 프로젝트만 산더미처럼 쌓였다는 건 포크라는 걸 모르는 거다. 즐겨찾기 하듯 해봤는데 내 저장소로 복사되더라. 편하네? 같은 수준이다.

당신이 위에 적은 이런 저런 분류에 속하는 상황에서 당신의 소스, 당신의 github를 받은 기술 담당자는 무슨 생각이 들까?

그들은 다행이도 나머지 쭉정이 걸러 낸 거다.

만약 억울하다면? 당신이 평소에 어떤 맘으로 프로그래밍에 임했는지를, 어떠한 관심을 가진 프로젝트들을 해봤는지를 여실히 보여주는 걸 안했을 뿐이다.  그에 비할만한 걸 갖춰서 도전해봐라.

졸업논문 쓰는 와중에도 이런 이야기가 엄청 나와서 한번 적어봤다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.