본문으로 건너뛰기

오픈소스 기여 시리즈 2, 퍼포먼스를 위해 주도적으로 기여하는 병진님을 만나다 🚀

· 약 17분
금정민
OpenSource Contributor | Frontend Engineer @ GLN, HANA financial group
노트

오픈소스 기여 시리즈는 세 분의 오픈소스 기여자를 만나 이야기를 들어보는 시간입니다.
모든 인터뷰는 실제 대화를 바탕으로 작성되었으며, 인터뷰어와 인터뷰 대상자의 의견을 최대한 존중하여 기록했습니다. 🙏



오픈소스 기여 시리즈, 두 번째 이야기 🚀

open-ai-rocket
  • 오늘은 오픈소스 기여 시리즈 두 번째 이야기로 찾아왔어요!
  • 여러분은 오픈소스에 기여하는 이유가 무엇인가요?
  • 성취감이나 기술 성장도 중요한 이유겠지만, 저는 프로그래머가 ‘문제 해결사’라는 본질에 충실하려는 마음에서 출발한다고 생각해요.
  • 오픈소스 기여는 개인의 문제를 해결하는 동시에, 다양한 사람들과 협업해 더 큰 문제를 해결해나가는 과정이니까요.

  • 이번에는 바로 그 ‘비즈니스 문제 해결’을 위해 오픈소스에 꾸준히 기여하고 있다는 병진님을 만나보았습니다.
  • 병진님은 AI 엔지니어로서, 회사나 프로젝트 현장에서 발생하는 여러 가지 문제를 오픈소스를 통해 풀어나가고 계신데요.
  • 과연 비즈니스 문제 해결을 위해 어떤 방식으로 오픈소스를 활용하고, 또 어떻게 기여하고 계신지 궁금하지 않으신가요?

  • 그럼 지금부터 병진님의 이야기를 함께 들어볼까요?


Q.

안녕하세요, 병진님 🙂 바쁘신 와중에도 인터뷰 참여해 주셔서 감사합니다
인터뷰 시작하기에 앞서, 병진님 자기소개를 부탁드릴게요!

profile

병진님

안녕하세요! 저는 현재 AI 엔지니어로 일하고 있는 강병진이라고 합니다. 🙂
지금은 GS라는 회사에서 AI Experience(AX)! 프로젝트들을 진행하고 있는데요. 이 팀에 합류하기 전에는 스타트업에서 약 4년 정도 근무하면서, 처음에는 혼자 모든 개발을 담당하는 ‘1인 개발자’로 시작했습니다. 그러다 스타트업이 시리즈 C 투자 단계까지 성장하면서 자연스럽게 팀을 리딩하는 역할까지 맡게 되었어요.

그 과정에서 다양한 프로젝트를 진행했고, 문제를 빠르고 효율적으로 해결하기 위해 오픈소스를 많이 활용하게 됐습니다.
결과적으로 오픈소스를 적극적으로 도입하면서, 확장성과 생산성을 동시에 잡을 수 있었던 점이 큰 도움이 됐어요.

Q.

오픈소스에 기여하게 된 계기는 무엇이었나요?

profile

병진님

저는 오픈소스에 기여하는 이유가 제 필요 때문인 것 같아요! 🤔
일하다 보면, 이 기능이 정말 편리한데, 조금 부족한 부분이 있을 때가 있잖아요?
그럴 때 부족한 부분을 채우기 위해 기여하게 되는 것 같아요.

예를 들어, A 기능에 B가 추가되어 있으면 훨씬 편할 텐데, B가 누락되어 있으면 직접 구현해서 기여하는 방식이에요.
한 번은 플러터(Flutter)에서 드롭다운 리스트를 만들어야 했는데, 디자인 요구사항상 “버튼을 클릭한 후, 살짝 떼면 드롭다운이 보여야 한다”라는 기능이 필요했어요. 하지만 기본 기능으로는 지원되지 않더라고요. 😥

결국 새로 드롭다운 기능을 구현할 수밖에 없었고, 그 과정을 이슈(issue)로 정리해서 “이런 기능이 필요한데, 혹시 관심 있는 분 있나요?” 하고 제안했어요. 이런 식으로 대화를 주고받으며 기여한 경험이 많았어요.

flutter-issue 기능을 제안하고 PR을 제출하신 병진님

Q.

혹시 주로 기여하는 오픈 소스는 어떤 것이 있나요?

profile

병진님

주로 기여하는 오픈소스가 따로 정해져 있진 않아요. 저는 프로젝트를 진행할 때 필요한 부분에서 기여를 하는 편이에요!

예를 들어, 자바스크립트 쪽에서는 패브릭(FabricJS)! 라이브러리를 사용했었어요. 이 라이브러리는 캔버스(Canvas)를 좀 더 편하게 다룰 수 있게 해주는데, 당시 제가 진행하던 프로젝트에서는 캔버스 기능을 정말 많이 활용해야 했거든요. 🎨 그 과정에서 타입스크립트(Typescript)와 관련된 기능 기획이 필요해졌고, 부족한 부분을 채워나가면서 자연스럽게 기여로 이어졌습니다.

지금은 AI 쪽에 집중하다 보니, 관련된 프레임워크를 찾아보면서 필요한 기능이나 개선할 점이 있으면 기여하고 있어요.
필요한 게 있을 때마다, 그런 부분을 찾아서 기여하는 방식이에요. 🚀

Q.

여러 오픈소스 기여를 하면서 겪었던 어려운 점이나, 그 해결 경험을 공유해주실 수 있을까요?

profile

병진님

기술적인 챌린지보다는, 컨트리뷰터들의 답장이 느릴 때가 가장 어렵더라고요. 😅
저는 빨리 머지(Merge)해서 프로젝트에 반영하고 싶은데, 답변이 늦으면 아무래도 계속 기다려야 하니까요.
특히 해외 커뮤니티의 경우엔 시차가 있어서, 최소 12시간은 기본이고 3~4일씩 걸리는 경우도 종종 있거든요.

최근에 플러터(Flutter) 프로젝트에 기여했을 때도 유사한 경험이 있었어요.
플러터 팀은 전 세계적으로 분포되어 있어서 미국, 독일 등 다양한 국가에 계신 분들이 함께 작업하시더라고요.
그런데 해당 팀 정책상 두 명이 리뷰를 해야 머지가 되는데, 한 명의 리뷰를 받았지만 두 번째 리뷰어의 답변이 늦어져서, 지난달에 릴리즈가 되었어요. 😥

Q.

오픈소스 기여 과정에서 가장 기억에 남는 순간이나, 특별히 기억에 남는 오픈소스가 있으신가요?

profile

병진님

가장 인상 깊었던 순간을 꼽으라면, 테스트 코드 수정 요청을 받았을 때인 거 같아요.
왜냐하면 보통 PR을 올릴 때 CI 테스트가 전부 통과하면 머지까지 이어지잖아요.
그런데, 막상 컨트리뷰터들과 커뮤니케이션을 시작해보면, 더욱 세밀한 요구사항이 나오기도 하거든요.

게다가 메인테이너 A와 B의 의견이 서로 다를 때도 있어요.
어떤 분은 “더 많은 상황을 커버해야 한다”고 주장하고, 다른 분은 “이미 충분히 커버된 것 같다”고 느낄 수도 있잖아요.
그럴 때는 제가 “이런 테스트로도 작업이 충분히 검증되지 않을까요?” 하고 제 의견을 말씀드리면서
서로 조율하는 과정을 거치게 되는데, 바로 그 순간들이 가장 기억에 남아요.

결과적으로는 “이 사람들은 이 부분에 왜 이렇게 중요성을 두는지”
또 “내가 생각했던 방향과 뭐가 다른지” 서로 이해해가는 시간이 되어서 좋았던 것 같아요.

Q.

기여 과정에서 코드 리뷰를 받을 때, 가장 중요하게 생각하는 부분이 있을까요?

profile

병진님

저는 코드의 품질과 유지보수성을 위해서, 메인테이너가 제시하는 컨벤션(Convention)을 최대한 잘 지키려고 노력해요.

그래서 PR을 올리기 전에, 이슈(Issue) 영역에서 미리 커뮤니케이션을 많이 해두는 편이에요.
“이렇게 구현해보려고 하는데, 괜찮을까요?” 같은 식으로 대화를 충분히 나눈 뒤에, 최종적으로 확신이 들면 그때 PR을 올려요.
왜냐하면 말씀드린 것처럼, 한 번 PR을 올리고 나면 소통하는 데 시간이 오래 걸리기도 하거든요.

또, PR을 올리고 나서 코드 수정을 하게 되면, CI 테스트나 코드 체크를 다시 통과해야 하는데,
예를 들어 플러터(Flutter) 같은 경우는 체크해야 할 항목이 70~80개 정도나 되거든요.
다시 수정하고 검증하려면 그만큼 시간이 더 걸릴 수밖에 없어요.

flutter-commit-check 커밋시 70개 이상의 체크를 진행하는 flutter

그래서 가능한 한 이슈에서 방향을 먼저 정하고, 그다음에 PR을 올리는 방식을 취하고 있습니다.
결국 이렇게 기여하는 오픈소스들은 규모도 크고 영향 범위도 넓은 프로젝트들이 많잖아요. 그래서 더욱 더 꼼꼼히 신경 써야 한다고 생각해요.

Q.

오픈소스 컨트리뷰터 활동을 꾸준히 하면 좋은 점이나, 하나의 오픈소스에 장기간 기여할 때 얻을 수 있는 이점은 무엇일까요?

profile

병진님

저에게 기여란, 맡은 프로젝트를 안정적으로 운영하는 게 목적이라고 볼 수 있어요! 🚀
결국 엔지니어는 문제를 해결하는 사람이니까, 내가 문제를 해결하는 데 어떤 수단을 쓰느냐는 그다지 중요한 차이가 아닌 것 같아요.
중요한 건 해결하는 방법보다는 문제를 해결하는 과정이라고 생각해요 😊.

Q.

마지막으로, 오픈 소스를 처음에 기여하고 싶으신 분들에게 먼저 추천하고 싶은 단계가 있으실까요?

profile

병진님

저는 번역 작업이 좋은 시작이 될 수 있을 것 같아요.
번역은 비교적 접근성이 좋아서, 오픈소스에 기여하는 첫 걸음으로 적합하다고 생각해요.

또, 제가 경험한 것처럼, 본인이 당면한 문제를 해결하기 위해 직접 기여를 시도해보는 것도 좋은 방법이에요.
실제로 생각보다 어렵지 않게 시작할 수 있고, 문제를 해결하는 과정에서 많은 배울 점이 있을 거예요.
그래서 이런 방식도 충분히 좋은 선택이 될 수 있다고 생각합니다.




  • 이번 시간에는 병진님의 이야기를 들어보았는데요,
  • 비즈니스 문제 해결을 위한 오픈소스 기여가 이렇게나 직접적인 의미를 지닌다는 사실에 놀라웠습니다.
  • 특히 “내가 필요한 기능을 직접 구현하고, 그 과정에서 배우고 협력한다”는 병진님의 접근 방식이 아주 인상 깊었어요!

  • 문제를 해결하는 동시에, 다른 이들과 적극적으로 소통하며 함께 성장하는 과정이야말로 오픈소스 기여가 선사해주는 가장 큰 매력 아닐까 싶어요.
  • 앞으로도 더 많은 엔지니어들이 오픈소스를 통해 서로 영향을 주고받으며, 더 멋진 프로젝트를 만들어나가길 기대해봅니다!
Profile

병진님의 github

https://github.com/jasonkang14


Profile

병진님의 blog | jasonkang14.github.io

https://jasonkang14.github.io/



  • 추가로 병진님은 현재, GS의 Open Innovation을 담당하는 52g라는 팀에서 근무하고 계신대요!
  • 오픈소스와 유사하게 오픈 이노베이션을 추구하면서 여러 계열사, 팀, 회사와 협업하며 문제를 해결하기 위해 노력하고 있습니다!
  • 병진님의 회사도 많은 관심 부탁드려요 🙂
Profile

52g

https://www.52g.gs