제주 블록체인 해커톤 2019
올해 7월부터 함께 스터디를 시작한 팀원들과 무박 3일의 제주 블록체인 해커톤에 참가해 수상까지 하게 되었다. 잠들기 전에 잘한 점과 아쉬운 점을 짧게 기록해본다.
[이미지: 제주 블록체인 해커톤 현장에서 찍은 사진]
댕댕이가 제주 부린다.
올해 7월부터 함께 스터디를 시작한 팀원들과 함께 해커톤에 참가하게 되었고, 수상까지 하게 되었다.
잠들기 전에 짧다면 짧고, 길다면 길었던 11월 7일(목) ~ 11월 10일(일) 무박(1박) 3일의 기억을 짧게 기록해본다.
11월 7일 (목)
- 아이디어 구체화
- 구현 범위, 주요 개발 항목 정리
- 개발 역할 설정
11월 8일 (금)
- 댕댕이 DB역할을 수행할 SmartContract 개발
11월 9일 (토)
- 댕댕이 DB역할을 수행할 SmartContract 개발
- 댕댕이와 유저를 연결하는 SmartContract 개발
11월 10일 (일)
- Smart Contract <-> FrontEnd
잘한 점
(1) 어느 곳에 무게를 둘 것 인가?
대부분의 해커톤에 참가할 때마다 검증용 데이터를 기록하는 방식을 사용했지만, 이번에는 모든 데이터를 Contract에 기록하여 DB처럼 활용하기로 결정했다.
이유는 다음과 같다:
(1) 유저가 늘어남에 따라 기하급수적으로 늘어나지 않는 데이터(최대치는 전국의 반려동물 숫자)
(2) 반려동물 기록에 사용되는 가스 비용이 약 1~2원으로 저렴함
(3) 낙후된 동물 데이터 시스템을 통합할 수 있음
반려동물을 한 마리 등록하면 약 1.1원이 나왔다. (20~ 23만 | Fee 0.0055 | Klay 1.1원)
서버를 사용하면 무료지만, 블록체인의 장점을 적은 비용으로 활용할 수 있고 공동의 DB를 만들기에 가스비용 문제는 충분히 납득할 수 있었다.
또한 mapping을 활용하여 원하는 filter 데이터를 얻을 때도 큰 비용이 들지 않았다. (40~ 45만 | Fee 0.011 | Klay 2.29원)
[이미지: 타입별 동물 배열 인덱스를 mapping으로 구성한 구조 다이어그램]
(2) 도움 요청
SmartContract를 설계하며 많은 혼란이 있었다. 혼자 문제를 해결하는 것도 도움이 되지만, 몇 시간의 고민을 키워드 담긴 조언으로 해결할 수 있다.
설계를 가지고 조언과 피드백을 받아 많은 시간을 단축했다.
“질문하는 것을 두려워하지 말자. 하지만, 질문을 잘하자!”
[이미지: 멘토님들과 상담하는 장면]
멘토님들에게 감사함을 표합니다.
(3) Done is better than perfect
SmartContract에 대한 욕심이 생겨 실제 서비스에도 사용할 수 있는 수준으로 만들고 싶었다. 하지만 전체적인 타임라인에 영향을 미칠 것으로 판단하여 큰 타임라인을 정하고 데드라인을 만들었다.
“완성하지 못하고 넘어가는 것이 찜찜하기에 쉽게 포기하지 못하지만, 상황에 따라 포기하는 법도 정말 멋진 것 같다.”
욕심은 실력이 아니다.
아쉬운 점
(1) 명확한 타임라인
목요일에 아이디어 구체화, 구현 범위가 정해졌다. 동료 개발자와 작업을 나누었지만, 나의 일정 계산과 동료 개발자의 일정 계산을 명확하게 하지 못하였다. “컨트랙트와 프론트 연결 부분을 1~2일 만에 만들고 프론트를 도와줄게! 기다려!”라고 말하고, 마지막 일요일이 시작된 자정이 넘어서야 프론트를 만지기 시작했다. 12시간도 아니고, 12일에 대한 범위는 내가 구현할 것을 정확하게 인지하지 못하고, 나의 능력이 어느 정도인지 정확하게 알 수 없기 때문인 것 같다. 때때로 나에게 일어나는 아슬아슬한 문제인데. 역시나 이번에도 똑같았다. 단순한 A4용지에 기능 나열이 아닌, ‘무언가’가 필요할 것 같다.
그 ‘무언가’가 ‘무언가’인지부터 찾아보자.
(2) 해커톤의 특징
시연을 진행할 때, 아래의 반려동물 데이터를 입력을 하며 ‘아차’ 싶었다. 심사위원 분들이 데이터 입력 시간을 대기해야 하기 때문이다.
각 대회마다 심사 기준들이 다르겠지만 중요한 것은 ‘어떻게 주요 기능을 흥미롭게 보여주느냐?‘인 것 같다. “제가 이런 대단한 구현을 했지만, 프론트는 연동이 안되어 있어요.”라고 말을 해도, 그것을 보여주기가 힘들기 때문에 어느 한 곳에 균형을 잃는 것은 좋지 않다.
구현은 해야하지만, 융통성을 발휘해보자.
[이미지: 반려동물 데이터 입력 시연 화면 스크린샷]
[이미지: 해커톤 시연 화면 스크린샷]
제주 블록체인 해커톤 2019년을 마무리 하며..
나는 반년에 한 번씩 해커톤을 나가려고 노력한다. 해커톤을 진행하며 밤을 지새울 때마다 ‘이렇게 까지 살아야하나?‘를 느끼면서, 한 편으로는 ‘아직 살아있구나.‘를 느끼기 때문이다.
지금 당장은 꾸벅꾸벅 졸면서 잠을 채우지 않은 상태이기에 ‘이제 나의 평생 해커톤은 더 이상 없다!’라고 생각하면서도 우리 팀의 아이디어가. 또, 급하게 만들어 놓은 이 프로토타입이 ‘진짜 세상에 필요할 수 있구나.‘를 느끼며 다음을 조심스레 준비한다.
이 글은 티스토리 원문(2019-11-10 발행)을 옮겨온 것이다.