문화

Dec 19, 2022

문화

2022 여름 래블업 인턴십 후기

  • 강시온

    소프트웨어 엔지니어

Dec 19, 2022

문화

2022 여름 래블업 인턴십 후기

  • 강시온

    소프트웨어 엔지니어

서론

내가 처음 이 회사를 알게 된 건 2019년 여름이었다. 당시 GDG Seoul '모두의 Toy Story'라는 행사에서 지인이 발표를 한다고 해서 행사를 참관했는데, 그 자리에서 래블업의 '머신러닝에 활용하는 GPU 가상화 도구'를 주제로 한 세션을 듣고 굉장한 흥미를 느꼈다. 이 때는 내가 한창 머신러닝에 관심을 가지던 시기였는데, 래블업의 발표는 기술적으로 깊이가 있었고, 이런 일을 하는 회사도 있구나 하며 이 회사에 대해 처음으로 알게 되었다.

그 후, 다시 한번 이 회사와 연이 닿게 되었는데, 42 Seoul에서 진행한 오픈소스 해커톤에서였다. 특정 오픈소스를 활용한 제품을 단기간에 만드는 대회였는데, 이때 나는 Backend.AI 팀에 참여하게 되었다. 이 때는 앞서 언급한 GDG Seoul에서의 발표 이후 3년이 지난 시점이었지만, 그 때의 발표가 매우 인상깊었기 때문에 이름을 보자마자 곧바로 회사를 떠올릴 수 있었다. 대회를 진행하는 동안 정규님의 멘토링을 통해 많은 도움을 받았고, 덕분에 대회에서 2위를 수상하는 쾌거를 이루었다.

2022년 5월, 나는 쎄트랙아이라는 회사에서 학교 연계 인턴십을 진행하고 있었다. 인턴십 종료 이후 어떤 일을 해야 할까 알아보던 중, 페이스북에서 래블업의 여름 인턴십 공고를 보게 되었다. 대회를 진행하며 정규님에게 받은 멘토링이 큰 도움이 되었기에 좋은 기억이 있었고, 개발자 커뮤니티와 오픈소스에도 지대한 관심을 가지고 있었기에 나의 다음 목적지를 래블업으로 정하게 되었다.

그 무렵, 나는 42 world라는 프로젝트를 진행하고 있었는데, 이 시기가 내가 많은 것들을 배우고 성장할 수 있었던 시기라고 생각한다. 래블업의 면접을 보며 내가 진행하던 42 world 프로젝트를 소상히 설명할 기회가 있었고, 프로젝트에 모노레포를 적용하며 어려웠던 경험을 나누자 래블업도 Backend.AI에 모노레포를 적용하며 어려움을 겪었다는 이야기를 해주어 면접 동안 개발자끼리의 소소한 공감을 주고받을 수 있었다.

그렇게 래블업 인턴십에 합격한 후, 총 4분의 다른 인턴분들과 인턴십 생활을 시작하게 되었다. 나는 기존의 인턴십을 마무리하고 이사할 기간을 가지기 위해 다른 분들보다 일주일 정도 늦게 회사에 입사하게 된 케이스다. 일주일 동안은 Backend.AI를 파악하고 회사에 적응하는 Orientation 주간을 가졌다. 온보딩 문서화가 잘 되어있어 신규 입사자가 쉽게 회사에 적응하기 좋은 환경이 갖추어져 있는 회사라는 생각이 들었다. Orientation 기간 대부분은 Backend.AI를 설치하고 세팅하는데 대부분의 시간을 보낸 것 같다. 나는 다른 인턴분들보다 일주일 정도 늦게 입사한 덕분에 다른 인턴분들에게 도움을 많이 받았고, 상대적으로 수월하게 Orientation 기간을 마무리할 수 있었다.

업무 시작

2주 차부터 이제 본격적인 task 들을 할당받아 일하기 시작했다. DevOps, Frontend, Research 팀 중에 본인이 하고 싶은 일을 선택하여 각 챕터 담당자분에게 good-first-issue를 할당받아 시작하였는데, 나는 DevOps 팀을 선택하여 업무를 시작했다. 처음으로 할당받은 이슈는 세션을 실행하고 원하는 코드를 실행하기까지 하는 run 커맨드를 세션을 실행하는 start와 코드를 실행하는 exec 명령어를 조합하여 구현하도록 하여 코드의 중복 구현을 줄이도록 refactoring 하는 작업이었다.

나에게 할당된 첫 이슈를 진행하며 꽤나 어려움을 겪었는데, 해당 이슈의 구현 난이도와는 상관 없이 Backend.AI의 레포 구조를 이해해야 했기 때문이다. 이슈가 왜 생겼는지 파악하는 것도 중요하지만, 그 전에 Backend.AI가 목표로 하는 것이 무엇인지 정확하게 알고, 이 이슈가 어떤 목적을 달성하기 위해 해결되어야 하는 것인지 이해해야 문제를 정확하게 해결할 수 있다는 사실을 알게 되었다.

첫 번째 이슈를 해결하고 난 후에는 vfolder clone이라는, 당시 개발 중인 기능을 테스트하는 업무를 맡게 되었다. 해당 업무를 하면서 DevOps 업무만을 담당하다가 Frontend 챕터의 프로젝트인 Backend.ai-webui를 처음으로 사용해보게 되었다. vfolder clone 테스트뿐만 아니라 직접 실행하면서 개선할 수 있는 사항이나 버그들을 찾아서 이슈로 등록했는데, 뭔가 다른 팀에 계속 task를 만드는 느낌이라 좀 죄송한 마음도 들었지만, 프론트엔드 챕터에서는 굉장히 좋은 기여라고 독려해 주셨다. 오픈소스는 코드 기여 뿐만 아니라 다른 방면으로도 많이 기여를 할 수 있음을 다시 한번 깨닫게 되었다.

CI/CD 개선

평소 CI/CD에 관심이 많았던 나는 Backend.AI에서 활용되는 actions에 흥미를 갖고 관심깊게 살펴보았다. 당시 Backend.AI에는 skip:ci 태그를 이용하여 CI를 skip 할 수 있는 기능이 있었는데, skip:ciskip:changlog 태그가 PR 생성 당시가 아닌, 나중에 라벨을 다는 경우에는 적용되지 않는다는 것을 알게 되었다. 이를 위해 의미 없는 commit을 추가해야 했고, 외부 기여자의 경우 label에 대한 권한이 없기 때문에 Backend.AI가 오픈소스인 만큼 중요하게 해결되어야 하는 문제라고 생각했다. 그래서 GitHub Actions와 관련된 내용을 조사했고, action trigger에 labeled와 관련된 trigger가 있다는 것을 알게 되어 해당 문제를 해결할 수 있었다. 할당받은 이슈가 아닌 직접 개선할 수 있는 사항을 찾고 개선한 것이라 해당 작업을 회사에서도 매우 좋게 봐주셨다. 해당 문제를 해결하면서 actions에 더 흥미가 생겨 몇 가지 개선사항을 좀 더 제시해보았다. 누락된 assign 들이 꽤 보여 이를 자동화하여 해결하면 실수도 방지하고 assign 하는 귀찮음도 줄일 수 있다고 생각해 기존에 사용해 본 적이 있는 auto-auth-assign action 도입을 제안했다. 그다음으로는 labeling도 자동화를 하면 좋을 것 같았다. 해당 문제도 labeler라는 action이 존재하여 사용해 본 적은 없지만, test repository에서 여러 번 테스트를 거쳐 Backend.AI에 적용했고 모노레포로 합쳐진 여러 시스템을 구분하는 labeling 작업을 자동화할 수 있었다. 이 작업을 하면서 느낀 것은 PR에 연결된 issue에 할당되어있는 label을 그대로 붙여주면 좋을 것 같다는 생각이 들었는데, 해당 기능을 하는 action을 찾을 수가 없었다. 그래서 직접 제작해보기로 결심했고, GitHub API와 action을 학습, auto-label-in-issue라는 actions를 직접 제작하여 배포했다.

인턴십을 마치며

이번 인턴십을 통해 많은 것을 느끼고 많은 것을 배워간다. 이번 인턴십이 두 번째 경험이긴 하지만, 이전 회사는 IT 회사가 아니었던 만큼 IT 회사에서의 첫 인턴십 경험이었다. 나에게 래블업의 제품은 오픈소스로 관리되고, 회사 차원에서 커뮤니티에 꾸준히 기여한다는 점이 매력적으로 다가왔다. 회사가 정말 이렇게까지 수평적일 수 있나? 라는 생각이 들 정도로 편안한 분위기에서 자유롭게 의견을 제시할 수 있었다. 강제로 일을 하는 것이 아닌 주도적으로 하고 싶은 일을 할 수 있는 것이 래블업의 가장 큰 장점이라고 생각한다.

이제야 프로젝트에 대해 어느정도 파악 한 느낌인데 인턴십을 종료할 때가 다가와 아쉬움이 컸다. 감사하게도 래블업에서 인턴십을 연장해보지 않겠냐고 먼저 제안을 주셔서 인턴십을 연장, actions 이슈들을 주로 맡아 개발하게 되었다. 최근에 내가 계속 actions를 다루고 있고, 필드에 actions를 다루는 개발자가 많이 없기 때문에 이를 주제로 GDG Daejeon에서 발표도 하게 되었다. 덕분에 주변에서 액션가면이라는 별명으로 불리고 있는 것은 소소한 웃음거리다.

이후 인턴십에서의 경험을 오픈소스 컨트리뷰션 아카데미에서 나누기도 하고, 이를 바탕으로 컨트리뷰션 아카데미에서 좋은 성적을 거두게 되었는데, 회사에서의 경험이 이를 위한 밑바탕이 되었다고 생각한다.

도움이 필요하신가요?

내용을 작성해 주시면 곧 연락 드리겠습니다.

문의하기

Headquarter & HPC Lab

서울특별시 강남구 선릉로100길 34 남영빌딩 4층, 5층

© Lablup Inc. All rights reserved.