Computer >> 컴퓨터 >  >> 시스템 >> Mac

Node-Pixel로 온라인 오픈소스 커뮤니티 구축하기: 앤드류 피셔의 접근 방식

Node-Pixel로 온라인 오픈소스 커뮤니티 구축하기: 앤드류 피셔의 접근 방식

Gitter 제공

앤드류 피셔(Andrew Fisher)는 하드웨어와 소프트웨어를 결합해 아름다운 조명 효과를 만드는 프로젝트를 진행하고 있는 개발자입니다. 그는 자신의 프로젝트를 중심으로 오픈소스 커뮤니티를 육성하고 관리하는 노하우에 대해 이야기해 주었습니다. 그의 이야기를 확인하고 Node-Pixel Gitter 채널도 방문해 보세요.

자기소개와 Node-Pixel 커뮤니티에 대해 소개해 주세요. Node-Pixel은 무엇이며, 어떻게 시작되었나요?

저는 20년 경력의 웹 개발자이며, 현재 LUXE City Guides의 CTO입니다. 항상 다양한 형태로 오픈소스 커뮤니티에 관여해 왔고, 최근 몇 년간은 자바스크립트 로보틱스(NodeBots) 커뮤니티에 깊이 참여하고 있습니다.

Node-Pixel은 바로 그 커뮤니티에서 자연스럽게 탄생했습니다. 이 프로젝트는 하드웨어와 소프트웨어(자바스크립트)를 결합해 아름다운 조명 효과를 만드는 데 특화되어 있습니다. JS 하드웨어 세계에서는 예전부터 이런 작업을 쉽게 할 방법이 없었고, 저는 예쁜 조명에 약해서 직접 만들기로 결심했습니다.

커뮤니티는 Johnny-Five와 NodeBots 커뮤니티의 하위 집합으로, 하드웨어 조명에 특별히 관심 있는 사람들로 구성되어 있습니다. 다른 그룹은 전통적인 로보틱스나 홈 오토메이션 등에 더 관심이 있죠. 이 프로젝트에는 전 세계의 놀랍도록 재능 있는 개발자들이 커밋을 남겼고, 덕분에 자바스크립트로 하드웨어 조명을 손쉽게 제어한다는 목표를 실현할 수 있었습니다.

커뮤니티로서 공통된 목표가 있다면 무엇인가요?

앞서 말씀드린 것처럼, 사람들이 자바스크립트로 하드웨어를 다루길 바라는 것이고, 특히 복잡한 하드웨어도 간단한 방법으로 다룰 수 있게 만드는 것입니다.

요즘 Node-Pixel 프로젝트와 관련해 가장 기대되는 이슈는 무엇인가요?

단연코 Interchange와의 통합입니다. Interchange는 제가 함께 참여 중인 프로젝트이기도 한데요. Interchange는 pip가 파이썬 모듈에, npm이 자바스크립트 모듈에 해주는 역할을 하드웨어 펌웨어 영역에서 해결해 줍니다. 즉, 특정 대상을 위한 패키지 관리 시스템이죠. Node-Pixel 프로젝트가 JS 하드웨어 세계에서 이런 필요성을 보여줬고, 그래서 Interchange가 탄생하게 되었습니다. 따라서 Interchange와 완전히 호환되도록 만드는 것이 큰 목표입니다.

그다음 큰 과제는 라이브러리가 애니메이션 같은 기능을 더 잘 처리할 수 있도록 발전시켜, 정교한 조명 효과를 Node.js 또는 잠재적으로는 브라우저에서 직접 실행할 수 있게 만드는 것입니다.

커뮤니티를 만들고 유지하면서 가장 중요하게 고려한 요소는 무엇인가요? 커뮤니티 성공에 기여하는 요소는?

가장 큰 요소는 역시 투명성이라고 생각합니다. 지리적으로 떨어져 있는 사람들 간의 협업을 촉진하기 위해 Gitter와 GitHub 이슈를 적극 활용합니다. 토론 기록이 남아 있으면, 특히 프로젝트를 사용하지만 직접 기여하지는 않는 사람들에게 어떤 결정의 배경과 근거를 설명하기가 훨씬 쉬워집니다.

이와 관련해 우리는 프로젝트 기여 시 행동 강령(Code of Conduct)을 준수하며, 처음부터 열려 있고 신뢰할 수 있으며 안전하고 책임감 있는 커뮤니티를 만들기 위해 노력해 왔습니다. 이런 기준을 "당연한 것"으로 정해두면 사람들이 참여할 때 그 기준을 자연스럽게 받아들이는 것 같습니다. Node-Pixel은 이 점에서 잘 되어 왔지만, 사실 이는 Johnny-Five와 자바스크립트 생태계 전반에서 안전한 공간을 만들기 위해 이뤄온 더 넓은 노력에 많은 빚을 지고 있습니다.

커뮤니티를 관리하면서 겪는 주요 어려움은 무엇인가요?

시차 문제입니다!!!!

저는 호주에 있고 협업자 대부분은 미국과 유럽에 있습니다. 기능을 함께 개발할 때 작업 시간이 겹치는 구간을 찾는 게 정말 어렵습니다. 태평양이나 인도양을 절반으로 줄일 수 있다면 좋겠네요 ;)

Gitter의 Node-Pixel 프로젝트 채널에서 주로 다뤄지는 주제는 무엇인가요?

일상적인 대화 대부분은 프로젝트 사용자 지원에 관한 것입니다. 우리는 Gitter를 주요 지원 채널로 활용한다는 점을 적극적으로 알리고, 사람들이 채널에 들어와 질문하도록 권장합니다. 덕분에 사람들이 아주 빠르게 프로젝트를 시작하고 실행할 수 있습니다.

그 외에 기능을 개발할 때는 접근 방식에 대한 활발한 토론, 코드 리뷰 메모 등 오가는 대화가 많습니다. GitHub도 물론 도움이 되지만, 우리는 좀 더 자유롭게 의견을 나누며 방향을 잡을 때는 Gitter를 쓰고, 이슈와 해결 과정을 문서화할 때는 GitHub을 활용하는 경향이 있습니다.

지난 몇 년간 오픈소스 커뮤니티가 변화하고 발전했다고 느끼시나요? 그렇다면 어떻게요?

확실히 그렇습니다. 좋은 면과 나쁜 면이 모두 있습니다. 한편으로 오픈소스는 소프트웨어를 만드는 방식의 상당 부분에서 사실상 "승리"했습니다. 개발자라면 누구나 자신의 프로젝트에서 실행되는 코드를 보고, 검증하고, 수정할 수 있기를 원합니다. 이런 점에서 소프트웨어 개발은 모든 사람에게 훨씬 더 열려 있게 되었고, 미래의 개발자들이 정보 부족으로 인해 과거의 실수를 반복하지 않고 배워나가기를 바랍니다.

나쁜 점은, 일부 사람들이 자유·오픈소스 소프트웨어의 "무료"라는 측면만 소비하는 경우가 많다는 것입니다. 프로젝트 사용자들이 자신이 요청했으니 버그 수정이 즉시 이뤄지거나 새 기능이 추가되기를 기대하는 거죠. 이런 태도를 완화하기 위해 다양한 도구를 활용해 사람들과 소통하는 능력은 매우 소중합니다. 종종 누군가가 기여에 동참하도록 독려하고, 원하는 기능을 스스로 프로젝트에 만들어 보게 할 수 있으니까요.

전반적으로 커뮤니티는 이제 진정한 '커뮤니티'가 되었다고 생각합니다. 장점이 분명히 단점보다 크다고 믿습니다. 하지만 모든 프로젝트가 더 나은 경험을 할 수 있도록 무엇을 할 수 있을지 항상 고민해야 합니다.

처음부터 온라인 오픈소스 커뮤니티를 시작하고 싶은 분에게 조언을 주신다면?

혼잣말을 하세요.

이상하게 들리겠지만, 프로젝트를 혼자 진행할 때는 종종 막막합니다. 아이디어가 생기고, 코드를 올려두고, 사람들이 흠집을 내기를 기다리는 거죠. 스스로를 비판에 내놓는 것이니 정말 어려울 수 있습니다.

제가 이것을 극복하는 방법 중 하나는 GitHub에 이슈를 만들고 스스로에게 할당하는 것입니다. 제 코드를 직접 리뷰하고 메모를 남기며, 수정이 필요한 부분은 티켓으로 올립니다. 아무도 읽지 않을 것 같아도 Gitter에 현재 진행 상황 등을 자주 기록하기도 합니다.

그런데 재미있는 점은, 이 방식이 나중에 다른 사람들에게 프로젝트를 설명할 때 더 다듬어진 언어로 말하는 데 도움이 된다는 것입니다. 또한 프로젝트에 대한 문서, 판단 근거, "활기"가 차곡차곡 쌓여서 다른 사람들이 기여하기가 훨씬 쉬워집니다. 혼잣말하는 미친 사람과 협업한다고 생각하더라도요(사실 우리 모두 그러니까요).

그래서 제 조언은 혼잣말을 하세요. 프로젝트를 명확하게 표현하는 데 도움이 되고, 당신을 다가가기 쉬운 사람으로 만듭니다. 커뮤니티는 결국 한 사람에서 시작되니, 그 시작점이 되는 사람이 되세요.

감사합니다!


무료로 코딩을 배워보세요. freeCodeCamp의 오픈소스 커리큘럼은 이미 4만 명 이상이 개발자로 취업하는 데 도움을 주었습니다. 지금 바로 시작해 보세요.