[회고] SmartMirror 프로젝트 개발 회고

 

지난 6주간 SSAF생활을 하면서 IOT프로젝트를 했다.

IOT에 관심있냐고 하면 아니었다. 관련된 경험이라고는 고등학교때 이름만 IOT(그때 프로듀스 101이 유행해서.. )인 동아리를 개설했고 이게 다른 SSAFY생분에게 잘못 전해지면서 IOT팀에 들어갈 기회가 왔다.

 

기존에 내 계획대로라면 웹개발을 할 줄 알았으니, IOT와의 프로젝트를 구상할 때는 무엇을 고려해야할지 이제서야 고민을 팀을 이루고 나서야 시작했다. 실은, 하려던 웹개발을 더 한다고 해서 수월할 것도 아니었고 하던 거(웹 개발)에서도 더 공부를 해야할 것 같은데 영역이 확장되니 불안했었다. 배포로 도커든 젠킨스든 인증으로 JWT든 아니면 아키텍처든 서버관리기법이든 공부할려던 주제를 뽑았는데 예상못한 IOT와의 통신방법부터 탐색해야했으니까. 애초에 IOT프로젝트면 웹이 없을 수도 있겠단 생각이 들었으니까.

 

일주일의 프로젝트 기획기간 동안은 그런 생각이 들었다.

'내가 할 수 있는 건  SpringBoot기반 웹개발인데, 이건 무조건 들어가야 해. '

옛날에도 이렇게 내가 가진 기술로 한계를 두고 프로젝트를 기획했었다. 그리고 그 한계선이 당연히 문제가 됐다. 그래서 어느 순간부터는 내 능력에 제한을 두는 게 아니라, 일단 서비스 자체에 집중하고 기획했다. 그렇게 서비스가 기획되었을 때 내가 어떻게 무엇을 구현해야할지는 온전히 내 몫이겠지만 겁내지 않으려 노력했다.

 

많은 과정을 생략하고 결과만 말하면 누군가의 말을 빌려 '해봤어?' 라는 말에 공감을 하게 됐다.

기획을 다 끝내고 나니 내 생각만큼 IOT라고 해서 웹이 안 필요한 게 아니었고, 오히려 있어서 매력이 있음을 확신하고 개발할 수 있었다. 통신 방법은 MQTT같은 걸 고민했지만 내 쪽에서 당장 고민할 게 아니었다. HTTP와 Socket으로 현 요구사항을 구현할 수 있었다. 고민해야할 게 있었다면, IOT측과의 통신시에는 별도의 보안성을 가지기 위해 어떤 보안정책을 가져야할까의 고민. 그리고 IOT가 수집한 데이터의 이동에 대해서 어떤 중간 개입자가 필요한지의 고민. IOT와의 통신말고도 개인적으로 기능 구현시에 하고 싶었던 디자인패턴 기반 기능 구현도 해봤다. 서버의 분리 기준도 생각해보고, 멀티 데이터베이스 적용의 합리성도 고민해보고. 

 

기존에 구상했던 많은 요구사항을 다 구현하진 못했지만 필수기능들을 완성했다. 

컨설턴트님의 추친으로 발표를 내가 맡게 되었다. 발표준비과정에서 이 프로젝트에서 각자가 고생한게 무엇이고, 어떤 걸 신경 썼고, 그래서 얼마나 서로가 얘기를 했는지 다시 기억하게 되니 이 프로젝트에 대한 애정이 많아졌다.

발표가 아니어도 노션에는 1~2주 만으로도 내 개인 정리 페이지가 몇십개씩 늘어나 나의 배경지식이 확장됐다. 결과적으로 우수 프로젝트로 선정되었고 다음 프로젝트 진행시에 같이 팀하자라는 제의도 여럿 받았다. 

 

뿌듯한 6주였다.