본문 바로가기

일상

약간 늦은 에너지 해커톤 후기

반응형


에너지 해커톤이 끝나고 일주일이 지났다. 에너지 해커톤은 '인코어드'라는 스타트업 업체가 주관하는 해커톤 행사로 내가 처음으로 나가 본 해커톤 대회였다. 그냥 단순하게 다른 사람들과 함께 코딩을 해보면 어떨까라는 생각으로 참가한 것이 컸던 것 같다. 즉, 에너지 해커톤이라는 내용에서 "에너지"라는 측면보단 "해커톤"이라는 측면을 보고 지원을 하였다.



일부 해커톤의 경우에는 참가비를 내고 참여하는 것이 있다고 하는데, 이 해커톤의 경우에는 후원하는 업체가 많아서 그런 것인진 몰라도 식사와 간식을 무료로 제공하면서 참가비는 따로 받지 않았다. 그리고 서버의 경우에는 아마존에서 무상으로 지원을 해주어서 그 서버를 이용할 수 있었다. 역시 아마존 ㄷㄷㄷ... 그리고 예선과 본선으로 나누어져서 심사가 이루어지는데, 예선의 경우에는 '인코어드' 회사에서 근무하고 있는 사람들에게 발표를 해서 심사를 받고, 본선의 경우에는 해커톤 참가자들까지 포함해서 투표를 하는 방식으로 해서 득표한 순위로 상을 수여하였다.



신청이 끝나고 주최측에서 팀빌딩을 해주었는데, 무슨 마가 끼었는지 중간에 불가능할 것 같다는 사람이 계속 나와서 대략 5번 정도 팀빌딩이 다시 이루어졌다. 그리고 최종적인 팀원은 기획자 1명, 디자이너 1명, 개발자가 2명으로 구성되었다.



아무래도 개발자가 2명이기도 하고 우리가 하고자 하는 서비스를 구현하기 위해서는 back-end 쪽에서 작업을 해주어야 해서 front-end와 back-end를 동시에 작업을 해야 했기 때문에 정말 정신이 없었던 것 같다.

영준이 형과 처음에 같이 back-end 쪽을 작업하고, 나중 후반부에서는 영준이형 혼자서 front-end를 작업하는 동안 크게 도와주지 못해서 미안했다.


원래 처음 기획에서는 시간별 데이터를 이용해서 취침시간과 기상시간을 예측하는 모델을 구현하는 것이 1차적인 목표였고 이를 통해서 생활 패턴이 얼마나 일치하는지를 확인하도록 하는 방식으로 구현을 하려고 했다.

기획자 분이 이 서비스를 직접 사용하고 있는 사람이어서 그 분의 데이터로는 대략적으로 기상시간과 취침시간이 예측이 가능했다. 그런데 행사에서 제고해주는 샘플 데이터의 수가 적기도 했고, 그 데이터들도 그냥 계속 가전제품을 사용하는 방식으로 되었기 때문에 이를 통해서 취침시간과 기상시간을 알아보긴 어려웠다. 따라서 유효한 데이터가 하나밖에 존재하지 않았기 때문에 이것만으로는 모델을 구현하는 것이 어려웠다.



그래서 차선책으로 생각한 것이 그냥 하루 전체 데이터에 대해서 유사도를 측정하는 방식으로 진행하는 것이었다. 우리의 서비스의 타켓이 기숙사에 사는 대학생을 대상으로 구현을 하였기 때문에, 보통 점심 때는 수업이 있기 때문에 이 시간대의 전기 사용량은 크게 차이가 나지 않을 것이라고 생각했기 때문이다. 물론 이러한 내용에 예외가 있을 수도 있다(특히 공강이라던가 혹은 수업이 아침에 일찍 모여있어서 일찍 수업이 끝나서 끝나자마자 기숙사에 돌아오는 경우 등) 그러나 이러한 사항을 하나하나 다 따지기에는 알고리즘의 구현이 복잡해지기 때문에 그냥 단순화해서 생각했다.



해커톤에서 구현한 prototype은 이러한 데이터들을 MySQL에 저장하는 방식으로 해서 SUM이나 AVERAGE와 같은 통계 함수를 쉽게 사용할 수 있었지만, prototype에서는 데이터 개수가 작았기 때문에 별로 상관이 없었다. 하지만 실서비스에서는 데이터의 개수가 매우 많기 때문에 이를 구현하려면 NoSQL 기반의 데이터베이스(MongoDB나 DynamoDB 등)에 저장을 하는 것이 더 좋으며, 또한 구현한 알고리즘은 사람이 적을 때는 금방 유사도를 계산할 수 있지만, 사람이 많아지면 계산속도가 훨씬 느려지기 때문에 다른 알고리즘을 찾아보는 것이 더 좋을 것 같기도 하다.



이 서비스가 구현이 된다면 바로 기숙사에서 적용이 가능할 수 있다. 물론 우리 학교의 경우에는 전부 기숙사가 될 수 있는 것이 아니기 때문에 적용이 어려울 수도 있지만, 전원 기숙사 생활을 하는 다른 학교의 경우에는 좋게 이용을 할 수 있다고 생각한다. 다른 학교의 방식은 모르겠지만 우리 학교의 경우에는 기숙사 방배정을 할 때 취침시간 부분에선 단순히 12시 이전 취침 여부만 체크를 하기 때문에 약간 늦은 시간에 잠들지만 주변 환경에 크게 영향을 받는 사람에 있어서는 불편할 수 있다.

기숙사에서 각 방의 호실마다 제품을 비치해놓는다면 이 제품을 통해 얻은 데이터를 통해서 생활 패턴을 분석하고 이렇게 얻은 생활 패턴을 통해서 주변이 시끄러우면 잠을 쉽게 잘 수 없는 사람에 대해서 유사도 분석을 통해서 유사도가 가장 높은 사람들로 방을 매칭시킨다면 좋게 활용이 가능할 것으로 보인다.


아무래도 개발자가 2명인데다가 구현해야 할 것도 많았고, 시간도 하루 밖에 없었기 때문에 back-end 쪽은 어찌어찌해서 대강 완료를 하였으나, front-end는 완벽한 구현이 되지 않았다. 그리고 구현에만 너무 집중을 해서 스파게티 코드로 구현이 되었다는 점이 약간 아쉬웠다. 그래도 아이디어가 참신해서 그런것인진 몰라도 다행히 예선을 통과했고, 본선은 다른 팀들의 투표로 등수가 매겨졌는데, 기숙사에서 이러한 고충을 겪는 사람이 많았는지 우리 쪽에 투표를 해준 사람들이 많아서 최우수상을 수상할 수 있었다.


다음에도 비슷한 행사가 있으면 일정 상황에 따라서 참여를 해보고 싶다.




반응형

'일상' 카테고리의 다른 글

Layer7 CTF 후기  (0) 2016.09.04
요즘 보고있는 강의  (0) 2016.07.21
흠..  (2) 2016.03.16
2016. 03. 07.  (1) 2016.03.07
2016. 02. 04.  (0) 2016.02.04