2021.11.29. 현재도 작성 및 수정 중에 있습니다. 한달 간 수정만 하고있어서 이러다간 내년에도 못 올릴 것 같아 우선 조심스레 등록해봅니다. 기술 관련 게시글은 따로 작성할 예정입니다.
START
2021 한이음 ICT 멘토링이 시작된지 벌써 절반이 지났다.
제대로 된 개발과 협업을 경험하고 있어서 정신없이 지나갔다. 계획은 한달에 한번씩 글을 올리려 했지만..^^
지금이라도! 여태까지 진행하면서 느낀 것(거의 일기일 수도..)과 진행상황을 간단히 적으며 한이음 ICT 멘토링에 대해서도 말해볼까 한다.
한이음이 무엇인가?
ICT에 관심있는 혹은 관련된 학생들이 멘토분의 프로젝트에 지원하여 멘토님께 지도를 받으며 프로젝트를 진행하도록 도와주는 취지로 설립된 기관인 것 같다.

우리 팀이 지원한 프로젝트는 인공지능과 IoT 기술이 결합된 힐링 및 광고 서비스이다.

솔루션 : AI를 활용한 사용자 표정과 주변 환경에 따른 개인화된 힐링 및 광고서비스
일정 : 2021.03.30~11.30
팀원: 김민식, 문윤지, 정현우, 팀원1(중간 탈퇴)
팀명 : Healing4U (Healing for you)
3월
우리 팀은 꽤 빨리 모인 것 같다. 나는 독취사 같은 카페를 통해 합류하였고 총 4명이서 진행하게 되었다.
3월 4일에 팀이 최종 모였고 프로젝트는 3월 17일에 개설되었다.
멘토님께선 멘티들이 서로 다른 대학교라 걱정하셨지만 매주 2번 이상 회의할 계획까지 세우면서 열의를 보여드렸다:)
처음 우리가 하려했던 프로젝트가 상황이 애매해지면서 다른 프로젝트를 지원한 상황이었는데
이 프로젝트에 지원한 학생들만 10명이 넘어서 우리는 최대한 빨리 수행계획서를 작성해서 제출하는데 마음이 급했다.
프로젝트 수행계획서 작성이 중심이었다. 작성하면서 우리가 구현할 수 있는 기능들을 여러 상황에서 고려하여 작성해야했기 때문에 꽤 많은 고민과 시간이 필요했다.
수행계획서 에는 다음과 같은 내용들을 담았다.
프로젝트 정보
- 개요
- 주요 기능
- 예상 결과물
- 기대효과 및 활용분야
수행계획서를 제출한 후, 프로젝트 개설이 승인되었다.
이후, 우리가 진행한 것은 사용할 딥러닝 모델 조사 및 검토와, 학습데이터로 사용할 데이터셋을 각자 500장씩 수집하는 것을 진행하였다.
이제 진짜 시작이다!
무엇을 했나?
- 프로젝트 수행계획서 작성
- 객체인식 모델 조사와 학습 데이터셋 수집 (크롤링)
4월
4월 첫째 주에 드디어 팀원들끼리 오프라인으로 모였다! zoom으로 하도 많이 봐서 그런지 첫 오프라인 만남이었는데도 그렇게 어색하지 않았다.
구체적인 설계를 하는데 여러 의견들이 나왔고, 이를 조율하는데에 꽤나 힘들었다.(조율이라기보다 서로 이해한 것을 통일하는 데에도 꽤 이야기가 필요했다.)
우리가 백지부터 기획한 아이디어가 아니기 때문에 멘토님과 아이디어를 논의하는 데에 있어서 다르게 이해한 부분도 원인이 되었다.
어느정도 조율 및 결정을 내리면서 의견을 통일시킨 후 역할을 나누었다.
팀원이 총 4명인데, 2명이 컴퓨터공학과, 1명이 통계학과, 1명이 인공지능 관련 학과이다.
그래서
컴퓨터공학과 2명은 각자, DB 구축 & 웹 개발(나)과 안드로이드 개발을 맡기로 하였고
두 분은 인공지능 모델을 맡는 식으로 결정하였다.
완전히 역할을 나눈 것은 아니었기 때문에 서로 필요한 부분은 도와가며 진행하기로 하였다.
멘토링도 1회 진행하였다. (온라인)
현재 진행하고있는 과정들을 공유하였고, 그에 대한 멘토님의 조언을 듣는 시간이었다.
프로젝트를 진행하면서 겪은 것들은 모두 잘 정리해놓으라고 하셨다.
어떤 모델들을 알아보았고 결국 왜 이 모델을 선택했는지, 정확도를 개선하기 위해 무엇을 시도했는지, 사용자입장에서 서비스 흐름을 설계했는지 등등..
또한 소프트웨어의 목적에 맞게 편리성/효용성 중점으로 개발해야한다는 말씀도 해주셨다.
그리고 전반적인 한이음 일정도 다시 짚으면서 구체적인 목표도 세울 수 있었다.
무엇을 했나?
- 프로젝트에 필요한 재료 신청 (라즈베리파이+카메라, 터치 패널 등)
- 시나리오 기획
- 데이터 라벨링과 표정 분류 모델 검토
5월
한이음에서 블렌디드 러닝이라는 강의 수강권도 제공해주었다. 연계된 곳은 "스파르타 코딩클럽" 이라는 사이트이다.
심사 시 가산점으로 들어가기때문에 거의 필수로 원하는 강의를 선택하여 완수하는 식이다.
내 생각을 짧게 적어보면,
처음 1회권에서는 무조건 초급을 들어야했기 때문에 당장 프로젝트를 진행하는 팀들에게 딱 맞는 수업인가? 라는 생각은 들었다.
다행히 점점 중급, 고급까지도 들을 수 있게 되면서 도움 되는 부분도 있었다.
시나리오를 설계할 때 고려해야할 점이 꽤 많았다. 그중 기억에 남는 것은 아래와 같다.
1. 어떤 데이터베이스를 사용할 것인가
- 관계형 DB와 비관계형 DB 중 고민했는데 힐링 및 광고 이미지 데이터를 저장해야했기 때문에 후자 중 요즘 많이 사용하는 MongoDB로 결정했다. (결국 미래에 우리는 비관계형 DB에서 관계형 DB로 바꾸게 된다. AWS 최고..)
2. 어떤 흐름의 서비스가 사용자 경험에 가장 편리하고 자연스러운가
- 구체적일 수록 개발 진행이 더 매끄럽게 진행될 것이다.
- 옥외광고의 특성을 고려해 사용자의 개입이 많이 필요치 않도록 했다.
3. 사용자의 인식이 어떠한가
- 해당 서비스를 기획하게 된 동기가 다른 사용자들도 공감할 것인가 사용자들의 인식이 궁금했다.
- 최대한 다양한 연령대의 사용자들에게 설문을 요청했다.
인공지능 팀은 라즈베리파이와 라즈베리파이의 카메라를 딥러닝 모델과 연동하였다.
라즈베리파이 우분투 환경에서 모델을 실행하기에는 속도가 매우 느려진다는 점에서 AWS를 이용하여 딥러닝 서버를 구축하였다.
간단한 멘토링도 1회 진행하였다. (온라인)
무엇을 했나?
- 설문조사를 통해 사람들의 인식 조사 (옥외광고, 힐링에 대한 사람들의 인식을 알 수 있었다.)
- 시나리오 설계 마무리 (DB 조사 및 설계, API 조사, 서비스 흐름 구체화)
- 인공지능 팀 : 라즈베리파이 연동 및 모델 학습

6월
6월 달에는 중간고사가 있었기 때문에 시험 직전 1주일은 회의를 하지않고, 유동적으로 진행하였다.
그리고 각자 나눈 파트(웹, 앱, 인공지능 파트)에 대해 계획을 세우고 개발을 진행하였다.
나는 nodejs를 이용해서 옥외광고 역할의 패널에 띄울 웹을 맡았기 때문에 필요한 페이지들을 차근차근 구현했다. (기능 관련 게시글을 따로 올릴 예정이다)
다른 컴공 팀원은 (옥외 패널의 연장선으로 제공되는 서비스로) 안드로이드 앱 제작을 진행하였다.
인공지능 팀 두분은 모델 학습 및 개선을 진행하였고, 각자 수집했던 데이터셋을 가공하였다.
또한 이전까지는 딥러닝 모델을 로컬에서 진행하였던 (노트북 캠으로) 것을 라즈베리파이, 라즈베리파이 카메라와 연동하여 작동하도록 하였다.
이 과정에서 에러를 함께 해결한 과정이 정말 기억에 남는다. 특히 통신 문제에서 발생한 에러를 온라인으로 함께 해결하려하니 불편함이 꽤 있었다. 에러 해결 방법은 대부분 아래와 같이 진행했다.
1. 스스로 해결해보면서 자료를 찾아본 후, 동료에게 공유한다.
2. 공유할 때는 문제상황과 발생한 에러화면, 본인이 어떤 시도를 했는지 등을 말한다.
3. 동료들이 함께 문제를 구글링하면서 시도해볼 만한 정보들을 공유하여 해결한다.
멘토링이 1회 있었다. 6/27에 멘토님과 강남토즈타워점에서 진행하였다.
멘토링을 하면서 현재 우리의 문제점, 놓친 점들을 콕콕 집어 얘기해주셔서 많은 도움이 되었다.
문제점
- 정확도를 개선하는데에 집중하되 전반적인 서비스 개발이 진행되어야한다. (인공지능에 치우치면 안된다. 결국 하나의 서비스를 개발하는게 목적.) 역할분담 또한 잘 이루어져야 한다.
+ 나 또한 공감하는 바이다. 내가 웹을 맡았으면 내 작업을 수월히 진행하면서 적당히 다른 작업에 관심을 기울일 필요가 있다. - 기존 4가지 표정(감정값)보다 간결히 해야 더 높은 정확도를 얻을 수 있을 것이다. 욕심을 버려라.
무엇을 했나?
- 인공지능
- 딥러닝 모델 수정
- 라즈베리파이(+카메라)와 연동 (이전까지는 로컬에서 모델 테스트를 진행하였었다.)
- 인식률 테스트
- App과 Web : 개발 본격적으로 시작
7월
중간보고서 제출이 있었다.
중간보고서에 제출해야하는 파일은 중간보고서(hwp) + SW개발 및 HW제작 설계서(ppt)이다.
한이음 측에서 주어진 템플릿으로 제작해야했는데,
분량이 꽤 많고 상세하게 적어야했기 때문에 현재 완료되지않은 작업에 대해서 고민해볼 필요가 있었다.
"내가 이 기능을 완성할 수 있을까? 완성되지 않은 것을 적었다가 오히려 마이너스가 되지 않을까?"
매력적인 기능들을 보여줄 수 있는 점과 최종 심사에서 구현하지 못할 기능을 넣었다가 문제되는 것을 대비해 최소한의 기능만 넣음으로써 덜 매력적으로 비쳐질 수 있는 점. 최대한 객관적으로 생각해보고 결정했다.
무엇을 했나?
- 공통 : 중간보고서 & SW개발 및 HW제작 설계서 (노션에서 확인할 수 있다.)
- 인공지능 : AI Hub 데이터셋 신청 (무표정 등..) 및 선별 작업(
노동이라 읽는다) - App과 Web : 개발 진행
8월
9월에 있을 1차 심사에 제출할 보고서 작성과 개발이 동시에 진행되었다.
첫 심사를 위한 보고서 제작과 개발이 동시에 진행되니 방학임에도 정신이 없었다.
특히 내가 Web과 함께 DB 구축 및 관리도 맡았기 때문에, 안드로이드에서 필요한 데이터 조회를 웹서버에서 처리해주어야했다.
이 부분에서 커뮤니케이션에 문제가 생겼었다.
안드로이드 앱을 맡은 팀원과 서로 이해한 것이 달랐고, (이전에 이야기할 때 함께 이해한 상태로 마무리됐었지만)
함께 동의하여 설계한 로직을 구현하고 끝냈음에도, 다음 회의가 되면 로직을 다른 방식으로 다시 짜야했다.
이 과정에서 서비스 흐름 설계와 DB 설계의 중요성을 뼈저리게 느낄 수 있었다...
서비스 흐름이나 로직을 제대로 짜고, 이에 맞게 DB를 설계한 후에 개발을 시작하는 것은 당연하지만
처음 계획한 기능을 구현할 수 없는 상황이 생기면 설계했던 DB를 수정하는 일 또한 자연스레 일어났다.
미래에 발생할 수 있는 문제점들을 미리 예상하는 것이 힘든 일이지만 매우 중요함을 느꼈다.
개발을 빨리 해봤자 중요하지 않다. 로직을 다시 짜게 되는 순간, 내가 끝냈던 작업을 다시 하고 있는 나를 볼 수 있다 :)
8월에는 테이블을 수정하고, 새로운 테이블을 만들고, 칼럼을 추가, 삭제하고..
완료한 것 같은 DB 구현을 다시 하면서 끝이 보였던 웹 개발이 지속되었다.
우리 모두가 제대로된 팀 프로젝트는 처음이었을 것이다.
내가 모든걸 다 하는게 아닌, 각자 역할을 맡아서 진행하는 팀프로젝트는 나만 잘한다고, 내 부분만 신경쓴다고 되는 것이 절대 아니고, 나 혼자 생각해서도 안된다.
내가 진행하는 프로젝트를 공유하지 않는 것은 내가 아닌 팀원들이 더욱 힘들어할 것이다.
결국...
가장 중요한건 소통이었다.
서비스에 대한 의견 조율에도, 로직 설계에도, 테이블 설계에도, 문서 작업에도, 기능 구현에도, 심지어 칼럼명 하나에도..
모든 것에서 소통이 있어야 한다.
1명이라도 소통을 안하는 성격(? 이건 노력이긴 하다만) 이라면..
1명 정도야 뭐..?
정말 1명이 크다.
팀프로젝트에서는 내가 맞다고 생각하는 것에서 너무 고집을 부려서도 안되고 지나치게 주장해서도 안된다.
정말 "협업과 배려" 가 중요하다.
협업, 한 단어로 표현하기엔 너무 크고 어려운 것이었다..
멘토링이 1회 있었다 . 8/27에 멘토님과 온라인으로 진행하였다. (covid 녀석 때문에..)
멘토링 전에 최대한 완성하여 검토를 부탁드렸고 개발보고서와 제작설계서에 대한 피드백을 꽤 자세하게 받을 수 있었다.
무엇을 했나?
- 개발 보고서 작성 및 수정
- SW개발 및 HW제작 설계서 작성 및 수정
- App&Web : 로직 재설계 및 개발 진행
9월
1차 심사가 있었다.
1차 심사 마감기한이 작년보다 더 빨라서 제출하지 못한 팀이 꽤 있었는지 1차 심사 마감기한도 연장되었다.
9/14에 우리 팀은 1차 심사를 통과하였다. 이번 대회는 작년에 비해 경쟁률이 많이 약했던 것 같다.
많은 일이 있었다.
현재 웹 개발은 대부분의 기능 구현이 완료되었다.
옥외 패널의 특성 상, 각 페이지들이 사용자의 터치 없이 넘어가도록 구현하였다. (마지막 사용자의 만족도평가 부분에서만 터치를 요한다. 이또한 필수가 아니다.)
한가지 완료하지 못한 부분은 딥러닝 서버와의 통신 작업이다. 딥러닝 서버 구축을 담당한 팀원이 바빠서 내가 해야할지도 모르겠다. 조만간 이 부분도 끝내려한다.
논문
한국정보처리학회에서 주최하는 ICT멘토링 학술대회(ACK 2021)에 논문을 제출하기 위해 작성하였고 마무리 작업 중에 있다.
해당 마감기한도 기존보다 더 연장되었다. (9/30까지)
무엇을 했나?
- 논문 작성
- 인공지능 : 모델 개선 시도 (정규화 등)
- 웹 개발 구현 9/10 완성
10월
node.js 를 이용한 웹개발은 9월에 어느정도 마무리되었고,
팀원 한 분이 나가게 되면서 안드로이드 어플리케이션이 아닌 모바일웹으로 방향을 바꾸었다.
나는 한창 Spring Boot를 공부하고 만져보고 있었기 때문에 해당 웹 개발은 Spring Boot로 해보고싶은 마음에 내가 맡게 되었다.
10월 첫째 주에 다른 팀원으로부터 디자인을 받아서 Spring Boot와 연계하고 (BootStrap을 이용하였다.)
둘째주부터 지금까지 계속 진행중이다.
Spring Boot를 공부하고 있기도하고, 실질적으로 해당 프레임워크로 프로젝트를 해본 경험이 없기에 흥미롭게 느껴진다.
스파르타 코딩클럽을 통해 듣고있는 스프링부트 기초 강의가 많이 도움이 되고 있다.
현재 JPA 연동을 진행하고 있는데 생각보다 에러가 계속 발생하고 있다. 히힛
10월 26일 2차 심사에 대한 합격/불합격 공지가 떴다. 결과는 입선작으로 선정되었다!
3차 평가 대상은 아니지만 엑스포 전시 관련하여 참석은 해야한다고 한다.
한이음 공모전 2차 합격/불합격 결과 공지
축하드립니다. 공모전 2차 심층평가 결과 입선작으로 선정되었습니다. 3차 평가 대상은 아닙니다. (엑스포 전시 관련 자세한 내용은 공지사항을 참조하시기 바랍니다.) 감사합니다.

논문
ICT멘토링 학술대회(ACK 2021) 마감일이 10월 10일로 연장되면서 팀 내에서 발생한 변경사항을 더 수정할 수 있었다.
해당 논문은 노션에 올려놓았다.
10월 18일에 제출한 논문의 심사결과가 '게재가'로 통과되었다.
최종 심사를 위해 논문을 수정한 뒤 최종 제출하였고, 추가로 제출할 10분 발표영상을 위해 발표자료(ppt) 제작 및 대본 작성하였다.
을 팀원 중 한 분이 영상을 찍어 제출하였다.
[제출한 논문에 대한 심사평]
AI 표정인식을 활용하여 개인화된 DOOH 서비스를 구축하고, 치유와 광고를 제공하여 사용자와 서비스 간의 상호작용에 최적화된 솔루션을 제안하고자 함. 논문의 구성이 잘 되어 있고, 개발로 인한 향후 활용 부분에서 기여점이 있다고 판단이 됨.
무엇을 했나?
- 논문 투고
- 모바일웹 개발 백엔드 구현 (Spring Boot 이용)
- Bootstrap과 연동
- JPA - MySQL 연동
11월
웹 개발 (Spring Boot)
작성중
논문
11월 19일 한국 정보처리학회 ICT 멘토링 학술대회에서 최우수상으로 시상했다.12월 4일 시상식에 참여하여 시상 및 소감을 말하는 시간을 갖을 것이다.

드디어 마무리.
뿌듯한 점
1. 팀 프로젝트를 진행할 때 어떤 점을 고려해야하고 신경써야하는지 알게 되었다. 겹치는 작업을 할 때는 특히 의견 공유와 협업 태도의 중요성을 느꼈다. (기술적인 성장도 있지만 이런 소프트한 능력에서의 성장을 꽤나 하였다고 말할 수 있겠다)
2. 작은 기능 하나에도 전체 팀원이 모두 같은 생각을 가지고 같은 이해 선상에서 바라보도록 소통하면서 협업이라는 어려우면서도 재미있는 경험을 해본 점에서 매우 의미가 깊은 활동이다.
3. 기능 개발과 오류 해결을 팀원 간 공유하며 진행했기 때문에 상대방이 이해하기 쉽게 코드를 작성하기 위해 노력하고 습관화할 수 있었다.
아쉬운 점
1. 경험이 많은 팀원이 없었기 때문에 프로젝트 기획부터 서비스 테스트까지 진행하는데 많은 고민과 결정이 필요했다.
이러한 절차를 좀더 확고히 결정을 내리고 진행하지 못한 점이 아쉽다. (이러한 과정이 맞는지 등에 대한 피드백이 더 필요했던게 아닐까.)
2. C++ 언어를 잘 사용하지 못했기 때문에 옥외 패널 서비스를 제공하는 플랫폼을 웹으로 진행하게 된 점. (하지만 웹으로 진행하면서 웹 개발자로 나아가는 방향에는 여러 도움이 됐다.)
'Project' 카테고리의 다른 글
[healing4u 프로젝트] 기술적 문제와 고민 (0) | 2021.10.18 |
---|