﻿---
title: "제주 블록체인 해커톤 2019"
description: "올해 7월부터 함께 스터디를 시작한 팀원들과 무박 3일의 제주 블록체인 해커톤에 참가해 수상까지 하게 되었다. 잠들기 전에 잘한 점과 아쉬운 점을 짧게 기록해본다."
pubDate: 2019-11-10
tags: [회고]
author: 류기혁
---

*[이미지: 제주 블록체인 해커톤 현장에서 찍은 사진]*

댕댕이가 제주 부린다.

올해 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일 만에 만들고 프론트를 도와줄게! 기다려!**"라고 말하고, 마지막 일요일이 시작된 자정이 넘어서야 프론트를 만지기 시작했다. 1~2시간도 아니고, 1~2일에 대한 범위는 내가 구현할 것을 정확하게 인지하지 못하고, 나의 능력이 어느 정도인지 정확하게 알 수 없기 때문인 것 같다. 때때로 나에게 일어나는 아슬아슬한 문제인데. 역시나 이번에도 똑같았다. 단순한 A4용지에 기능 나열이 아닌, '**무언가**'가 필요할 것 같다.

**그 '무언가'가 '무언가'인지부터 찾아보자.**

### (2) 해커톤의 특징

시연을 진행할 때, **아래의 반려동물 데이터를 입력**을 하며 '아차' 싶었다. 심사위원 분들이 데이터 입력 시간을 대기해야 하기 때문이다.

각 대회마다 심사 기준들이 다르겠지만 중요한 것은 '**어떻게 주요 기능을 흥미롭게 보여주느냐?**'인 것 같다. "제가 이런 대단한 구현을 했지만, 프론트는 연동이 안되어 있어요."라고 말을 해도, 그것을 보여주기가 힘들기 때문에 어느 한 곳에 균형을 잃는 것은 좋지 않다.

**구현은 해야하지만, 융통성을 발휘해보자.**

*[이미지: 반려동물 데이터 입력 시연 화면 스크린샷]*

*[이미지: 해커톤 시연 화면 스크린샷]*

## 제주 블록체인 해커톤 2019년을 마무리 하며..

나는 반년에 한 번씩 해커톤을 나가려고 노력한다. 해커톤을 진행하며 밤을 지새울 때마다 '**이렇게 까지 살아야하나?**'를 느끼면서, 한 편으로는 '**아직 살아있구나.**'를 느끼기 때문이다.

지금 당장은 꾸벅꾸벅 졸면서 잠을 채우지 않은 상태이기에 '**이제 나의 평생 해커톤은 더 이상 없다!**'라고 생각하면서도 우리 팀의 아이디어가. 또, 급하게 만들어 놓은 이 프로토타입이 '**진짜 세상에 필요할 수 있구나.**'를 느끼며 다음을 조심스레 준비한다.

---

> 이 글은 [티스토리 원문](https://ryublock.tistory.com/32)(2019-11-10 발행)을 옮겨온 것이다.