본문 바로가기

오픈소스

2024 오픈소스 컨트리뷰션 아카데미

기말고사 기간이었다.

디코 채널방에 소개 포스터가 올라왔고 확인해보니 2024 오픈소스 컨트리뷰션 아카데미였다. 당장 하고 있던 큐시즘 29기는 6월에 끝나고 여름방학에 계획하고 있던 활동이 크게 없었기에 나에게 굉장히 좋은 기회라고 생각했다. 더군다나 오픈소스 기여라니! 개발자라면 누구나 한번쯤 해보고 싶어하지 않은가.

 

모집 마감일이 6월 23일이었고 난 21일에 마지막 시험을 끝으로 종강이었다. 토요일에는 선약이 있어서 나에게 시간은 마감 당일 뿐이었다. 토요일 밤을 새면 어떻게든 되겠지 라는 심정으로 당장에는 학기에만 집중했다. 

 

2024 OSSCA 모집 포스터

 

종강하고, 선약을 마치고 토요일 밤에 난 자버렸다. 오전 10시 쯤에 일어났으니 대략 14시간 정도 남은 셈이다. 부랴부랴 학교로 가서 모집글과 지원 팀들을 살펴보았다. 

 

난 백엔드에도 관심이 많고 CS 를 코드로 구현하는 것도 좋아서 그런 쪽 분야들이 눈에 들어왔다. 우선 소개글을 한 번씩 다 읽어보고 오픈소스를 검색해보면서 어떤 프로젝트인지 감을 잡고 후보군을 좁혀갔다. 최종적으로 2개의 후보를 선택했다. ArgoCD와 Linux Kernel Networking Stack이었다.  (OSSCA는 1지망 2지망으로 2개의 프로젝트에 지원할 수 있다.) 

 

 

ArgoCD는 큐시즘 백엔드 활동을 하면서 CICD를 해볼 일이 몇번 있었는데 나름 재미있기도 했고, 이참에 인프라 공부를 해보는 것도 좋을 것 같아 선택했다. 

 

Linux kernel Networking Stack 은 Linux의 코드에 기여할 수 있다는 점이 매력적이었고 3-1 학기에 컴퓨터 네트워크 과목과 운영체제를 들을면서 리눅스를 좀 공부했었기에 해보면 재밌을 것 같아서 선택했다. 

 

지원은 자기소개서, 지원하게된 계기, 협업 관련 등을 자유롭게 글로 써서 제출하면 되는 간단한 방식이었다. 하지만 간단할수록 타 지원자들과 차이점을 만들어내기는 어렵다. 나는 해왔던 활동들을 녹여내면서 내가 왜 이 프로젝트에 지원했는지를 적었고, 많은 시간을 투자할 수 있다는 점을 강조해서 열정을 보여주는 식으로 작성했다. 하루만에 작성한 글이라 검토도 많이 하지 못했고, 지금껏 작성해왔던 글들에 비해 비교적 길이가 짧았다는 점에서 생각하면 만족스럽지는 않았다. 

 

하지만 한 가지 간과한 점이 있었다. Linux kernel Networking Stack 프로젝트는 사전 과제가 있었다. 리눅스 환경에서 해야하는 과제라 학교 선배의 노트북을 급하게 빌려서 바로 과제를 진행했다. 과제는 hello world를 출력하는 c파일을 작성해서 Makefile 스크립트를 실행해서 컴파일 하여 결과를 찍는 것이었다. 즉 모듈로 만들어서 실행하는 것이다. 데이터베이스 과제에서 Makefile 을 다룬적이 있고, 가이드라인이 대충 나와있어서 쉽게 해낼 줄 알았다. 하지만 생각하는 것만큼 호락호락 하지는 않았다. 

 

오류메시지 구글링을 통해 내가 작성한 모듈의 드라이버가 Secure Boot에 의해 막혔다는 것을 알아냈다. 우선 우분투에서 signingkey를 생성해주고 생성된 key file을 통해 모듈 드라이버를 서명한다. 그리고 나서 Secure Boot에 해당 키를 등록해주면 되는데 이때 mokutil이라는 라이브러리를 사용한다. 

https://khd0801.com/entry/Lockdown-insmod-unsigned-module-loading-is-restricted-see-man-kernellockdown7-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0

 

Lockdown: insmod: unsigned module loading is restricted; see man kernel_lockdown.7 문제 해결

1. Error 내용 Ubuntu Kernel 4.4.0-20 이후로 "EFI_SECURE_BOOT_SIG_ENFORCE"라는 커널 컨피그가 Enable되어 Secure Boot가 활성화 되었다. Secure Boot가 활성화 되면서 해당 커널에서는 일반적인 방법으로 모듈 드라이

khd0801.com

 

해결하고 Hello World가 정상적으로 출력되는 사진이다.

 

 

이렇게 사전과제까지 완료하고 글도 다 쓰고 해서 오후 9시에 지원서를 최종 제출했다. 

그 뒤고 2주의 시간이 흘렀다. 그동안 난 본가도 다녀오고 당근 인턴도 지원하고 학교에서 프로젝트도 진행했다.

 

붙었다!!!

 

 

2주뒤 결과를 확인해보니.. 1지망으로 지원했던 ArgoCD 프로젝트 멘티에 합격했다. 😭😭😭

보통 지원서를 내고 나면 대충 감이 온다. 합격할 것 같은 경우에는 확신이 있기에 별로 떨리지 않는데 이번에는 지원서를 너무 급하게 쓰기도 했고 스스로 확신도 없었기에 결과가 나오기까지 조금 떨렸다. 다행히도 합격했고 오픈소스에 기여를 해볼 수 있다는 생각에 설렜다. 

 

 

합격 안내 메일

 

 

 

 

합격 안내 메일까지 받고 나니 열심히 해야겠다는 실감이 났다. 오픈소스 기여도 좋고 ArgoCD를 배워볼 수 있다는 점도 좋았다. 여름방학 백엔드 공부와 알고리즘 문제 풀이도 병행하려면 좀 열심히 살아야겠다. 

저에게 좋은 기회를 준 아카데미와 저를 뽑아주신 멘토님들 기대에 부응하기 위해서 부족하지만 열심히 참여해서 내가 얻을 수 있는 것들 다 얻고 성장하고 싶다. 열심히 하자.