개발자들이 면접에서는 말하지 않지만 GitHub에선 보여주는 것
Source: Dev.to
KServe와 함께 사용성 연구 프로젝트를 시작했을 때, 나는 KServe 사용자들과 대화를 나누며 그들이 플랫폼을 사용하면서 겪는 어려움을 파악했습니다. 그 대화 속에서 사용자들은 GitHub 이슈와 개발·배포 과정에서 마주치는 문제들을 자주 언급했습니다.
이 경험을 계기로 엔지니어들이 GitHub 저장소를 활용하고 오픈소스 커뮤니티에서 협업하며 문제를 해결하는 방식을 탐구하게 되었습니다. 연구를 진행하면서 기사와 학술 논문을 읽게 되었고, 이는 가장 효과적인 접근법이며 많은 조직이 이미 개발자 문제를 파악하기 위해 이 방법을 사용하고 있다는 것을 알게 되었습니다.
GitHub 마이닝(리포지토리 마이닝, 이슈 마이닝, 소프트웨어 리포지토리 마이닝이라고도 함)은 실제 사용자와의 인터뷰나 설문만으로는 파악하기 어려운 현실적인 상호작용을 통해 사용자 과제를 이해할 수 있기 때문에 오픈소스 생태계에서 사용자 연구·UX 연구 방법으로 점점 더 많이 활용되고 있습니다.
연구 논문 링크:
- Mining Developer Behavior Across GitHub and Stack Overflow (Xiong et al., 2017)
- Understanding Java Usability by Mining GitHub Repositories (Lemay, 2018)
- Insights from GitHub Community on the Matter Standard: Developer Perspectives and Challenges (Hassan, 2026)
나는 1:1 사용성 연구 세션을 진행하면서 동시에 GitHub 마이닝 과정을 탐색하기 시작했습니다. 이 연구를 통해 개발자들이 어떻게 작업하고, 협업하며, 이슈를 보고하고, 오픈소스 커뮤니티에서 문제를 해결하는지에 대해 많은 것을 배웠습니다.
이 글에서는 다음 주제를 다루고자 합니다.
- 사용자 연구에서 GitHub 마이닝 프로세스란 무엇인가?
- 왜 이러한 연구를 수행해야 하는가?
- 어떻게 개발자 고충을 식별할 수 있는가?
- 발견된 인사이트가 커뮤니티와 개발자에게 어떤 식으로 전체 개발자 경험(DX) 및 KServe와 같은 오픈소스 도구의 사용성을 향상시키는 데 기여할 수 있는가?
시작해 보겠습니다…
GitHub 마이닝이란?
GitHub 마이닝은 GitHub 저장소(이슈, 풀 리퀘스트(PR), 토론, 댓글, 커밋, 문서 변경, 기능 요청 등)에서 데이터를 체계적으로 수집·분석하여 사람들이 소프트웨어를 어떻게 사용하고 어디서 문제를 겪는지 이해하는 연구 방법입니다.
UX 관점에서 보면, GitHub은 방대한 사용자 피드백과 행동 기록이 축적된 아카이브가 됩니다.
“어떤 사용성 문제를 겪고 있나요?” 라고 직접 묻는 대신, 연구자는 다음과 같은 항목을 살펴봅니다.
- 버그 보고
- 질문
- 설정 오류
- 기능 요청
- 지원 토론
- 우회 방법
- 문서 불만
- 지연된 PR 토론
- 커뮤니티 대화
이러한 항목들은 모두 사용자 경험을 나타내는 신호가 됩니다.
GitHub 마이닝을 수행하는 이유는 전통적인 UX 방법만으로는 전체 그림을 파악하기 어려운 경우가 많기 때문입니다. 오픈소스 프로젝트는
- 수천 명의 사용자
- 전 세계에 분산된 기여자
- 최종 사용자에 대한 접근 제한
- 비동기식 커뮤니케이션
과 같은 특성을 가지고 있습니다. GitHub은 실제 사용자들이 겪는 어려움을 시간 순으로 기록한 역사를 제공하므로, 연구자들은 이를 활용해 보다 포괄적인 인사이트를 얻을 수 있습니다.
연구자들이 GitHub 마이닝을 하는 목적
-
대규모 사용성 문제 발견
전통적인 인터뷰는 보통 10명 정도의 소규모 참가자를 대상으로 진행됩니다. 반면 GitHub 마이닝을 통해서는 수백, 수천 건의 이슈·PR·토론·기능 요청을 분석해 전체 커뮤니티에 공통된 패턴을 찾아낼 수 있습니다. 예를 들어 전체 이슈 중 300건은 배포 문제, 100건은 가시성(Observability) 불만, 50건은 문서 개선 요청이라는 식으로, 개별 인터뷰로는 놓치기 쉬운 트렌드를 한눈에 파악할 수 있습니다. -
실제 사용자 행동 이해
사용자가 GitHub에 이슈를 올릴 때는 “무엇을 하려 했는지”, “어디서 막혔는지”, “어떤 설정 실수를 했는지”, “기대와 다른 점” 등을 상세히 기술합니다. 이러한 기록은 실제 워크플로와 사용 환경을 그대로 보여주므로, 설계자가 가정하는 사용 방식이 아니라 실제 사용자가 겪는 상황을 파악할 수 있습니다. 예를 들어, 도구를 배포하려는 개발자가 설치 가이드가 모호하고, 필요한 설정이 누락됐으며, 오류 메시지가 충분히 안내하지 못한다는 점을 지적하는 경우가 이에 해당합니다. -
제품 진화 추적
GitHub은 이슈·토론·수정·릴리즈 등 모든 활동을 시간 순으로 보관합니다. 따라서 특정 문제가 언제 처음 등장했는지, 얼마나 오래 해결되지 않았는지, 그리고 해결책이 실제로 후속 이슈를 감소시켰는지를 추적할 수 있습니다. 예를 들어 배포 프로세스를 재설계한 이후 이슈 발생 빈도가 감소했는지를 비교 분석함으로써, 디자인·문서·기술 개선이 실제 효과가 있었는지를 검증할 수 있습니다. -
증거 기반 디자인 결정
설계 변경을 “사용자들이 배포 단계에서 혼란스러워한다”는 주관적 판단이 아니라, 실제 데이터에 근거해 제시할 수 있습니다. 예를 들어 “전체 이슈의 37%가 배포 가시성 문제와 관련돼 있다”는 구체적인 수치를 제시하면, 제품 개선 우선순위를 정할 때 훨씬 설득력 있는 근거가 됩니다. 이러한 증거는 UX 연구자, 제품 팀, 엔지니어, 오픈소스 유지보수자가 어디에 자원을 투자하고, 사용성을 어떻게 개선할지에 대한 의사결정을 지원합니다.
GitHub 마이닝이 활용되는 단계
GitHub 마이닝은 연구·제품 개발 라이프사이클의 여러 단계에서 적용될 수 있습니다. 각 단계마다 목표가 다르지만, 모두 사용성 향상에 기여합니다.
-
발견 단계
연구자는 GitHub 데이터를 분석해 사용자 고충을 식별합니다. 이 과정에서 가장 흔히 발생하는 문제를 파악하고, 이후 디자인·개발 방향을 설정합니다. -
가설 설정
설문이나 인터뷰를 진행하기 전에, 과거 이슈 데이터를 검토해 패턴을 찾아 가설을 수립합니다. 예를 들어 “많은 사용자가 배포 어려움을 호소한다”는 가설이 있으면, 인터뷰 질문을 배포 워크플로와 온보딩 경험에 초점을 맞춰 설계합니다. -
제품 리디자인
리디자인 과정에서 GitHub 마이닝을 활용해 기존에 발견된 문제들이 여전히 존재하는지 확인하고, 새로운 개선점이 실제 사용자에게 어떤 영향을 미치는지 검증합니다. 이를 통해 의견이 아닌 실제 데이터에 기반한 우선순위 설정이 가능합니다. -
지속적인 UX 모니터링
연구자는 정기적으로 이슈 트렌드를 추적해 전반적인 사용성 건강 상태를 측정합니다. 지속적인 분석을 통해 신흥 문제를 조기에 감지하고, 변화 추이를 관찰함으로써 제품이 지속적으로 개선되는지를 확인할 수 있습니다.