패널은 각 프로젝트의 개발 배경과 목적을 소개하는 것으로 시작되었습니다.
프로젝트 소개 및 개발 배경
-
Johnny (Superglue): 10년 전 단일 페이지 애플리케이션(SPA)의 복잡성에 대한 불만에서 시작되었습니다. Rails와 React 간의 호환성을 탐구하여 개발 프로세스를 단순화하고 효율성을 높이는 것을 목표로 합니다.
-
Elena (Rue): 오늘 론칭된 프로젝트로, CSS 프로젝트의 견고한 기반을 제공하여 개발자들이 Tailwind와 같은 프레임워크 없이도 네이티브 CSS를 활용하여 확장 가능하고 유지보수하기 쉬운 디자인 시스템을 구축하도록 돕습니다. 초기 프로젝트 설정 시 CSS 시작점에 대한 질문이 많았던 점이 개발 계기가 되었습니다.
-
Nick (Administrate): 약 8년간 유지보수해 온 Rails 관리자 대시보드 솔루션입니다. 수많은 관리자 대시보드 솔루션 중 Administrate의 개념적 작동 방식에 매력을 느껴 유지보수를 시작했습니다. 사용자들이 Rails 애플리케이션에서 빠르고 쉽게 관리자 대시보드를 생성할 수 있도록 지원합니다.
-
Remy (Astronomy): 과학 천문학 Gem으로, 천문학적 계산 방식을 이해하고 이를 오픈 소스로 제공하기 위해 시작되었습니다. Python에 유사한 라이브러리가 많지만, Ruby의 언어적 특성과 패턴을 활용하여 동일한 기능을 Ruby로 구현하고자 하는 열정에서 비롯되었습니다.
오픈 소스 기여 및 유지보수
-
오픈 소스 선택 이유: Johnny와 Elena는 오픈 소스가 기본값이며, 공유와 협업의 자연스러운 방식이라고 설명했습니다. Elena는 개인적인 책임감을 유지하고 다양한 아이디어를 환영하기 위한 방법으로 오픈 소스를 선택했습니다.
-
유지보수의 도전과제: Nick은 Administrate와 같이 광범위하게 사용되는 프로젝트의 경우, 변경 사항이 미치는 영향이 크므로 ‘느리고 신중하게’ 업데이트하는 것이 중요하다고 강조했습니다. 코드 폐기 시 Active Support의 폐기 기능을 활용하고, 테스트 스위트를 통해 변경 사항을 감지하도록 하며, Rails 버전 지원 범위를 넓게 가져가는 것이 중요하다고 언급했습니다. 또한, 프로젝트를 ‘지루하게’ 유지함으로써 사용자들이 쉽게 오버라이드하고 확장할 수 있도록 하는 것이 목표라고 밝혔습니다.
-
시간 관리 및 기여 조언: Remy는 ThoughtBot의 투자 시간을 활용하며 개인 시간도 할애한다고 밝혔습니다. 그는 오픈 소스 기여가 반드시 새로운 기능 개발이나 큰 버그 수정일 필요는 없으며, 문서화 작업부터 시작하거나 자신의 작은 프로젝트를 오픈 소스화하는 것도 좋은 방법이라고 조언했습니다. Nick은 일상 업무의 일환으로 오픈 소스 도구를 사용하면서 문제가 발생하면 기여하는 것이 자연스러운 과정이라고 말하며, 매일 45분씩 PR을 검토하는 시간을 할애한다고 언급했습니다. Johnny는 오픈 소스 작업이 개인적인 ‘탈출구’ 역할을 했다고 말하며, 각자의 오픈 소스 여정은 독특하다고 강조했습니다.
-
개발자로서의 성장: Johnny는 오픈 소스 프로젝트를 통해 버전 관리, 문제 해결, 그리고 예상치 못한 상황에 대처하는 법을 배웠다고 말했습니다. Remy는 다양한 관점에서 문제를 분석하고, 이전 버전과의 호환성을 고려하며, Ruby의 DNA에 맞는 API를 설계하는 과정에서 더 나은 개발자가 되었다고 설명했습니다.
향후 계획
-
Elena (Rue): 초기 단계인 만큼 사용자 피드백과 커뮤니티 기여를 통해 프로젝트를 발전시키는 것이 최우선 목표입니다.
-
Nick (Administrate): 문서화를 심화하여 사용자들이 커스텀 필드를 개발하고 프로젝트를 확장할 수 있도록 돕고, 테스트 커버리지를 강화하는 데 집중할 계획입니다.
-
Remy (Astronomy): 더 많은 사용 사례와 피드백을 통해 천문학 데이터를 보편적으로 활용하고, 새로운 아이디어와 관점을 가진 기여자들을 환영합니다.
-
Johnny (Superglue): Superglue 2.0 출시, 문서화 개선, 다양한 JavaScript 번들링 도구 지원, 그리고 기여하기 좋은 커뮤니티를 구축하는 것이 목표입니다.