Backend
home
🚶🏻

[개발 그 첫 걸음-03]

생성일
2025/02/24 13:38
태그
Assay

드디어 시작된 최종 프로젝트

최종 프로젝트 기간이 다가왔다. 나는 그동안 최종 프로젝트 기간이 무척이나 기다려질 만큼 준비하고 또 준비했다. 어떤 사람들과 프로젝트를 같이 하게 될지도 알 수 없었지만 무사히 교육과정을 수료하기 위해 프로젝트 준비에 최선을 다했다. 마침내 2019년 10월 17일, 최종 프로젝트의 서막을 알리는 신호탄이 울렸다. 다음주까지 최종 프로젝트에 대한 기획안을 PPT로 작성하여 팀별로 발표를 해야 하는 미션이 주어졌다. 우선 팀부터 정해야 했는데 다행히 나를 포함하여 내 주위에 있던 4명으로 팀이 구성되었다. 하지만 나를 제외한 다른 사람들은 프로젝트 경험이 1도 없었다. 유일하게 나만 학교에서 프로젝트를 진행한 경험이 있었다. 얼떨결에 나는 팀장이 되었다. 프로젝트 팀장으로서 처음에 어떻게 프로젝트를 진행해야 할지 방향이 잡히지 않았지만 프로젝트를 제대로 마무리하기 위해서는 팀장의 역할을 제대로 수행해야 했다. 프로젝트명은 I-HOME 이었다. 교육과정명이 스마트사물인터넷인 만큼 IoT에 대한 프로젝트를 하는 것이 가장 적합하다는 취지에서 스마트 홈 프로젝트를 진행하기로 결정하였다.

발표 준비는 어떻게?!

다행히 팀원 중에 PPT를 잘 만드는 사람이 있어서 자료 작성은 순조롭게 이루어졌다. 다만 프로젝트 자료를 공통으로 관리하고 운영할 수 있는 스페이스가 필요했다. 그래서 Github를 활용하여 프로젝트 자료를 관리하기로 결정했다. 그 당시만 해도 지금처럼 Github를 제대로 다루는 방법을 몰라서 어떻게 커밋을 하고 푸시를 해야 할지도 몰랐는데 새로운 관리 툴을 사용해보는 것도 개인 역량 발전에 도움이 될 거 같아 도전적으로 Github를 사용하기로 한 것이다. 그렇게 발표 준비는 진행되었고 발표에 필요한 자료들을 하나 둘 작성하기 시작했다.
발표 자료 구성의 전반적인 관리와 체크는 내가 했다. 내가 발표하기로 했으니까. 프로젝트 개요, 하드웨어 설계도는 다른 팀원과 같이 작성하였고 개발환경, 시스템 구성도는 내가 작성하였다.

대망의 발표날

나는 지금도 그 발표가 기억난다. 약간 긴장한 상태에서 발표를 했다. 발표가 끝난 이후에 담당강사님이 과연 저걸 구현할 수 있을까 라는 얘기를 가장 먼저 들었다. 그 얘기를 들은 순간 이 프로젝트는 반드시 마무리를 해야겠다는 생각이 강하게 들었다. 물론 그 당시 나도 이 프로젝트가 제대로 끝낼 수 있을지 장담하지 못했다. 하지만 힘들게 발표 자료를 준비한 노력이 아까워서라도 이번 프로젝트를 반드시 제대로 끝내기로 다짐했다. 그렇게 발표가 끝나고 프로젝트 준비에 본격적으로 착수했다.

프로젝트에 필요한 부품리스트 작성

스마트 홈의 틀을 만들기 위해 프로젝트에 필요한 부품을 직접 찾아서 부품리스트를 작성해야 했다. 해당 부품을 구매하기 위한 링크까지 첨부해서 작성해야 했는데 생각보다 시간이 걸리는 작업이었다. 작성을 마친 이후에는 강사님의 컨펌을 받아야 했는데 여기서도 시간이 다소 지체되었다. 그렇게 부품리스트 컨펌이 끝났다. 부품은 1~2주 정도 지나야 받을 수 있다고 전달받았다. 그런데 실제로는 11월 중순 쯤에 왔었다. 생각보다 늦게 도착한 것이다. 그동안에는 프로그램적인 작업만 계속하고 있었는데 틀을 구성하기 위해 필요한 부품이 제대로 당도하지 않다 보니 프로젝트 마무리까지 한 달 정도 남은 시점에 부품이 도착한 것이다. 다행히 우리 팀은 부품 중에 불량이 없었는데 다른 팀들 사정은 쉽지 않았다. 부품 중에 일부 불량품이 있었던 것이다. 이런 부품들마저도 복불복이 있을 줄은 전혀 몰랐다. 뭐 지금 생각해보면 그럴 수 있는 일이지만 말이다. 암튼 부품들을 받은 후부터는 본격적으로 I-HOME 프로젝트 진행에 속도를 내기로 했다.

팀원은 4명인데 정작 둘만 참여!?

시간이 지나면서 팀원들 중 일부가 프로젝트에 제대로 참여하지 않기 시작했다. 제 시간에 강의실에 오지도 않았고 지각하는 횟수도 늘어났다. 당장 프로젝트 기간이 한 달도 채 남지 않은 상황에 이런 변수가 터질 줄은 예상도 못했다. 그 당시에는 팀원들을 믿을 수밖에 없었다. 어쨌든 같이 가야 하는 거 외에 달리 방도는 없었으니 말이다. 내 팀원 중에 룸메이트도 있었는데 그 룸메이트와 같이 아침부터 저녁까지 프로젝트를 진행하는 날들의 숫자가 늘어나기 시작했다. 물론 그 두 사람이 아예 참여를 하지 않은 것은 아니었다. 가끔씩 프로젝트에 참여하면서 필요한 일들을 해주기도 했다. 특히 스마트 홈 틀을 만드는 것에 있어 적극 참여를 해준 덕분에 무사히 스마트 홈의 틀을 완성할 수 있었다. 그 부분에 대해서는 감사하게 생각한다. 그렇다 하더라도 나와 룸메이트가 진행한 비중이 훨씬 많았으니 느낌상 프로젝트는 둘만 하는 것처럼 느껴질 수밖에 없었다. 룸메이트는 스마트 홈의 기능을 사용할 앱을 만들었고 나는 스마트 홈의 회로도 설계, 웹 서버 및 DB 구축을 하였다.

NodeMcu 보드 활용

프로젝트를 진행하는 과정에서 또 다른 보드가 필요하다는 것을 알게 되었다. Arduino Mega 2560만으로는 내가 원하는 I-HOME의 모습이 나오지 않을 거 같아 새 보드를 구매했다. NodeMcu라는 보드였는데 이 보드를 통해 웹서버 관리와 센서값에 대한 데이터 처리를 제대로 구현할 수 있다는 결론을 내렸다. 이 보드는 부품 리스트에 들어 있지 않은 부품이어서 사비로 구매했다. 지금 생각하면 현명한 선택이었다. 이 보드 덕분에 프로젝트 진행에 속도를 낼 수 있었으니 말이다.

룸메이트 팀원의 맹활약

내가 처음에 센터에 들어왔을 때부터 프로젝트를 진행하는 시점까지 언제나 나와 함께했던 룸메이트 친구. 그 친구 덕분에 나는 많은 혜택을 볼 수 있었다. 특히나 한 번도 해본 적이 없는 안드로이드 스튜디오를 활용하여 어플리케이션을 개발하여 기능 구현까지 깔끔하게 했으니 지금 생각해도 참 대단한 친구였다. 기능만 개발한 게 아니라 디자인까지 만들어서 상당히 완성도가 높은 어플리케이션을 만들었는데 결국 이 친구는 나중에 판교 쪽으로 취업을 했다. 그 당시 음성 인식 기능까지도 구현해서 프로젝트의 수준을 한층 더 높이는 데 크게 기여했다. 지금은 어떻게 지내고 있는지 잘 모르지만 암튼 이 친구 덕분에 프로젝트 진행이 참 매끄러웠던 기억이 난다.

트랜지스터의 활용!?

회로도를 구성하는 과정에서 뭔가 문제가 있었는데 LED의 불빛이 생각보다 많이 밝지 않았다. 무엇이 문제인가 싶어 찾아보니 생각보다 출력 전압이 높지 않아서 발생한 문제였다. 어떻게 해야 할지 고민하고 또 고민했다. 그러던 어느 날 교수님이 문득 제안 하나를 하셨다(외부에서 오신 초빙 교수님). 교수님은 트랜지스터를 활용하여 회로도를 재구성하면 어떻겠냐고 말씀하셨다. 트랜지스터와 회로도 관련하여 몇 가지 대안을 말씀해주셨고 내용을 토대로 회로도를 다시 구성했다. 그 결과 LED 불빛이 이전보다 훨씬 밝아져서 문제를 해결할 수 있었다. LED를 많이 사용하다 보니 발생한 문제였는데 트랜지스터의 증폭 원리를 이용하여 LED의 불빛을 조정함으로써 얻은 결과였다.

프로젝트는 끝을 향해 달려가고

그렇게 프로젝트는 진행되고 시간은 어느덧 12월이 되었다. 12월이 되자 마음은 더 급해졌다. 그래도 프로젝트의 진행상황이 나름 괜찮았고 12월 17일 최종 발표일까지는 맞출 수 있다고 생각했다. 그렇게 순탄하게 최종 발표일까지 시간이 갈 것이라 예상했다. 하지만 프로젝트 진행 과정에서 도저히 알 수 없는 문제에 봉착하게 되는데…
>> 4화에서 계속됩니다.