본문 바로가기
데이터 공부 TIP

비전공자 Google Summer of Code 2024 합격 후기 및 공략 방법 공유 #1

by Queen2 2024. 7. 1.
728x90
반응형

안녕하세요, 오랜만에 돌아온 주인장입니다 ㅎㅎ 최근 학교와 프로젝트로 너무너무 바빠서 오랜만에 글을 올립니다.

이번에 제가 오랫동안 고대하던 Google Summer of Code에 합격했다는 좋은 소식과 함께 어떻게 합격할 수 있었는지 나름의 팁을 공유하려 합니다. 이 프로그램에 관심이 있거나 지원예정인 분들께 도움이 되길 바랍니다.

 

Google Summer of Code 2024 

이 프로그램은 구글에서 20년째 진행하고 있는 글로벌 프로그램으로 학생들이 관계자들과 멘토링 방식으로 협업하며 오픈소스에 기여할 수 있는 특별한 기회를 제공합니다. 아무래도 구글 주관 프로그램이라는 타이틀을 달기 때문에, 전 세계적으로 경쟁도 치열하고 취업에 유리해지는 장점이 있어서 컴공과 학생이라면 한 번쯤 지원해 보는 프로그램이기도 합니다. 프로젝트는 난이도에 따라서 약 8-12주 정도 진행되고 중간점검, 멘토 미팅 등 체계적인 스케줄을 가지고 있습니다. 나라마다 편차는 있지만 인턴 정도의 소정의 프로그램 활동비도 지급합니다.

 

저는 우연히 머신러닝 엔지니어로 일하는 영국 친구가 취업이나 자기개발 방면에서 유명한 프로그램이라고 강력추천 했어서 작년부터 지원서 오픈 시기를 기다리고 있었는데요. 자신이 스스로 프로젝트 제안서를 쓰고 멘토들에게 피드백을 받으면서 결과물을 만들어 간다는 자기 주도적인 면이 매력적이어서 정말 하고 싶었었습니다 ㅜㅠ 지원시기를 미리 달력에 표시해두고 프로젝트 업데이트가 되는 날까지 하루에도 몇 번씩 사이트를 들락날락거렸었네요. 

 

다만, 이 프로그램은 글로벌 프로그램인만큼 합격률도 낮고 제출할 제안서를 꼼꼼히 써야 한다는 악명도 높은 편인데요. 저는 어떻게 접근을 했고 제안서를 썼는지 정리해 보겠습니다. (제 Medium 블로그에 쓴 걸 한국어로 번역한 거여서 어투가 좀 어색해도 이해해 주시길 바랍니다)

 

구글써머오브코드 합격

 

GSoC 프로그램 지원 꿀팁 #1

 

먼저 자신의 관심사에 맞는 주제를 찾아보세요.

아무리 강조해도 지나치지 않은 가장 기본적이고 중요한 단계입니다. 지원할 수 있는 프로젝트의 종류는 웹 개발, 프런트, 백, 아키텍처, 라이브러리 설계 등 매우 다양하며 각 단체마다 일반적으로 5-10개의 프로젝트 아이디어가 나열되어 있습니다. 따라서 최소 30~40개의 주제를 읽으면서 프로젝트 주제에 대한 검색 범위를 철저히 좁혀야 합니다. 이 주제 탐색과정이 생각보다 시간이 많이 걸리기 때문에, 프로젝트가 공개되는 날부터 최소 1주일은 시간을 내서 프로젝트 개요를 읽어보세요. 

 

GSoC 규정에 따라 지원 기간 동안 최대 3개의 제안서를 제출할 수 있기 때문에, 읽으면서 작업하고 싶은 프로젝트 Top3을 나열해 보세요. 프로젝트에 대해 궁금한 점이 있으면 주저하지 말고 커뮤니티에 질문하거나 참여하여 문제를 제기하세요. 저는 프로젝트를 지원하기 전에 그 단체의 Discord에 들어가서, 다른 지원자들은 어떤 질문을 하는지, 그 단체는 어떤 방향성을 원하는지 틈틈이 알아보려고 했습니다.


- 개인적인 관심사: 제 흥미를 자극하는 분야인가?
- 프로젝트 경험: 내가 일해 온 분야와 관련이 있는가?
- 실현 가능성: 프로젝트 일정 내에 완료할 수 있는가?

이렇게 저는 프로젝트를 걸러내기 위해 저만의 기준을 만들고 접근을 했었는데요. 이것도 하고 싶고, 저것도 하고 싶어서 고민이 가득했는데 기준을 세우고 나니까 훨씬 접근이 편리해질 수 있었어요. 


둘째, 빠른 PDCA(계획, 실행, 점검, 실행)

지원하는 프로젝트에 따라 자세한 제안서와 함께 테스트 프로젝트의 깃허브 URL을 제출하라고 요구할 수도 있습니다. 최근에는 지원자가 제안서만 번지르르하게 쓰는 게 아닌, 프로그래밍 능력이 좋은지 보기 위해서 테스트 프로젝트 과제를 내는 추세인 것 같아요. 하지만, 이렇게 테스트 프로젝트를 요구하는 경우에는 할 일이 2배는 많아지게 됩니다. 제안서도 써야 하는데 멘토에게 보여줄 수 있는 완성도 있는 코드를 짜는 건 정말 시간이 많이 걸리겠죠 ㅜㅠ 그래서 사전 과제가 있으면 재빨리 PDCA 단계를 실천하는 게 정말 중요합니다.

 

Plan. Do 단계
제가 지원하는 기관에서는 테스트 프로젝트를 요청했기 때문에 저는 먼저 '계획, 실행' 단계에 착수했습니다. 우선, 주어진 과제를 창의적인 방법으로 해결할 수 있는 방법을 브레인스토밍했습니다. 떠오르는 아이디어를 적어보고, 기존 관련 연구는 없는지 검색했습니다. 

 

Check 단계

그다음, 연구를 바탕으로 이론적 가설을 세우는 '확인' 단계에서는 교수님과 동료들에게 제 아이디어에 대해 조언을 구하기 시작했습니다. 교수님과 과 친구들에게 제 아이디어를 설명하면서 논리적으로 빠진 부분이나 고려해야 할 사항이 없는지 다시 한번 확인할 수 있었습니다.

 

Action 단계

마지막 '실행' 단계는 빠질 수 없는 프로그래밍 단계입니다.  코드를 작성하고 제대로 실행될 때까지 오류를 디버깅해야 합니다..... 컴퓨터쟁이들한테 빠질 수 없는 단계 ㅜㅠ. 이 단계에서 제가 집중했던 건 '전문가 수준'의 코드를 짜보자는 것이었습니다. 지원하는 기관에서 GitHub URL을 요청하는 이유를 생각해 봅시다.  주된 목적은 여러분의 프로그래밍 능력을 평가하고 결과물을 잘 전달할  수 있는지 보는 거겠죠? 이러한 기대에 부응하기 위해 저는 코딩을 시작할 때, 폴더를 전략적으로 분류하고 변수의 이름을 직관적으로 지정하는 등 디렉터리를 매우 깔끔하게 정리했습니다. 엔비디아, 페이스북 등 큰 테크 기업들의 오픈소스 레포지토리나 유명 논문의 코드를 보면 어느 방식으로 정리를 하고 코드를 짜야하는지 감을 잡을 수 있으실 거예요. 코드를 논리적, 효율적으로 짜는 것도 중요하지만 심사위원이 제 깃허브 코드를 봤을 때 '애 코딩 좀 해봤네?' 싶은 느낌의 레포지토리 배치를 본다면 좀 더 합격에 가까워질 수 있으리라 생각합니다.

 

**추가 꿀팁

만약에 깃허브 코드에 대한 감이 안 온다고 생각하면, 깃허브에 가서 Google summer of code, gsoc project 등 키워드로 검색을 해보세요. 검색하면 지난 합격자들, 프로그램 결과물을 볼 수 있어서 어떤 결과물을 기관들이 요구하는지 대략적으로 알 수 있습니다.

 

쓰다보니 길어져서 대망의 제안서 쓰는 법은 다음 글에 적어보겠습니다 :)

 

 

 



728x90
반응형

댓글