끄적거림

2025 오픈소스 컨트리뷰션 아카데미 ( OSSCA ) 활동 후기

코줍 2025. 5. 26. 22:35

PR Agent 프로젝트 활동내용

PR 문화와 코드 리뷰 자동화 도구에 관심을 갖기 시작하던 시기에,
운 좋게도 좋은 기회가 찾아와 참여하게 되었던 OSCCA PR Agent 프로젝트 활동이 마무리되었다.
 

어떻게 진행됐었더라?

멘토님께서 이전 세션 때는 개인과제만 주셨다고 했는데, 이번 PR Agent 프로젝트에서는 5개의 팀을 구성해 팀원들과 함께 오픈소스 기여 과정을 직접 경험하도록 해주셨다.
 
구성된 팀끼리는 매주 1시간 이상 정기모임을 진행했고, 주차마다 주어지는 과제에 대해 논의했다.
또, 일요일마다 멘토님과 다른 멘티분들까지 함께 정기모임을 진행하면서 학습 및 기여 진행상황들을 공유하고 피드백 하는 시간을 가졌다.
 

1  ~ 3 주차

실제로 PR Agent에 기여 작업을 하기전에, 필요한 학습을 주로 진행했던 주차였다.

  • 1주차 : Git 활용, LLM, Gemini API 사용법, PR 작성 및 리뷰 방법 학습
  • 2주차 : PR Agent 아키텍처 및 핵심기능 조사 / 다른 코드리뷰 도구 비교분석 / RAG | A2A | MCP 개념 공부
  • 3주차 : PR Agent의 아키텍처와 핵심 기능을 이해 / PR Agent의 주요 도구의 동작 방식을 코드레벨에서 분석 및 이해

생각보다 LLM에 대해 공부해본 적이 없는 멘티들이 많았던 터라, 정기 모임 때 멘토님께서 "이 정도 개념은 알고 있어야 한다"며 개인 학습 과제를 추가로 주셨던 기억이 난다 ㅋㅋㅋㅋ. RAG, A2A, MCP 개념이나 temperature처럼 LLM 관련해서 꼭 알아야 할 용어나 개념들을 중심으로 학습 방향을 제시해 주셨던 것 같다.
 

4 ~ 6주차

1 ~ 3주차 때, 공부하고 분석했던 사항들을 토대로 해서 실질적으로 오픈소스 기여활동을 진행했다 주차였다.
 
4주차 : PR Agent Contribution Ideation
팀원들끼리 각자 PR Agent에 기여할만한 아이디어를 고민한 뒤, TOP3 아이디어를 선정했다.
선정원인과 구현방법, 그리고 구현했을 때의 기대효과 등을 발표했고 피드백을 통해 가장 좋은 아이디어 1개, Sequence Diagram Support 기능을 기여 아이디어로 최종 선정했다. ( PR에 포함된 소스코드 파일에서 컴포넌트 및 함수의 호출흐름을 Sequence Diagram으로 자동생성해주는 기능이다. )
 
이 과정에서 PR Agent의 Issue를 활용해서, 메인테이너에게 우리팀의 기여 아이디어를 제안했다.
긍정적인 반응이 돌아왔고, 어떻게 구현하라는 간단한 가이드라인을 피드백 받아서 오픈소스 기여 전에 이런식으로 메인테이너와 기여의 정당성을 가지고 출발할 수 있었던 게 좋았던 것 같다.
 
5주차 : 조별 기여 아이디어 구현 과제 선정 및 구현 시작
메인테이너 그리고 멘토님과의 빠른 피드백 덕분에 구현과제 시작을 빨리할 수 있었다. ( 빠르게 질문한 것도 한 몫한 것 같다 )
팀원들 각자 구현을 해보고 조모임에서 구현과정에서 어떤 게 더 필요했는지 공유하는 시간을 가졌다.
 
다만, 문제가 있었다...
메인테이너의 가이드라인 대로 구현했을 때, prompt 성능이 워낙 좋다보니 매우 빠르게 구현할 수 있었으나 추가?수정?이 들어간 코드가 몇 줄 되지 않았다는 점이다.
그래서 팀모임을 했을 때, 이미 예상하던 기능이 전부 구현이 됐고 팀원들끼리도 작업한 코드가 너무 겹친다는 게 문제였다.
 
바로 멘토님께 SOS...🚨
 
6주차 : 조별 기여 아이디어 PR 제출 
멘토님께선 구현에 목표가 있기 보단, 구현한 기능 자체가 new feature 이기 때문에 그리고, prompt 의존도가 크기 때문에 여러가지 검증을 해보라는 조언을 받았다. 기여라는 기록에 집착하기 보단, 검증과정에서 좀 더 디깅해보라는 메세지를 주셨던 것이다. 🥹🥹
 
그래서 팀원들과 검증 과정을 3갈래로 나누고, 2명씩 한 개의 과정을 진행하고, 팀모임에서 진행사항을 공유했다.
 
결론은...
검증 방향성이 애매한 것 같아서, PR을 먼저 날려보고 메인테이너의 피드백을 들어보기로 했다.
 

활동 후기

아쉬운점 투성인 후기
결론만 놓고 봤을 땐, PR 날린 게 성공적으로 머지가 되었다.
결과론적인 의미로는 공식 문서에도 팀원들과 함께 구현한 새 기능이 노출되고 있어서 좋았다.
 
자랑할만한데...
 
사실 이후에 prompt 튜닝이라던가, 추가적인 테스트를 했던 주체는 메인테이너였다. ( 메인테이너가 날린 추후 PR )
 
어제 마지막 정기모임까지만 하더라도, 활동을 잘 마무리했고 나름 조장으로서 책임감 있게 하려했던 자신에게 뿌듯함을 느꼈었는데, 오픈소스 기여 과정에서 어떤 문제를 고민했고, 그것을 검증하기 위해 무엇을 고려했는지에 대한 깊은 고찰이 부족했다는 생각이 들었다.
 
결국 어떤 일을 하든 ‘고려’와 ‘고찰’ 속에서 진짜 배움이 생긴다는 걸 알았지만, 1~3주차 동안 LLM에 대해 공부하며 얻었던 통찰과 감각을 오히려 기여 활동 주차에 더 적극적으로 활용했어야 했는데, 눈에 보이는 결과물에만 집착했던 건 아닐까 하는 스스로에 대한 아쉬움이 매우...많이..남는다. 다른 팀의 멘티들 중에는 문제에 깊이 파고들고 진지하게 공부하며 디깅했던 분들도 있었고, 그런 모습을 보면서 스스로 더 많은 고민과 성찰이 필요했다는 걸 새삼 느끼게 된다.
 
조만간 열릴 참여형 세션에 다시 지원하게 된다면, 이번 활동에서 느꼈던 아쉬움을 복기하며, 결과보다는 과정 속에서 무엇을 배우고 어떤 인사이트를 얻을 수 있을지에 더 집중해보고 싶다.
 
그럼에도 불구하고 좋았던 경험은요..!
 
팀원들을 포함한 다른 멘티들이 일, 학업, 취준 등 각자의 바쁜 일상 속에서도 정말 열심히 활동에 참여하는 모습을 보며, 매 순간 큰 자극을 받을 수 있었다. 특히 기술적으로 깊이 있는 고민을 이어가던 몇몇 멘티들의 모습을 보며, 경력과 무관하게 많은 인사이트를 얻을 수 있었다.
또한 디스코드에서 다른 팀들의 채팅방을 눈팅하면서 과제물이나 회고, 각자의 고민을 엿볼 수 있었는데, 그 과정에서 내가 생각하지 못했던 방향성을 배우기도 하고, 지식과 경험이 활발히 오가는 현장에 함께 있다는 것 자체가 무척 값진 경험이었다.
 
또한 정기모임 때마다 결과보다는 그 과정에서 무엇을 느끼고 배우는지가 더 중요하다고 늘 강조해주신 멘토님께, 마지막 즈음엔 그런 방향으로 충분히 응답하지 못한 것 같아 죄송한 마음이 들었다.
그럼에도 불구하고 언제나 따뜻하게 방향을 제시해주시고, 정답보다는 스스로 고민해볼 수 있도록 이끌어주신 점이 정말 감사했고, 그 덕분에 이번 활동을 통해 많이 배울 수 있었던 것 같다.
 
아 그리고, 언제 추가점수를 받게 된 건진 모르겠지만, 활동 MVP로 선정되었다.
받을 자격이 있나 라는 생각이 점점 짙어지고 있지만, 뭔가를 보고 판단하셨으리라 믿고 나중에 멘토님 만나면 여쭤봐야겠다.
아무튼 매우 감개무량 하고요... if 카카오, 늘 가고싶던 컨퍼런스였는데 상품으로 초대권을 받게 되어서 너무 행복하고 매우매우 기대가 된다!


진짜 끝났다!

 

개인적으로 조금은 아쉬움이 남았던 활동이었지만, 그래도 끝까지 잘 해냈던 것 같다.