오픈소스 기여 시리즈 2, 퍼포먼스를 위해 주도적으로 기여하는 병진님을 만나다 🚀
오픈소스 기여 시리즈는 세 분의 오픈소스 기여자를 만나 이야기를 들어보는 시간입니다.
모든 인터뷰는 실제 대화를 바탕으로 작성되었으며, 인터뷰어와 인터뷰 대상자의 의견을 최대한 존중하여 기록했습니다. 🙏
- 1탄: MDN 오거나이저 상철님
- 2탄: 퍼포먼스를 위해 주도적으로 기여하는 병진님 👈
- 3탄: 선한 영향력으로 기여하는 인제님
오픈소스 기여 시리즈, 두 번째 이야기 🚀
- 오늘은 오픈소스 기여 시리즈 두 번째 이야기로 찾아왔어요!
- 여러분은 오픈소스에 기여하는 이유가 무엇인가요?
- 성취감이나 기술 성장도 중요한 이유겠지만, 저는 프로그래머가 ‘문제 해결사’라는 본질에 충실하려는 마음에서 출발한다고 생각해요.
- 오픈소스 기여는 개인의 문제를 해결하는 동시에, 다양한 사람들과 협업해 더 큰 문제를 해결해나가는 과정이니까요.
- 이번에는 바로 그 ‘비즈니스 문제 해결’을 위해 오픈소스에 꾸준히 기여하고 있다는 병진님을 만나보았습니다.
- 병진님은 AI 엔지니어로서, 회사나 프로젝트 현장에서 발생하는 여러 가지 문제를 오픈소스를 통해 풀어나가고 계신데요.
- 과연 비즈니스 문제 해결을 위해 어떤 방식으로 오픈소스를 활용하고, 또 어떻게 기여하고 계신지 궁금하지 않으신가요?
- 그럼 지금부터 병진님의 이야기를 함께 들어볼까요?
Q.
안녕하 세요, 병진님 🙂 바쁘신 와중에도 인터뷰 참여해 주셔서 감사합니다
인터뷰 시작하기에 앞서, 병진님 자기소개를 부탁드릴게요!
병진님
안녕하세요!
저는 현재 AI 엔지니어로 일하고 있는 강병진이라고 합니다. 🙂
지금은 GS라는 회사에서 AI Experience(AX)! 프로젝트들을 진행하고 있는데요.
이 팀에 합류하기 전에는 스타트업에서 약 4년 정도 근무하면서,
처음에는 혼자 모든 개발을 담당하는 ‘1인 개발자’로 시작했습니다.
그러다 스타트업이 시리즈 C 투자 단계까지 성장하면서 자연스럽게 팀을 리딩하는 역할까지 맡게 되었어요.
그 과정에서 다양한 프로젝트를 진행했고,
문제를 빠르고 효율적으로 해결하기 위해 오픈소스를 많이 활용하게 됐습니다.
결과적으로 오픈소스를 적극적으로 도입하면서,
확장성과 생산성을 동시에 잡을 수 있었던 점이 큰 도움이 됐어요.
Q.
오픈소스에 기여하게 된 계기는 무엇이었나요?
병진님
저는 오픈소스에 기여하는 이유가 제 필요 때문인 것 같아요! 🤔
일하다 보면, 이 기능이 정말 편리한데, 조금 부족한 부분이 있을 때가 있잖아요?
그럴 때 부족한 부분을 채우기 위해 기여
하게 되는 것 같아요.
예를 들어, A 기 능에 B가 추가되어 있으면 훨씬 편할 텐데, B가 누락되어 있으면 직접 구현해서 기여하는 방식이에요.
한 번은 플러터(Flutter)에서 드롭다운 리스트를 만들어야 했는데,
디자인 요구사항상 “버튼을 클릭한 후, 살짝 떼면 드롭다운이 보여야 한다”라는 기능이 필요했어요.
하지만 기본 기능으로는 지원되지 않더라고요. 😥
결국 새로 드롭다운 기능을 구현할 수밖에 없었고, 그 과정을 이슈(issue)로 정리해서 “이런 기능이 필요한데, 혹시 관심 있는 분 있나요?” 하고 제안했어요. 이런 식으로 대화를 주고받으며 기여한 경험이 많았어요.
Q.
혹시 주로 기여하는 오픈 소스는 어떤 것이 있나요?
병진님
주로 기여하는 오픈소스가 따로 정해져 있진 않아요. 저는 프로젝트를 진행할 때 필요한 부분에서 기여를 하는 편
이에요!
예를 들어, 자바스크립트 쪽에서는 패브릭(FabricJS)! 라이브러리를 사용했었어요. 이 라이브러리는 캔버스(Canvas)를 좀 더 편하게 다룰 수 있게 해주는데, 당시 제가 진행하던 프로젝트에서는 캔버스 기능을 정말 많이 활용해야 했거든요. 🎨 그 과정에서 타 입스크립트(Typescript)와 관련된 기능 기획이 필요해졌고, 부족한 부분을 채워나가면서 자연스럽게 기여로 이어졌습니다.
지금은 AI 쪽에 집중하다 보니, 관련된 프레임워크를 찾아보면서 필요한 기능이나 개선할 점이 있으면 기여하고 있어요.
필요한 게 있을 때마다, 그런 부분을 찾아서 기여하는 방식이에요. 🚀
Q.
여러 오픈소스 기여를 하면서 겪었던 어려운 점이나, 그 해결 경험을 공유해주실 수 있을까요?
병진님
기술적인 챌린지보다는, 컨트리뷰터들의 답장이 느릴 때가 가장 어렵
더라고요. 😅
저는 빨리 머지(Merge)해서 프로젝트에 반영하고 싶은데,
답변이 늦으면 아무래도 계속 기다려야 하니까요.
특히 해외 커뮤니티의 경우엔 시차가 있어서, 최소 12시간은 기본이고
3~4일씩 걸리는 경우도 종종 있거든요.
최근에 플러터(Flutter) 프로젝트에 기여했을 때도 유사한 경험이 있었어요.
플러터 팀은 전 세계적으로 분포되어 있어서
미국, 독일 등 다양한 국가에 계신 분들이 함께 작업하시더라고요.
그런데 해당 팀 정책상 두 명이 리뷰를 해야 머지가 되는데, 한 명의 리뷰를 받았지만 두 번째 리뷰어의 답변이 늦어져서, 지난달에 릴리즈가 되었어요. 😥
Q.
오픈소스 기여 과정에서 가장 기억에 남는 순간이나, 특별히 기억에 남는 오픈소스가 있으신가요?
병진님
가장 인상 깊었던 순간을 꼽으라면, 테스트 코드 수정 요청을 받았을 때인 거 같아요.
왜냐하면 보통 PR을 올릴 때 CI 테스트가 전부 통과하면 머지까지 이어지잖아요.
그런데, 막상 컨트리뷰터들과 커뮤니케이션을 시작해보면, 더욱 세밀한 요구사항이 나오기도
하거든요.
게다가 메인테이너 A와 B의 의견이 서로 다를 때
도 있어요.
어떤 분은 “더 많은 상황을 커버해야 한다”고 주장하고, 다른 분은 “이미 충분히 커버된 것 같다”고 느낄 수도 있잖아요.
그럴 때는 제가 “이런 테스트로도 작업이 충분히 검증되지 않을까요?” 하고 제 의견을 말씀드리면서
서로 조율하는 과정
을 거치게 되는데, 바로 그 순간들이 가장 기억에 남아요.
결과적으로는 “이 사람들은 이 부분에 왜 이렇게 중요성을 두는지”
또 “내가 생각했던 방향과 뭐가 다른지” 서로 이해해가는 시간이 되어서 좋았던 것 같아요.
Q.
기여 과정에서 코드 리뷰를 받을 때, 가장 중요하게 생각하는 부분이 있을까요?
병진님
저는 코드의 품질과 유지보수성을 위해서,
메인테이너가 제시하는 컨벤션(Convention)을 최대한 잘 지키려고
노력해요.
그래서 PR을 올리기 전에,
이슈(Issue) 영역에서 미리 커뮤니케이션을 많이 해두는 편
이에요.
“이렇게 구현해보려고 하는데, 괜찮을까요?”
같은 식으로 대화를 충분히 나눈 뒤에,
최종적으로 확신이 들면 그때 PR을 올려요.
왜냐하면 말씀드린 것처럼, 한 번 PR을 올리고 나면 소통하는 데 시간이 오래 걸리기도 하거든요.
또, PR을 올리고 나서 코드 수정을 하게 되면,
CI 테스트나 코드 체크를 다시 통과해야 하는데,
예를 들어 플러터(Flutter) 같은 경우는
체크해야 할 항목이 70~80개 정도나 되거든요.
다시 수정하고 검증하려면 그만큼 시간이 더 걸릴 수밖에 없어요.
그래서 가능한 한 이슈에서 방향을 먼저 정하고, 그다음에 PR을 올리는 방식
을 취하고 있습니다.
결국 이렇게 기여하는 오픈소스들은
규모도 크고 영향 범위도 넓은 프로젝트들이 많잖아요.
그래서 더욱 더 꼼꼼히 신경 써야 한다고 생각해요.
Q.
오픈소스 컨트리뷰터 활동을 꾸준히 하면 좋은 점이나, 하나의 오픈소스에 장기간 기여할 때 얻을 수 있는 이점은 무엇일까요?
병진님
저에게 기여란, 맡은 프로젝트를 안정적으로 운영하는 게 목적
이라고 볼 수 있어요! 🚀
결국 엔지니어는 문제를 해결하는 사람이니까, 내가 문제를 해결하는 데 어떤 수단을 쓰느냐는 그다지 중요한 차이가 아닌 것 같아요.
중요한 건 해결하는 방법보다는 문제를 해결하는 과정
이라고 생각해요 😊.
Q.
마지막으로, 오픈 소스를 처음에 기여하고 싶으신 분들에게 먼저 추천하고 싶은 단계가 있으실까요?
병진님
저는 번역 작업이 좋은 시작이 될 수 있을 것 같아요.
번역은 비교적 접근성이 좋아서, 오픈소스에 기여하는 첫 걸음으로 적합하다고 생각해요.
또, 제가 경험한 것처럼, 본인이 당면한 문제를 해결하기 위해 직접 기여를 시도
해보는 것도 좋은 방법이에요.
실제로 생각보다 어렵지 않게 시작할 수 있고, 문제를 해결하는 과정에서 많은 배울 점이 있을 거예요.
그래서 이런 방식도 충분히 좋은 선택이 될 수 있다고 생각합니다.
- 이번 시간에는 병진님의 이야기를 들어보았는데요,
- 비즈니스 문제 해결을 위한 오픈소스 기여가 이렇게나 직접적인 의미를 지닌다는 사실에 놀라웠습니다.
- 특히 “내가 필요한 기능을 직접 구현하고, 그 과정에서 배우고 협력한다”는 병진님의 접근 방식이 아주 인상 깊었어요!
- 문제를 해결하는 동시에, 다른 이들과 적극적으로 소통하며 함께 성장하는 과정이야말로 오픈소스 기여가 선사해주는 가장 큰 매력 아닐까 싶어요.
- 앞으로도 더 많은 엔지니어들이 오픈소스를 통해 서로 영향을 주고받으며, 더 멋진 프로젝트를 만들어나가길 기대해봅니다!
병진님의 github
https://github.com/jasonkang14
병진님의 blog | jasonkang14.github.io
https://jasonkang14.github.io/
- 추가로 병진님은 현재, GS의 Open Innovation을 담당하는 52g라는 팀에서 근무하고 계신대요!
- 오픈소스와 유사하게 오픈 이노베이션을 추구하면서 여러 계열사, 팀, 회사와 협업하며 문제를 해결하기 위해 노력하고 있습니다!
- 병진님의 회사도 많은 관심 부탁드려요 🙂
52g
https://www.52g.gs