회고

[공모전 회고] 공개 SW 개발자 대회(오픈소스 개발자 대회) 회고

devkdh 2025. 12. 16. 09:26

2025년 12월 5일 코엑스에서 진행한 시상식을 끝으로, 거진 1년간 이어진 긴 프로젝트가 마무리되었다.

우리는 캡스톤 디자인으로 만든 프로젝트를 발전시켜 오픈소스 개발자 대회에 출전했다.

 

캡스톤 디자인  간략 회고

 

우리 팀은 졸업 작품(캡스톤 디자인)으로 완성도 높은 프로젝트를 만들기 위해 2024년 12월 26일부터 매일 아이디어 회의를 진행했다.

아이디어 회의 이후 2개의 주제에 대해 구체화와 기획을 진행했지만, 구현 복잡성, 보안적인 문제 등 여러 문제들로 인해 엎고 주제를 다시 선정했다. (대충 "자영업자 대상 기프티콘 생성 서비스", "로그인 관리 및 일회용 로그인 지원 서비스"였다.)

이런 과정을 통해 2025년 2월 25일, ‘온디바이스 기반 Graph-RAG 지식관리 시스템’이라는 주제를 확정했고, 이를 기반으로 본격적인 기획과 개발에 들어갔다.

 

RAG에 대한 지식이 없었기에 유튜브에 올라와있는 강의영상들을 보고 직접 실습해보면서 공부를 했다. 더 나아가서 Graph-RAG에 대해서도 공부를 했고 어떻게 구현을 하면 좋을 지 많은 고민을 했다. 좋은 성능을 만들어 내기 위해 계속 로직을 바꿔가며 개발을 진행했고,

최종적으로 아래와 같은 결과물을 만들어냈고 우수상을 받았다. 당시 RAG에 대한 이해가 부족했기 때문에 유튜브 강의 영상과 실습을 병행하며 기본 개념부터 학습했고, 이후 Graph-RAG까지 확장해 구현 방식과 설계 방향을 고민했다. 성능을 끌어올리기 위해 핵심 로직을 여러 차례 개선하며 개발을 반복했고, 최종적으로 온디바이스 환경에서도 준수한 성능으로 동작하는 Graph-RAG 기반 지식관리 시스템을 완성했다. (+ 성능을 위해 퀄컴에서 제공한 SDK를 이용하여 퀄컴 npu에 BYOM(Bring Your Own Model)을 해보는 경험도 해봤는데 유익했다.)

 우리 팀은 이 프로젝트로 교내 캡스톤 디자인에서 우수상을 수상했다.

 

https://youtu.be/Q0w4S_sMEaQ

 

오픈소스 개발자 대회 준비

오픈소스 개발자 대회 참가를 결정한 이후, 팀 구성에 변동이 있었다. 기존 팀원 중 한 명이 취업 준비로 인해 대회 준비에 충분히 참여하기 어렵다고 판단했고, 논의 끝에 팀에서 나오기로 했다. 이후 커뮤니티를 통해 새로운 팀원 한 명을 영입했다.

기존 프로젝트에서 가장 아쉬웠던 점은 지식 그래프 생성 과정이 LLM에 과도하게 의존하고 있다는 부분이었다. 우리는 이를 개선하기 위해, 텍스트를 지식 그래프로 변환하는 과정을 자체 알고리즘으로 구현할 수 있는 방향을 목표로 삼았고, 해당 역할을 맡을 팀원을 선발했다.

새 팀원은 2025년 7월 11일 합류했으며, 그날부터 우리는 주 5회 정기적으로 만나 개인 학습과 개발을 병행하며 대회 준비를 했다.

추가적으로 오픈소스 개발자 대회에서 오픈소스 온라인 강의를 제공해 줬는데 굉장히 유익했다.

https://youtu.be/rN_3x0tqOnY

 

 

1차  & 2차 평가

오픈소스 개발자 대회는 제출한 보고서를 기반으로 1차 합격팀을 선발한다. 우리 팀은 1차 합격팀 명단에 포함되었고, 이후에는 기능테스트와 2차 평가(발표 심사) 준비에 집중했다.

499(Qubit) 1차 통과!

기능 테스트는 Zoom을 통해 진행됐다. 보고서에 작성한 기능이 실제로 구현되어 정상적으로 동작하는지 여부를 확인하는 수준이어서, 큰 어려움 없이 순조롭게 진행됐다.

(+ 1차 합격팀에게는 멘토링의 기회가 주어지는데 멘토님의 피드백도 도움이 많이 됐다.)

2차 발표는 OpenUP센터에서 진행됐다. 발표는 교수님으로 보이는 심사위원 약 10명 앞에서 진행됐고, 발표 시간은 약 15분이었다. 발표 이후에는 질의응답을 통해 프로젝트의 기술적 선택과 개선 방향을 설명하며 심사에 대응했다.

 

어려웠던 점

대회를 준비하면서 가장 어려웠던 부분은 문서화였다. 프로젝트를 처음 접하는 심사위원이 이해할 수 있도록, 서비스 소개부터 기술 스택, 핵심 로직, 성능 개선 과정까지 전 과정을 문서로 정리해 제출해야 했다. 하지만 우리는 문서 작성에 익숙하지 않았고, “어떤 내용을 어떤 순서로, 어느 정도 깊이로 써야 하는지” 감을 잡는 데 시간이 많이 들었다. 개발 자체는 재미있었지만, 문서화는 그닥 재미있지 않았다...

 

라이선스에 대해서도 아는 것이 없었기에 어려움이 많았다.

대회 준비 이전에는 라이브러리를 사용할 때 그냥 쓰고 넘어가는 경우가 많았다. 그런데 해당 대회에 나가기 위해서는 단순히 가져다 쓰는 것을 넘어, 해당 라이브러리의 라이선스와 사용 조건, 배포 시 유의사항을 확인해야 했다. 그래도 이 경험을 통해 오픈소스에 대한 이해도가 한충 올라간 것 같다.

 

대회 결과

우리는 최종적으로 장려상(오픈소스협회장상)을 수상했다.

돌이켜보면, 약 1년 동안 하나의 프로젝트로 여러 대회를 준비하고 부족한 부분을 반복적으로 개선하는 과정을 거치며 많은 것을 배웠다. 단순히 기능을 구현하는 데서 끝나는 것이 아니라, GitHub  관리, 팀 협업 방식, 문서화 그리고 AI/RAG 관련 지식까지 AI 프로젝트 전반을 폭넓게 경험할 수 있었다. 시간을 많이 투자한 만큼 의미 있는 결과로 마무리할 수 있어 다행이었고, 이 과정에서 쌓인 경험은 이후 개발에도 분명히 유의미한 자산이 될 것이라고 생각한다.