본문으로 건너뛰기

오픈소스 기여 시리즈 3, 선한 영향력으로 기여하는 인제님을 만나다 🚀

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

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



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

earth-link
  • 오픈소스 기여 시리즈 마지막 이야기로 찾아왔어요!
  • 오늘은 오픈소스 생태계의 발전을 위해, 기여 문화를 확산시키는 인제님을 만나보려고 합니다.
  • 혼자서는 막막해 보일 수 있는 오픈소스의 벽을 멘토링과 협업으로 허물며, 지구 반대편의 개발자들과도 함께 코드를 만들어가고 계신 분인데요.
  • 처음 오픈소스를 접했던 순간부터 3년 넘게 꾸준히 기여해온 경험과 노하우, 그리고 바쁜 일상 속에서도 계속 도전하게 만드는 진짜 이유가 궁금하지 않으신가요?

  • 그럼 지금부터 인제님의 오픈소스 여정을 함께 만나보시죠!


Q.

안녕하세요, 인제님 🙂 연말이라 바쁘신데도 불구하고 인터뷰 참여해 주셔서 감사합니다.
인터뷰 시작에 앞서, 인제님의 자기소개를 부탁드릴게요!

profile

인제님

안녕하세요! 저는 현재 Line에서 오픈챗 백엔드 엔지니어로 근무 중인 김인제라고 합니다. 🙂
오픈 소스에 관심이 있다 보니, 여러 오픈소스 프로젝트에 참여하고 있습니다.
주로 기여하는 라이브러리는 LINE/armeria, spring-framework, spring-batch, reactor-core 등이 있는데요,
현재는 오픈소스 생태계의 확산과 성장을 위해 오픈소스 멘토링과 모각코!를 진행하고 있습니다.

Q.

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

profile

인제님

저는 개발자라면, "오픈소스에 기여하고 싶다는 마음"을 한 번쯤은 가지게 되는 것 같아요.
그래서 저도 여러 가지 시도를 해보았습니다.

초창기에는 스프링(Spring)에 기여를 시도하거나, 오픈소스 코드 읽기 스터디를 1년 동안 운영했었어요.
그런데 오픈소스의 코드를 읽는 등 여러 가지를 해보았지만, 어떻게 기여하면 좋을지 몰라 어려움을 겪었어요.

그러다가 라인 오픈 소스 스프린트라는 이벤트를 알게 되었는데요,
개발자들이 기여할 프로젝트를 선정하고, 멘토링을 통해 기여를 이끌어 내는 이벤트였어요.
저도 이 이벤트에 참여하여 오픈소스 메인테이너분께 도움을 받아 오픈소스 기여에 성공할 수 있었어요.
처음에 시도했을 때에는 정보도 없었고 도움도 받기 어려워 실패했었지만 이 기회를 통해 기여를 할 수 있었죠.
그 덕에 첫발을 내밀게 되면서 지금까지 이어올 수 있었던 것 같습니다 😊

Q.

오픈소스에 기여하면서 가장 어려웠던 점은 무엇이었나요? 그 문제를 어떻게 해결하셨나요?

profile

인제님

제가 느낀 가장 큰 어려움은, 오픈소스에 처음 들어갈 때의 진입 장벽이었어요.
우선 모든 문서나 커뮤니케이션이 영어로 진행되잖아요.
게다가 커뮤니케이션이 비동기로 진행되고, 해외 개발자가 많아 문화적 차이가 있다고 생각해요.
그래서 “이분들과 어떤 방식으로 소통해야 할까?”를 고민하는 게, 실제로 코드를 작성하는 것보다 더 어려웠던 것 같아요.

제가 기여를 시작한 게 한 3년 전쯤이었는데, 그땐 지금처럼 AI 기술이 발달해 있지 않았어요.
그래서 번역 도구나 챗봇 같은 걸 사용해 보는 게 쉽지 않았죠.
대신, 저는 클래스 다이어그램이나 시퀀스 다이어그램을 활용해서, 텍스트 대신 시각적인 자료로, 기능을 설명했어요.

comment-example 시각적 자료를 첨부해서 커뮤니케이션을 하는 인제님 댓글 일부

“이런 걸 만들어보려고 한다”라고 그림으로 보여주니까, 말로 장황하게 설명하는 것보다 훨씬 수월하더라고요.

Q.

오픈소스 기여 과정에서 가장 기억에 남는 순간이나 프로젝트는 무엇인가요?

profile

인제님

저는 비동기 서버 쪽에 관심이 많아서, LINE/armeria라는 비동기 서버 오픈소스 프로젝트에 기여를 많이 했어요.
거기서 여러 가지 비동기 구현체 관련 기능을 추가했는데, 그 중 제가 새로 추가한 기능이 하나 있었거든요.
그런데 몇 주 뒤에 저한테 멘션과 함께 메일 알림이 온 거예요.
“이거 네가 추가한 기능 같은데, 버그가 있는 것 같다. 고쳐줄 수 있겠니?”라는 내용이었죠. 그 순간이 정말 기억에 남아요.

제가 만든 코드를 지구 반대편에 있는 누군가가 실제 서비스에서 사용하고 있었고,
그 API가 기존 기능이 아니라 완전히 새로 추가한 기능이었는데도
업데이트 버전을 사용하면서 다양한 케이스를 거치다 보니 버그가 발견된 거예요.
저한테 “이 부분에서 문제가 생긴 것 같다”라고 피드백을 주니까, 고치면서 “오픈소스는 이런 과정을 통해 발전하는구나!” 하고 많이 느꼈어요.

특히나 리뷰어 분들조차도 예상 못 한 케이스였는데, 릴리스하자마자 불과 몇 주 만에 보고되고,
빠르게 수정할 수 있다는 게 오픈소스의 큰 장점이라는 생각이 들었어요.
그래서 그 기억이 아직까지도 가장 인상 깊게 남아있습니다.

Q.

기여 과정에서 코드 리뷰를 받을 때, 혹은 리뷰를 할 때 가장 중요하게 생각하는 요소는 무엇인가요?

profile

인제님

커뮤니케이션이 제일 중요한 것 같아요.
회사에서 코드 리뷰를 할 때는, 서로 같은 팀이고 같은 서비스를 개발하니까 맥락을 다 알고 있잖아요?
그래서 리뷰가 좀 복잡해도 옆자리에 가서 물어보면 되지만, 오픈소스는 서로 이름도 모르고, 어느 나라 사람인지도 모르고, 시간대도 전부 달라요.

이렇듯 컨텍스트가 전혀 공유되지 않았는데, 서로 간에 신뢰도가 낮은 상태에서 리뷰를 주고받아야 하잖아요.
그래서 리뷰를 받을 때나 할 때 가장 중요한 건, 가능한 한 컨텍스트를 잘 정리해서 신뢰감을 주는 것이라고 생각해요.

단순히 PR만 올려두고, 디스크립션에 간단한 내용만 적는 게 아니라, 이 PR에서 어떤 문제를 어떻게 해결하려고 했는지를 상세히 써주고,
시각화 자료(예: 클래스 다이어그램, 시퀀스 다이어그램 등)도 첨부해 주면 훨씬 좋아요.
또, 내가 생각했던 관점이나 예시 코드가 있다면 “나는 이렇게 생각했는데, 너는 어떻게 보니?” 하고 미리 물어보는 과정도 중요하고요.

즉, 이 PR로 인해 생기는 변화를 상대방이 한 번에 이해할 수 있도록 시각화하고,
배경 설명도 전해주는 게 오픈소스 리뷰에서 가장 핵심적인 부분이라고 생각해요.
참고로 저는 다이어그램을 그릴 때, draw.io이나 PlantUML와 같은 도구를 사용해요.

PlantUML, draw.io draw.io와 PlantUML 로고

Q.

기여할 오픈소스를 선정할 때, 어떤 기준으로 선택하시나요?

profile

인제님

저는 “재미있어 보이고, 관심이 가는 것”을 선정하는 것 같아요!
멋있거나 유명한 오픈소스도 물론 좋지만, 결국 저는 오픈소스를 취미 중 하나라고 생각하거든요.

예를 들어, 운동을 취미로 삼으려고 할 때도 멋있어 보이는 운동보다는 내가 끌리는 운동을 고르잖아요?
그런 것처럼, 오픈소스도 내가 애정이 가고, 그냥 재밌어 보이는 것에 기여하는 편이에요.

그래서 평소 뉴스레터 등을 보다가 “오, 이 오픈소스 재밌어 보이네?” 싶으면 들어가 보기도 하고,
최근에 제가 직접 써본 것 중에 “와, 이거 정말 잘 만들어졌다!” 싶으면 또 그 프로젝트에 기여해보곤 해요.

Q.

오픈소스 커뮤니티에서 다른 기여자들과 협업할 때 가장 중요하게 생각하는 것은 무엇인가요?

profile

인제님

저는 커뮤니케이션이 가장 중요한 요소라고 생각해요.
그런데 오픈소스 환경은 정말 극단적인 커뮤니케이션 상황이라고 볼 수 있거든요.
아까 말씀드렸듯이, 서로가 처음 보는 사람이고, 어느 나라 사람인지도 모르고, 문화적 차이도 크고,
기존에 쌓인 신뢰감도 전혀 없는 상태에서 나의 의견을 설득해야 하잖아요.

이런 상황은 사실 오픈소스 기여를 할 때 외에는 거의 평생 한 번도 안 겪어볼 정도로 독특하다고 봐요.
그래서 당연히 처음엔 어렵게 느껴질 수 있어요.
처음부터 잘하시는 분도 계시겠지만, 만약 어렵게 느껴지신다면 오픈소스 레포에서 비슷한 이슈나 PR을 살펴보는 걸 추천해요.
이미 이슈(Issue), PR(Pull Request), 그리고 논의 과정이 모두 공개되어 있으니까,
다른 사람들이 어떻게 의사소통했는지 열람해 보고, 그걸 그대로 따라 해보는 것도 좋습니다.

issue-discussion-tab 오픈소스에서 살펴보면 좋은 탭 (이슈/PR/토론)

오픈소스는 단순히 코드만 오픈되어 있는 게 아니라, 협업 과정(이슈, PR, 논의 과정)까지 전부 오픈되어 있잖아요.
바로 그 부분을 참고하면, 커뮤니케이션 스킬도 자연스럽게 습득할 수 있으니까 활용해보시면 좋을 것 같아요.

Q.

오픈소스 컨트리뷰터를 지속하면 좋은 점이나, 하나의 오픈소스에 장기간 기여하면 좋은 점이 있을까요?

profile

인제님

저는 커리어적으로도 직접적인 도움이 된다고 생각해요!
가장 좋은 건 “이 기여를 안 했다면 아예 알지 못했을 새로운 관점이나 경험할 수 없었던 기회들”이 생긴다는 거예요.
일단 기여를 지속한다는 건, 저희가 현대 문명에 어떤 식으로든 ‘기여’를 하고 있는 거잖아요? 그 부분만으로도 너무 좋고요.

또, 커리어적으로 도움이 되는 건 “내가 기여했다”는 흔적이 전부 남아있다는 점이에요.
예를 들어, 면접 상황에서 더 이상 증명할 필요도 없이 제가 기여한 PR을 통해 이야기를 하면 되거든요.
이미 머지가 됐고, 검증된 자료니까 굉장히 직접적으로 도움이 되죠.

그리고 기여하면서 더 좋은 것은 새로운 인연들이 많이 생긴다는 거예요.
오픈소스를 안 했다면, 지구 반대편에 있는 개발자랑 이야기할 기회가 없었을 텐데 오픈소스를 통해서 인연이 생기고,
서로 관심사가 맞거나 재밌는 주제가 있으면 협력하면서 관계를 이어나갈 수 있더라고요.

게다가 기여하는 사람들이 생각보다 많지 않잖아요. 그래서 오픈소스 기여자들끼리 서로 도움 주고받으면서 신뢰를 쌓으면,
거기서 더 많은 기회가 생기고 새로운 사람들을 만나게 돼요. 저에게는 그게 가장 큰 장점이라고 생각해요.

Q.

바쁜 일정 속에서도 오픈소스 기여를 지속하게 만드는 동기나 습관은 무엇인가요?

profile

인제님

저는 3년 넘게 꾸준히 기여를 이어오고 있어요.
그리고 그 과정에서 오픈소스 기여가 10년, 20년 먼저 개발해오신 분들이 우리를 위해 남겨놓은 소중한 문화라는 걸 느꼈어요.

우리가 이렇게 개발자로 살 수 있는 것도, 인터넷이 처음 만들어질 때부터 모두가 지식을 공유하고 서로 도우면서 발전시켰기 때문이잖아요.
운영체제(OS)도 세계 각지의 사람들이 함께 기여하고 협력한 결과로 만들어졌고요.
그렇기 때문에 지금 우리가 개발자라는 커리어로, 상대적으로 편하게 생활하고 좋은 보수를 받으면서 일할 수 있다고 생각해요.
그게 정말 소중한 문화이자 중요한 유산인데, 최근에는 기여 문화가 점차 사라지고, 기여에 대한 존중 또한 예전만 못한 모습을 종종 보게 되어서 안타깝더라고요.

그래서 저는 이 문화를 더 많은 사람들에게 알리고, 가치를 높이기 위해 기여를 이어가고 있어요.
또, 오픈소스 멘토링을 통해 다른 분들의 기여를 돕는 이유도 이 귀한 문화가 계속 이어지길 바라기 때문입니다.

mentoring-example 진행했던 오픈소스 멘토링 목록 캡처

“나도 이 문화를 후대 개발자들에게 물려주고 싶다”라는 마음이 정말 커서, 그 마음 하나로 지금도 열심히 활동하고 있습니다.

Q.

오픈소스 프로젝트 기여가 본인에게 어떤 가치를 준다고 생각하시나요?

profile

인제님

일단 기술적으로 많이 성장했어요. 사이드 프로젝트나 회사 서비스 개발로는 볼 수 없었던 훨씬 더 넓은 세상이 오픈소스에 있더라고요.
다양한 관점을 접할 수 있었고, 현대 문명을 지탱하는 소프트웨어들이 어떻게 만들어지고
진화해가는지 오픈소스 기여를 통해 처음으로 깨닫게 됐어요.

또, 새로운 인연도 정말 많이 만났고요. 그리고 방금 말씀드렸듯이,
이 오픈소스 기여 문화 자체가 결국 10년, 20년 먼저 개발하신 분들이 우리에게 남겨준 귀중한 유산이잖아요.
그래서 “우리가 지금 그 길을 이어가고 있다면, 적어도 소멸은 막아야 하지 않을까” 하는 가치관도 생긴 것 같아요.

Q.

마지막으로, 오픈소스에 처음 기여하려는 사람들에게 가장 먼저 추천하고 싶은 단계는 무엇인가요?

profile

인제님

오픈소스를 “혼자서 해야 한다”는 고정관념을 과감히 버려보시면 좋을 것 같아요.
정말 도움을 받아보는 것을 적극 권장하고 싶습니다.
저도 혼자 기여를 시작해보려고 1년 넘게 고생하다가, 결국 도움을 받고 나서야 본격적으로 기여를 시작할 수 있었거든요.

사실 오픈소스라는 영역은 혼자 하는 것보다, 조금이라도 남의 도움을 받으면서 함께 하면 생각보다 훨씬 쉽게 도전할 수 있더라고요.
예를 들어, 음악을 처음 배울 때도 거의 대부분 레슨을 받잖아요?
그런데 오픈소스는 이상하게도 다들 혼자서만 열심히 하려고 하시더라고요. 그래서 저는 “도움을 꼭 받아보시라”고 말씀드리고 싶어요.

도움이 필요하신 분은 오픈소스 멘토링 블로그에 오셔서 멘토링에 참여해 보시면 좋을 것 같습니다.




  • 이번 인터뷰를 통해 인제님의 오픈소스 기여 여정과 기술적 성장, 그리고 선한 영향력을 발휘하며 커뮤니티에 기여하는 모습을 알아볼 수 있었습니다.
  • 오픈소스에 대한 열정과 지속적인 노력이 어떻게 개인의 역량을 키우고, 더 나아가 공동체에 긍정적인 영향을 미칠 수 있음을 느낄 수 있었습니다 🚀
  • 인제님께서는 오픈소스 멘토링을 운영 중이신데요, 오픈소스에 관심이 있는 분들에게 많은 도움이 될 것 같아요!
  • 이상으로, 오픈소스 기여 시리즈 마지막 이야기를 마치겠습니다. 감사합니다! 🙏

오픈소스 멘토링 블로그: https://medium.com/opensource-contributors
멘토링에서 함꼐만든 200+개 PR과 기부: https://chip-bream-9d5.notion.site/459f46f1dbe048ffbb7ef04fd9dcc6a6
오픈소스 멘토링 오픈챗: https://open.kakao.com/o/ghrD0mUf

Profile

인제님의 github

https://github.com/injae-kim