오픈소스 활동에 대한 이야기

2025-03-19

저는 작년 여름부터 Yamada UI라는 오픈소스 UI 라이브러리의 코어 멤버로 활동을 하고 있습니다.


할 수 있는 작업의 양이 달마다 달라서 활동 횟수가 늘 일정하지는 않지만, 가장 열심히 활동했을 때는 한달 총 활동 횟수가 100회를 넘었을 정도로 열심히 기여하고 있습니다.


이렇게 시간이 지난 줄 몰랐는데 돌이켜보니 벌써 프로젝트 활동을 시작한지 반년이 넘었더군요.

그래서 이번 포스팅에서는 제가 6개월 동안 어떤 활동을 했으며, 또 활동을 통해 어떤 것을 얻었은지 정리해보려고 합니다.

image

OSS(Open Source Software) 활동을 시작한 계기

회사를 다니다보면 아무래도 늘 비슷한 회사 코드만 보는 게 일상이 되기 쉽습니다.

회사마다 차이가 있겠지만 대부분의 회사는 개발자 개인이 따로 신경을 쓰지 않으면 코드 퀄리티적인 측면에서 성장하기 어렵기도 하고요.

연차만 계속 쌓여가고 정작 본인의 코드 스타일은 1년 전에 짠 코드와 별 차이가 없다면 그건 개발 역량의 발전이 느리다는 경고 신호라고 생각합니다.

그래서 코드 스타일의 발전을 위해서는 우선 평소 접하던 것과 다른 인픗이 필요했고, 제가 좋은 코드를 많이 보기 위해 OSS에 관심을 갖게 된 것은 어찌 보면 당연한 일이었습니다.


기술과는 관계없는 사적인 이야기지만, 저는 일본인임에도 불구하고 한국에서 계속 일을 하고 있으니까 아는 일본인 개발자가 한 명도 없었습니다.

이 부분도 조금 아쉬웠기 때문에 가급적이면 일본인이 운영하는 프로젝트를 찾아서 기여해보기로 결심했습니다.


그렇게 찾게 된 것이 위에서 소개한 Yamada UI입니다. 딱 제가 원한 조건을 만족하는 오픈소스 프로젝트가 있어서 정말 신기하고 기뻤습니다. 😂

구체적인 오픈 소스 활동 및 운영 방식

Yamada UI는 이름에서 알 수 있듯이 야마다라는 분이 제작한 UI 라이브러리입니다. 이 분이 코드 오너이고, 멤버들은 한동안 들어오고 나가고 변동이 있었지만 요즘은 거의 픽스된 상태입니다. 지금 프로젝트 멤버는 여기서 확인할 수 있습니다.

보시면 메인테이너와 멤버로 나눠져 있는데, 사실 기여하는 내용에는 차이가 없습니다. 초기 때부터 기여해왔던 분들이 메인테이너라고 되어 있고, 나머지 멤버는 멤버라고 되어 있지만 사실 내부적으로 역할이 나뉘어있지는 않습니다.

하는 역할이 똑같으니까 현재 진행중인 v2.0 업데이트 작업이 끝나면 현재의 코어 멤버들도 메인테이너로 변경해 준다고 합니다. 표기만 되지 않았을 뿐 현재 메인테이너로 활동하고 있다고 생각하셔도 무방합니다.


Yamada UI는 매주 월요일 밤 10시애 디스코드 상에 모여서 회의를 합니다. 각자 지금 어떤 태스크를 맡아서 하고 있는지, 어려운 부분은 없는지 등의 내용들을 공유하고 의견을 나눕니다.

태스크는 보통 본인이 하고 싶은 태스크를 주도적으로 정해서 할 수 있습니다. 누가 강제로 일을 시키거나 하지는 않습니다. 하지만 코어 멤버가 되기 위해서는 꾸준하게 활동을 해야 합니다. 꾸준히 활동하지 않는다면 그냥 컨트리뷰터로서 기여하는 것이 되겠죠.

당연하겠지만 너무 활동이 미비하다면 멤버에서 짤릴 수도 있다…는 조금 무서운(?) 규칙도 있습니다.


방금 말씀드렸듯이 현재는 코드 베이스를 크게 변경하는 v2.0이라는 작업을 진행하고 있습니다.

오픈소스 프로젝트를 통해서 얻은 것

오픈소스 기여를 통해서 처음 생각했던 것보다 훨씬 더 많은 경험을 할 수 있었습니다.

문서 작성부터 시작해서 테스트 코드 작성, 새로운 컴포넌트 개발, 버그 픽스, 더 본격적인 코드 리뷰 등 전반적인 분야에 걸친 경험을 할 수 있었고, 회사에서 경험하지 못한 것들을 다 오픈소스 프로젝트를 통해서 경험했다고 해도 과한 말은 아닙니다.


저는 사실 Yamada UI에서 활동을 시작하기 전에 회사에서 디자인 시스템을 구축한 경험이 있었습니다.

그래서 UI 컴포넌트를 개발하는 것에 대해서 약간의 자신(?)을 가지고 참여를 했었죠...결과적으로 제가 우물 안의 개구리처럼 시야가 좁았다는 것을 금세 깨달았지만요.

기존에 회사에서 개발을 하던 것보다 고려해야 할 부분도 훨씬 많고, 설계부터 다르게 접근을 해야 하는 등 평소에 가지고 있던 개발에 대한 시야가 확 트이는 느낌이었습니다.

평소에 많이 해봤던 분야에서도 오픈소스 활동을 통해 새로운 인사이트를 얻으실 수 있으니 관심이 있으신 분들은 한 번 고려해보시면 좋겠습니다. 본인이 익숙한 분야여야 기여하기도 쉬울테니까 더 좋아요.


오픈소스 UI 라이브러리에 참여하면서 가장 도움이 된 것은 React Design Pattern에 대해 더 깊이 알게 되었다는 부분입니다. 코드를 보고 있으면 컴포넌트가 신기한 구조로 설계되어 있는 것을 여러번 보게 되었습니다. 처음에는 이해가 잘 되지 않더라고요… 그래서 Udemy에서 React Design Pattern에 대한 강의를 구매해서 수강하기도 했습니다. 디자인 패턴에 대해 공부하니까 코드도 이해가 되고, 또 컴포넌트를 설계하는 재미도 느끼게 되었습니다.

어떻게 하면 나중에 요구사항이 변경되었을 때 코드를 유연하게 수정할 수 있는 컴포넌트로 설계할 수 있을지, 확장성 좋은 UI 컴포넌트는 어떻게 만들면 될지, 이런 것을 고민하고 여러 가지 시도를 하는 게 정말 즐거워졌습니다.

프론트엔드 개발에 있어서 이런 재미(?)를 저에게 알려준 것이 Yamada UI였던 것 같습니다.

개발에 대한 흥미가 높아진 것 뿐만 아니라, 강의를 듣거나 책을 읽어도 막연하게 공부를 위한 공부를 할 때와 달리 실제로 바로 활용할 수 있으니까 이해도 잘 되고 동기부여도 잘 되었습니다.

학습 효율도 그러니 자연스럽게 더 높아졌죠.

글을 마치며…

지금까지도 활동을 통해 많은 것을 배웠지만, 처음보다 어느정도 성장한 지금은 오픈소스 기여를 통해 더 많은 성장을 이룰 수 있겠다는 생각이 듭니다.

조금 더 알게 되고 경험하게 되니까 할 수 있는 분야가 점점 넓어지는 것 같아요. 기술적으로 시도해보고 싶은 것들도 하나 둘 생기고요.

앞으로는 지금보다 더 많은, 그리고 더 질적으로 훌륭한 기여를 할 수 있는 멤버가 되는 게 목표입니다.

개인적으로 관심이 많은 컴포넌트 설계도 더 많이 해보면서 지금보다 더 잘하고 싶다는 욕심이 있습니다.

긴 글을 끝까지 읽어주셔서 감사합니다!

혹시라도 Yamada UI에 관심이 있거나 여기하고 싶으시면 망설이지 말고 기여해주세요!

Yamada UI




© 2025 Kae All Rights Reserved.