본문 바로가기

프로젝트/활동

2023년 공개 SW 개발자 대회 참여 회고 (우수작 선정... 😥)

728x90
반응형

이카루스 동아리원들과 공개 SW개발자 대회에 참여하였습니다.

 

1차 평가는 합격했지만 2차에서 광탈당했네요

1차에 합격한 프로젝트는 우수작으로 선정되어 우수작 정보집에 실린다고 합니다(정신승리)

 

그래도 협업을 배우고 몰랐던 분야를 알아가는 과정에서 경험이었다고 생각됩니다..

이번 기회를 발판으로 다음에 더 나은 결과를 만들 수 있으면 좋겠습니다.... ㅎㅎ

 

다른 개발자 블로그를 보니까 1년 또는 프로젝트 단위로 회고록? 같은 것을 쓰는걸 보았습니다.

저도 비슷하게 프로젝트가 끝나면 어떤 프로젝트였고 느낀점 같은 것을 썼었는데

이번에도 하면서 느낀점 같은 것을 써보려고 합니다!

 

 

프로젝트 소개


 


 

저희가 기획했던 프로젝트는 인공지능을 이용해서 쓰레기 분리수거 방법을 안내하는 것 이었습니다.

 

공개SW에 걸맞게 여러 사람들이 직접 데이터를 추가할 수 있으면, 공익적, 교육적 측면에서 활용할 수 있는 방법이 있을거라고 판단했고 주제로 잡았던 것이었죠

 

아이디어는 좋았는데 다른 팀들도 같은 생각을 하는 사람들이 많았는지 동일 주제의 프로젝트가

생각보다 많이 나왔었습니다...

 

공개 SW개발자 대회 주최측에서 멘토를 매칭시켜줘서 조언을 들을 수 있도록 해주었는데, 이 때 차별성을 강조하던게

이제와서 보니까 다른 팀들도 이 주제와 같은 프로젝트를 많이 했으니 그 팀들과 경쟁할 수 있도록 알려줬던 것이었네요..

 

물론 절대 흘려듣지 않고 분리수거 게임을 추가해서 차별성이 있다고 생각이 들었지만

심사위원 생각에는 아니었나봅니다.

 


 


 

저희가 생각했던 기능은 사용자가 쓰레기 사진을 찍으면 서버에 있는 인공지능을 이용하여 이미지 분류를 알려주고

해당 분류에 해당하는 쓰레기 결과를 반환하여 올바른 분리수거 방법을 안내하는 것

 

그리고 분리수거 마크에 대한 설명을 비롯하여 각종 분리수거 및 환경 등등의 정보 안내 기능,

지역별 쓰레기 버리는 위치 안내 등등

 

현재 출시되어 있는 쓰레기 분리수거 방법 안내 앱과의 차별성을 위해 다양한 기능을 계획했고 구현했습니다.

 

 

 


 

 

Keep - 프로젝트에서 만족했던 부분


1.  이번 프로젝트를 하면서 좋았던 점은 무엇보다 서버 및 인공지능 분야와 협력을 통해 개발 되었으며 일종의 테스트를 거친 프로젝트라고 할만한 것을 만들었다는 것에 만족감을 느꼈습니다. 

 

지금까지는 이 정도로 구현된 프로젝트를 만들어본 적이 없었는데 게다가 우수작 정보집에 실릴 정도니까 나름 자부심을 느끼고 있습니다... (물론, 수상은 ㅠㅠ...)

 

 

2. 애플리케이션을 개발하면서 사용하지 않았던 혹은 몰랐던 기술 스택을 알게 되었고 공부할 수 있었습니다.

 

카메라 인텐트를 사용해서 사진을 촬영하고 저장할 수 있었고, 지금까지는 OkHttp3를 이용해서 서버와 통신을 하였지만, Retrofit 2를 이용하여 좀 더 정규화된? 통신 방법을 알 수 있게 되었습니다. 

 

실무에서는 OkHttp3 보다 Retrofit 2를 이용한다는 것을 알게 되었고 Retrofit이 OkHttp3를 기반하여 제작되었다는 것도 알게되었습니다. 이번 프로젝트에서 서버와 통신하는 기능이 많았는데 Retrofit을 이용한 통신에 대해 공부할 수 있었습니다.

 

그리고 뷰 페이저2와 인디케이터를 이용하여 다양한 뷰를 만들어볼 수 있는 기회가 되었고,

MVVM 아키텍처를 기반으로 애플리케이션을 개발하여 자연스럽게 MVVM을 배울 수 있었습니다.

 

 

3. 애플리케이션 최적화에 대해 더 공부할 수 있었습니다.

 

쓰레기 사진을 촬영하여 서버로 전송하는데 시간이 오래걸리던 문제점을 이미지 압축 기법을 사용하여 전송함으로써 시간을 단축할 수 있었습니다. 

 

 

4. 데이터 준비를 위해 크롤링 기법을 공부할 수 있었습니다. 

 

쓰레기 분리수거에 대한 정보를 모으기 위해 인터넷에 존재하는 정보를 크롤링하여 데이터를 마련할 수 있었습니다. 

 

 

이번 프로젝트에서는 전반적으로 기술 스택에 관련된 내용인 것 같습니다. 아직 배우는 입장이라 많은 것을 알지는 못하지만 공부 하면서 진행하였고 괜찮은 구현 결과가 나온 것 같습니다.

 


 

 

Problem - 부정적인 요소, 아쉬웠던 점


1. 프로젝트 참여 인원의 역할 분배 

 

이번 프로젝트에 1학년과 3학년이 참여를 했었는데 인원 수가 생각보다 많았습니다. 실력에 상관하지 않고 인원을 모집했었기 때문에 인원은 많지만 손이 많이 가던 프로젝트였던 것 같습니다. 개발 기간이 많지 않았기 때문에 며칠 동안 밤을 새면서 작업을 했었던 기억이 나네요...

 

이번이 마지막이라고 생각하고 프로젝트에 임했었는데, 이 부분이 정말 아쉬운 부분이었던 것 같습니다.

 

 

2. 여건상 좋지 못했던 개발 기간

 

저번에 일본에 연수를 다녀오느라 거의 한 달 정도 공백 기간이 있었습니다. 그래서 다른 팀에 비해 한 달 정도 프로젝트에 신경을 못쓰는 상황이 생겼습니다. 이부분은 명백히 개인적인 부분이지만 이러한 계획도 프로젝트에 임할 때 제대로 신경을 썼더라면 더 나은 결과가 나왔을 것이지만 제대로 신경을 못썼던 부분이 있던 것 같습니다.

 

 

3. 깊은 기능 vs 넓은 기능

 

이부분이 정말 생각을 많이 했었는데 저희는 후자 쪽으로 선택을 했습니다. 다른 앱과의 차별성을 위해 애플리케이션에 가능한 많은 기능을 넣어보자라고 생각을 했고 기능 구현을 했습니다.

 

그래서 쓰레기 버리는 위치라던가 뉴스라던가 게임이라던가 기능을 추가했습니다.

 

실제 수상된 작품과 비교했을 때 기능의 수는 저희가 훨씬 많았지만, 단순히 위치만 글자로 알려주는 정도였고

수상된 작품은 지도에 마커를 찍어서 보여주는 등의 차이가 있었습니다.

 

많은 기능이 더 높은 퀄리티를 보여주는지는 별개의 문제라고 알게 되었습니다.

 

 

4. 코틀린 멀티플랫폼

 

이걸 며칠전에 알게되었는데 코틀린 & 컴포즈로 개발을 하게되면 안트로이드 & ios 동시 빌드가 되더군요... 

플러터를 이용하면 안드로이드, ios 동시 빌드가 되는건 알고 있었는데 코틀린으로 네이티브 개발이 가능한 상황에서 ios 빌드도 된다니.. 이걸 일찍 알았더라면 프로젝트 시작도 컴포즈로 시작하고 두 개의 플랫폼에서 동작하는

우위를 가져갔을텐데 정말 아쉬운 부분입니다.

 

 

이번 프로젝트의 아쉬운 점은 정보의 부재 및 경험의 부재로 인해 발생한 것 같습니다. 이번 경험으로 다음 프로젝트를 진행한다면 보완하여 더 나은 프로젝트로 진행되면 좋겠습니다.

 


 

 

Try - 다음 프로젝트에서 시도해볼 점


요즘 안드로이드 컴포즈를 공부하고 있고 인공지능도 겸해서 공부하고 있습니다. 

기회가 된다면 안드로이드에 온디바이스 AI를 탑재하여 서버없이 동작하는 애플리케이션을 주제로 진행하고싶습니다.

 

그리고 이번 경험에서 보완할점을 바탕으로 진행하고자 생각중입니다.

 

 

https://github.com/ICARUS-Coding-Club/Recycle-App

 

GitHub - ICARUS-Coding-Club/Recycle-App: this is recycle app.

this is recycle app. Contribute to ICARUS-Coding-Club/Recycle-App development by creating an account on GitHub.

github.com

 

 

공개 SW 개발자 대회 2차 평가 보고 고양이 카페에서 찍은 사진... 고양이는 귀엽네 ㅎㅎ

 

 

 

 

 

728x90
반응형