재밌게 했던 Devfest GDG 대구 해커톤이다!
아주 절거웠어요
요즘 한 달에 한 번은 해커톤에 나가는 것 같다. 9월부터 4번 째 나간다... 나도 내가 해커톤 중독이 될 줄은 몰랐는데, 그냥 나가다 보니까 벌써 이게 몇 번째 해커톤인지도 모르겠다. 이번 해커톤은 일정이 딱 12시간으로 잡혀있고, 중간에 카타르 월드컵을 본다고 해서 가벼운 마음으로 친구도 끌어들여서 신청했다.
호텔에 도착해서 프론트 백엔드 디자이너 기획자로 나뉘어진 판에 이름을 붙였다. 해커톤이 시작하고 상품 주는 두근두근 룰렛 돌리기도 하고, 운영진 분들의 삶 발표도 듣고, 이것저것 하고 나니 팀 빌딩을 한팀한팀 불러주셨다. 당황스럽게 1조라서 바로 불려서 팀원 분들과 통성명을 했다. 사실 소마고 모임인 줄 알고 도망치려고 했는데 친구가 바짓가랑이 붙잡고 울어서 오기로 했던 건데, 우리 팀원 분들은 다 대학생이셨다. 프2 백1 디자인1이었다. 근데 디자인 하시는 팀원 분은 인공지능 하시는데... 인공지능 칸이 없어서 디자인에 넣었다고 하신다. 외로운 백엔드...
아이디어는 엄청나게 금방 정했다. 보통 무박 2일이나 3일 하는 해커톤을 12시간밖에 안 하는데, 중간에 월드컵도 보고 야식도 먹고 발표도 봐야 해서 실질적으로 개발하는 시간은 6시간 됐나? 엄청 짧았다. 어차피 심사도 운영진 50% 민간인 50%였다. 그래서 간단하고 재밌는 아이디어를 찾고 있다가, 어차피 다들 깃허브 아이디 하나씩은 있으니까 github 활동을 분석해서 그 사람의 mbti를 유추해 내는 서비스를 개발하기로 했다.
GITI, 깃허브로 알아보는 MBTI! 깃허브 이름을 입력하면, 깃허브 contributions 수와 팔로잉, 팔로워 수 같은 유저 정보를 githubAPI를 사용해서 긁어 온다. 그리고 그러한 정보를 바탕으로 사용자의 MBTI를 유추해서,
다음처럼 귀여운 mbti별 토마토와 함께 나타낸다. (이 귀요미 토마토도 팀원 분께서 열심히 그렸다... 짱귀입니다...)
깃허브 API를 써본 적이 없어서 많이 헤맸다. 간단한 거라 얼마나 다행인지 모른다. 일단 나는 쓸 줄 아는 것 중에 스프링을 가장 잘 하니까 개발 효율 좋은 스프링을 사용하기로 했다. github user 정보를 끌어오기 위해 spring cloud의 feign client를 사용했다. feign client는... 참 사용하기 쉽고 편하고 좋은 것 같다. 또한 contributions 수를 따로 또 긁어와야 했는데, 이건 REST API로 해결이 안 됐다. 이곳저곳 찾아보니 github의 graphQL api를 사용해야 했다. feign client에 graphql도 지원했으면 좋았을 텐데, 그런 기능은 없어서 라이브러리를 직접 찾아보기 시작했다. 나같이 graphql을 사용해야 하는 사람은 없었는지 잘 나오지 않았다. 겨우겨우 하나 찾아내고, 예제도 없어서 메소드를 하나하나 뜯어보면서 사용했다.
이런 알 수 없는 ppt가 우리의 발표 자료이다. 참고로 저 qr code는 들어가도 동작 안 한다. 서버를 껐기 때문이다. 팀 이름이 멋쨍이 토마토라서 수치스럽게 토마토 노래도 부르고, 1분 발표라서 엄청 편하게 발표했다. 무엇보다 실제 서비스에 접속해서 사용해보도록 했다. 발표가 끝나고 데이터베이스를 까보니 50명 정도가 사용했다.
입상은 못했다! 하지만 팀원과 개발하고 노는 게 즐거웠다. 재밌었고, githubAPI를 다뤄보는 것도 처음이라 신선했다. 사실 동아리 프로젝트에서 github API 만질 일이 있었는데 이번 대회를 통해 프로젝트 코드 미리 짠 것 같아서 개이득이라는 생각이 든다.
월드컵 포르투갈전!!!!
웬 소리냐고 하겠지만 이번 해커톤에선 이게 가장 절거웠다. 어떻게 이걸 이기지? 팀원 분들이랑 경기 시작 전에 삼단논법으로 일목요연하고 조리있게 설명했다. 지금 우리나라와 포르투갈의 축구 역사 속에서 우리나라의 승률이 100%이다. 그리고 오늘 하는 것은 우리나라와 포르투갈의 축구 경기이다. -> 그러므로 우리는 오늘 승리한다. 였는데 이걸 증명하고 말았다... 역시 삼단논법은 틀리지 않아........ 골 넣을 때 모든 사람들이랑 함성 지르는 분위기도 좋았다. 특히 연장 시간 역전 골은 진짜... 입을 못 다물겠다.......
팀원들과 놀기
그냥 새로운 사람 만나서 티키타카 노는 게 즐거웠다. 어쩌면 이게 내 해커톤 참가의 원동력인 것 같다. 개발 얘기도 하고, 장난도 치고, 많이 지쳐있었는데 리프레시가 충분히 된 것 같다.
발표로 자세한 로직을 말 못했다.
말해야지 말해야지 다짐하고 올라갔는데, 까먹고 github 여러 정보를 분석해서 도출한다는 사실을 말 못했다. 이게 다 토마토 노래를 불렀기 때문이라고 본다... ㅎㅎ 앞으론 이런 중요한 말 할 것들은 슬라이드에 힌트 느낌으로 추가하면 좋을 것 같다.
배가 아팠다.
사실 해커톤 할 때마다 느끼는 건데 밤새고 아침에 배가 너무너무너무너무너무 아프다. 아팠다보다는 울렁거린다가 맞나? 빈속에 커피를 때려 넣어서 그런가? 이런 생각을 하면 야식을 먹어서 그다지 빈속도 아닌 것 같다.
graphql 쓸 줄도 모르면서 복붙했다.
100번은 썼다 지웠다 했다. 수치스럽기 때문이다. graphql 쓸 줄도 모르면서 github contributions 수 긁어오는 쿼리문 복사해서 그대로 사용했다. 솔직히 공부해서 직접 짜는 건 시간 여유도 없어서 가능한 일은 아니었다고 본다. 이걸 여기에 쓰는 이유는, 다짐하기 위해서이다. 이렇게 박제해 놓고, 나중에 graphql 공부해서 꼭 저거 이해해야지!
http
와 https
가 서로 http 통신을 못 한다ngrok
써서 해결했다.운영진 분들 고생하셨습니다!
아주 즐거웠어요 특히 월드컵...
1조 멋쨍이 토마토 팀도 수고하셨습니다! 재미었어요!
참가한 모든 분들 멋있었습니다!