GSoC 2017 끝!



여름동안의 Google Summer Of Code 2017를 성공적으로 끝마쳤다. Final Evaluation를 통과하고, 멘토님에게도 칭찬을 들어서 기분이 좋다.
아무튼 GSoC를 계기로 오픈소스에 직접 기여하면서 C++실력도 상당히 많이 늘게 되어서 뿌듯하다.
역시 실력을 키우는데에는 오픈소스 코드를 보는 게 가장 빠르고 효율적인 것 같다.
아래는 내가 GSoC에서 한 활동에 대한 Abstract이다.
(자세한 건 https://summerofcode.withgoogle.com/projects/#5151083935563776 참고)
HPX is “The C++ Standards Library for Concurrency and Parallelism”. So, implementing C++17 parallelism like N4409 is very important. Most of parallel algorithms are already implemented. But, still some algorithms have not been implemented. My main objective is implementing as many as possible of the remaining parallel algorithms and adapt them to Ranges TS and add container versions of them. And I add unit tests and benchmark codes for them. Associated with mainly parallel algorithms, I also catch and suggest many issues and resolve them.
 비록, GSoC는 끝났지만 계속에서 HPX 오픈소스에서 활동을 하며 contribution을 이어나갈 생각이다. 오픈소스 활동을 통해 얻을 수 있는게 많기 때문이다. C++ 차세대 표준을 공부하고 구현하면서 C++ 실력을 상당히 많이 키울 수 있고, 오랜 기간동안 이어온 프로젝트의 빌드시스템, 프로젝트관리, 코드베이스 분석등을 통해 배울 수 있는 게 많다.
    사실 GSoC가 나에게 도움을 준 건 사실상 금전적인 부분이 거의 다고, 사실 오픈소스 활동은 나 혼자 스스로 했다고 볼 수 있다. 그럼에도 불구하고, GSoC에 참여하기 이전에는 오픈소스 프로젝트에 선뜻 뛰어들기가 쉽지 않았다. 그 이유는 강제성이 전혀 부여되지 않고, 특별한 계기가 없었기 때문에 계속 참여를 미루게 되었기 때문이다. GSoC는 1차,2차,최종 평가를 통해 나에게 약간의 강제성을 부여했고, '계기'를 만들어 주었다. 이 것들이 나를 시작하게 만들었고, 앞으로도 계속 꾸준히 오픈소스 개발에 참여하면서 재미를 볼 수 있을 것 같다. 아무튼 여름동안의 GSoC는 정말 좋은 경험이었고, 이 글을 볼 대학생(대학원생)분들께 꼭 이 활동을 추천하고 싶다. (취업할 때도 도움이 많이 되는걸로 안다.)

* GSoC를 지원하고 싶은 사람들을 위한 TIP *
    GSoC는 매년 3월쯤에 모집을 한다. 실력에 대해서는 생각보다 너무 걱정을 하지 않아도 된다. 왜냐면, 애초에 지원할 때 프로젝트를 자기가 할 수 있는 쉬운 걸로 제출하면 되기 때문이다. 합격여부에 있어서 중요한 건, 이 사람의 실력 자체가 아니라 "자기가 제안한 프로젝트에 대해 얼마나 이해하고 있고 이 것을 성공적으로 수행할 수 있는가"이다. 그래서, 실력이 부족하면 쉬운 프로젝트를 제안하면 되기 때문에 일단 도전해보는 것을 추천한다. 대신에, SW개발과 오픈소스에 대해 열정과 끈기가 없으면 제대로 된 proposal를 작성하지 못하고 포기하게 될 것이다. GSoC가 경쟁률이 굉장히 쌔긴하지만, 제대로 맘 먹고 proposal를 작성한다면, 상당히 높은 확률로 합격할 수 있을 것으로 생각한다. 총 5개 오픈소스에 대해 지원서를 제출할 수 있는데, 괜히 문어발을 뻗는 것보다 그냥 한 개라도 제대로 쓰는 것을 추천한다. GSoC는 회사 취직과는 달리 '이전에 해온 것' 보다 '앞으로 할 것'을 중요시 본다. 자신의 프로젝트 경험이나 이력사항보다는 자신이 지원할 오픈소스에 대해 공부하고 분석한 다음 그걸 바탕으로 자기가 할 수 있는 프로젝트를 상세하게 작성하여 proposal을 제출하는 것이 중요하다고 생각한다.

댓글