소프트웨어 개발 협업과 구조 설계 : 해커톤을 통한 경험
최근 대학교 3학년에 진학하게 되며 점점 팀 프로젝트에 대한 요구와 이런 과정들을 경험해나가며 느꼈던 소프트웨어 개발 협업과 구조 설계에 대한 고민과 해결하기 위한 노력에 대해 해커톤 대회에서 느꼈던 점들을 중심으로 설명하고 한다.
소프트웨어 개발의 협업과 구조 설계의 어려움
팀 프로젝트와 외주 작업에서의 고민
최근 대학교 과목에서 수행하는 팀 프로젝트와 외주 작업을 통해 협업의 중요성을 절감하게 되었다. 특히 규모가 있는 프로젝트에서 구조 설계는 더욱 어렵게 느껴졌고, 클라이언트의 요구사항을 명확히 파악하고, 프로젝트의 리스크를 관리하며, 협업을 원할하게 진행하는 방법에 대해 많은 고민을 하게 되었다.
소규모 프로젝트에서의 문제
소규모 프로젝트에서는 오히려 혼자 개발하는 것이 더 편할 정도로 협업과 의사소통이 어렵다는 점을 깨달았다. 보통 팀장을 맡아 팀을 이끄는 과정에서 발생하는 문제들을 해결하며, 각 기능들을 모듈화하여 분업하는 방법에 대한 고민이 필요했다. 혼자 개발하는 것이 더욱 편하고 빠르다는 이유로 이런 방식으로 진행하게 되는 것은 미래에 큰 프로젝트에서의 협업 경험을 쌓기 어렵고, 의사소통의 어려움을 겪을 수 있음을 느꼈다.
해커톤 대회 참가와 경험
대회 참가 동기
이러한 고민들을 해결하고자 해커톤 대회 혹은 공모전 등에 적극적으로 참여해보자고 생각하게되었다. 대회 주제에 맞는 아이디어를 선정하고, 소규모 프로젝트의 빠른 프로토타이핑과 각 기능의 모듈화를 통해 분업을 진행하며 팀원들을 리드하는 경험을 쌓고자 하였다.
간략한 아이디어 설명 : 환경 문제 해결
해커톤 주제는 '환경'이었고, 우리는 플라스틱 일회용 컵 사용 문제를 해결하고자 했다. 다회용기 컵을 활용하여, 각 카페 및 디저트 음식점에서 일회용 컵 대신 사용할 수 있도록 하는 아이디어를 구상하였다. QR 코드를 통해 컵의 ID를 조회하고, 사용자에게 리워드를 제공하며, 일정 시간 내에 반납하는 방식으로 진행된다.
프로젝트 구현과 협업 경험
우리 팀은 대학교를 기준으로 기획하여 각 학과별 인원수 비율대로 포인트를 부여하고, 친환경 점수를 부여하는 방식으로 다회용기 컵 사용을 권장했다. 어플리케이션의 동작 모습을 각 카페의 POS 기기나 키오스크를 가정한 데스크톱 애플리케이션에서 구현했다. 또한, 반납기로 가정한 데스크톱 애플리케이션에서 QR 코드를 인식하여 음료의 반납을 처리하는 기능을 구현했다.
느낀 점과 배운 점
팀 리드와 협업의 중요성
이번 해커톤을 통해 팀을 리드하고 협업하는 과정에서 많은 것을 배웠다. 팀원들의 역량에 따라 개발 환경 및 완성도의 편차가 존재했지만, 각 기능을 모듈화하고 분담하여 해결해 나가는 과정이 매우 흥미롭고 직관적으로 완성된 결과물을 확인한다는 점들이 즐거웠다. 프로젝트의 리스크를 관리하고, 빠르게 문제를 해결하며, 데모 시연까지 완벽하게 구현해내었다는 점에서 굉장한 뿌듯함을 느낄 수 있었다.
개발 환경에서의 문제 해결
개발 과정에서 발생하는 문제들을 빠르게 해결하고, 리스크가 큰 문제들을 미리 예측하여 해결하는 방법을 배웠다.
이번 경험을 통해 협업의 중요성을 다시 한 번 깨달았고, 팀원들과의 소통과 팀원들을 리드해나가며 예측보다 더 나은 결과를 만들어내는 '협업을 통한 시너지'를 처음 느껴보게되었다.
아래에는 간단한 프로젝트 시연 준비 과정이 담긴 동영상입니다.
마치며
이번 해커톤 경험을 통해 소프트웨어 개발의 협업과 구조 설계에 대해 조금 더 경험을 쌓을 수 있었고, 팀원들을 리드하는 경험, 개발에서의 협업을 통한 '비효율성'이 아닌 '시너지(효율성)'을 느꼈던 점들에서 많이 배울 수 있는 경험이었다.
앞으로 더 큰 규모의 프로젝트의 협업의 경험을 쌓아나갈 수 있다는 자신감을 얻을 수 있는 토대가 되었다.