인생 첫 해커톤을 나가다
엄청 설레기도하고 한편으론 걱정도 되었던 해커톤이었다.
이번 해커톤은 보통의 해커톤과 다르게 일반적인 웹 서비스를 배포하는 것이 아니라
채널톡 서드 파티 앱을 만들어야 했다.
주제는 "대학생들에게 필요한 채널톡 앱 만들기" !!
주제가 당일날 발표될줄 알았으나 4일전에 공지를 해주셨다.앱 구현하기를 이때부터 연습 해봤어야 했는데..
채널톡 앱이란?
채널톡 내의 "앱스토어"에 등록된 앱을 의미하고
그 앱은 채널톡 내에서 커맨드를 사용해 여러가지 기능을 사용할 수 있게 해준다.
문제는 WAM ..
WAM(web applicaition module)은 Function이나 command가 유저 인터렉션을 필요로 하거나 특정 정보를 유저할 때 보여줘야할 때 쓰는 일종의 팝업창 같은 개념이다.
앱스토어에 연결된 서버 외에 wam에 우리가 원하는 웹페이지를 띄우려면 또 다른 서버를 연결해서 WAM 창에 띄웠어야 하는데,
그 과정이 쉽지 않았다..
같이 참여한 프론트엔드를 맡아주신 선배님이 멱살잡고 해결해주심
그래서 우리 조가 만든 앱은 "flag" 다!!
앱의 기능을 간단히 말하자면 일종의 챌린지 앱이다.
개인이 챌린지를 등록할 수 있고 등록된 챌린지를 다른 멤버가 참여할 수 있으며, 챌린지를 했는지 안 했는지 채널톡 방 안에서 인증도 할 수 있게 해주는 앱이다.
1. 목표 제목과 이모지를 생성하고
2. 인증 유형을 선택하고
3. 기간을 정하고 목표를 등록.
4. 인증을 한 유저와 그렇지 않은 유저가 한눈에 보임.
5. 내가 참여하고 있는 챌린지는 챌린지 리스트의 위에 배치되며 색깔이 입혀짐. (그렇지 않은 챌린지는 밑에 배치되며 참여 버튼 유지)
역할 및 구현 과정
나는 백엔드를 맡았다.
WAM에 띄울 웹 서버를 DB와 연결하여 상황에 맞는 데이터를 반환하도록 구현했다.
다음은 구현한 API들을 swagger 창에서 띄운 모습이다.
다대다 관계 연결 테이블로 구성했고 고객 정보를 받아올때 부여한 primary key 값과 flag를 생성할때 부여하는 flag 자체의 primary key 값, 이 두 값으로 챌린지 정보를 구분하게 했다.
처음에 내 mysql root 비밀번호를 까먹어서 시작하기 전부터 꽤 고생했다. 😡
결국 싹 지우고 mysql 설정을 첨부터 다시 했다.. ;;
프론트를 맡아준 형님이 프론트 무쌍을 찍을 동안 나는 딸깍 서버를 열고 테이블을 만들었다. 😁
생각보다 아이디어 수립에 시간을 많이 써서 나머지 조원들이 아이디어 수립에 시간을 많이 썼고,
앱 발표자료와 디자인을 도맡아서 해주었다.
어느정도 구현은 했지만 계획한 모든 기능을 구현해내진 못했고, 결국 입상은 실패 ㅜ
그 외,,
첫 째로 채널톡 사무실 진짜..진짜 깔끔하다.
운 좋게도 제일 좋고 넓은 방 배정 받게 된 우리조 ㅎㅎ 첨에 들어가자마자 깜짝 놀랐다.
사내 스낵바에서 음료수들과 맥주 과자들을 마음껏 먹을 수 있었고,
중간에 피자와 치킨을 사다주셨다..!
음식 사진들을 더 찍었어야 하는데 아쉽,,
느낀점
진짜 아직 갈 길이 한~~~참 멀었다고 느꼈고 공부 진짜 열심히 해야겠다고 뼈저리게 체감했다.
밤을 새워서 한 프로젝트를 한다는 점이 낭만 max였고 중간에 오피스 투어도 하면서 동기부여도 빡빡 됐다.
앞으로 더 열심히 살 수 있는 원동력과 동기부여를 확실히 얻고 가는 아주 좋은 대외활동이었다.
추천? 무조건 한다.
관계자 분들도 너무 친절하시고 잘 도와주셨다.먹을것도 많고
앞으로도 Keep Going ~~