ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [RET] 제주 블록체인 해커톤 2019년
    회고 2019. 11. 10. 18:31

    댕댕이가 제주 부린다.

    올해 7월부터 함께 스터디를 시작한 팀원들과 함께 해커톤에 참가하게 되었고, 수상까지 하게 되었다.

    잠들기 전에 짧다면 짧고, 길다면 길었던 11월 7일(목) ~ 11월 10일(토) 무박(1박) 3일 의 기억을 짧게 기록해본다.

     

    11월 7일 (목)

    - 아이디어 구체화

    - 구현 범위, 주요 개발 항목 정리

    - 개발 역할 설정

     

    11월 8일 (금)

    - 댕댕이 DB역할을 수행할 SmartContract 개발

     

    11월 9일 (토)

    - 댕댕이 DB역할을 수행할 SmartContract 개발

    - 댕댕이와 유저를 연결하는 SmartContract 개발

     

    11월 10일 (일)

    - Smart Contract <-> FrontEnd

     


    잘한 점

    (1) 어느 곳에 무게를 둘 것 인가?

     대부분의 해커톤에 참가할 때 마다, "블록체인의 ~~를 활용하기 위하여, 블록체인에는 검증용 데이터인 해시값을 SmartContract에 기록합니다." "가스 수수료를 위하여.."라는 말을 당연하듯 하였고,  실제로 그렇게 구현하는 것이 효율적이기 때문에 지금 까지 진행 한 프로젝트의 SmartContract는 대부분 검증용 데이터를 기록하기 위한 용도로 사용하였다. 

     

    하지만 이번 아이디어에서는 검증용 데이터를 올리기보다는 모든 데이터를 Contract에 기록하여 DB처럼 활용해보자고 마음먹었다.

    이유는 아래와 같다.

    (1) 유저가 늘어남에 따라, 기하급수적으로 늘어나는 데이터가 아닌, 최대치는 전국의 반려동물 숫자이다.

    (2) 반려동물 기록을 하게 될 때, 사용되는 GAS비용은 약 1~2원으로 저렴하다.

    (3) 시스템이 낙후되어 문제가 심각한 동물 데이터들을 통합할 수 있다.

     

    반려 동물을 한 마리 등록하게 되면 약 1.1원이라는 금액이 나왔다. (20~ 23만 | Fee 0.0055 | Klay 1.1원)

    서버를 이용하게 되면 무료로 사용할 수 있는 용량이 될 수 있지만, 작은 비용으로도 블록체인의 장점을 활용할 수 있고 무엇보다 하나의 공동의 DB를 만들기에 가스비용의 문제는 쉽게 납득할 수 있었다.

     

    또한, mapping을 활용하여 원하는 filter 데이터를 얻게 적용하는 것에도 큰 비용이 들지 않았다. (40~ 45만 | Fee 0.011 | Klay 2.29원)

     

    각각 type으로 동물배열의 index를 맵핑 시켜, 원하는 필터를 가지고 올 수 있게


    (2) 도움 요청

     SmartContract를 설계하며, 많은 혼란이 있었다. 내가 원하는 것을 구현하는 것에 있어 가장 효율적인 방법이 무엇일까? 다른 사람들이 보았을 때, 이 부분은 효율적인 사용인가? 에 대한 혼란이었다. 혼자 문제를 고민하고 해결하는 것 또한 나에게 도움이 되지만 내가 몇 시간에 걸쳐 생각하고 고민해야 하는 부분을 '키워드'가 담긴 조언 한 번으로 해결할 수도 있다.

    그렇게 하여, 내가 생각하는 방법(Klaytn을 DB로 사용한다.)과 설계를 가지고 조언을 받고 피드백을 받아 많은 시간을 단축했던 것 같다.

     

    질문하는 것을 두려워하지 말자. 하지만, 질문을 잘하자!

    멘토님들에게 감사함을 표합니다.

    (3) Done is better than perfect

     SmartContract에 대한 욕심이 많이 생겼다. 한 번의 구조에 해커톤이 아닌, 실제 서비스에도 사용할 수 있게 만들고 싶었고, 이를 통하여 '칭찬'을 받고 싶었는지도 모르겠다. 하지만, 전체적인 타임라인에 영향을 미칠 것 같다고 판단하였고 해커톤 동안 큰 타임라인을 정하여 데드라인을 만들었다. "던 이즈 붸럴 덴 펄 펙트"라는 말을 모두가 알고 있지만, 완성하지 못하고 넘어가는 찜찜하기 있기에 쉽게 하지 못하는 것 같다. 하지만, 상황에 따라 포기하는 법도 정말 멋진 것 같다.

     

    욕심은 실력이 아니다.

     


    아쉬운 점

     

    (1) 명확한 타임라인

     목요일에 아이디어 구체화, 구현 범위가 정해졌다. 동료 개발자와 작업을 나누었지만, 나의 일정 계산과 동료 개발자의 일정 계산을 명확하게 하지 못하였다. "컨트랙트와 프론트 연결 부분을 1~2일 만에 만들고 프론트를 도와줄게! 기다려!"라고 말하고, 마지막 일요일이 시작된 자정이 넘어서야 프론트를 만지기 시작했다. 1~2시간도 아니고, 1~2일에 대한 범위는 내가 구현할 것을 정확하게 인지하지 못하고, 나의 능력이 어느 정도인지 정확하게 알 수 없기 때문인 것 같다. 때때로 나에게 일어나는 아슬아슬한 문제인데. 역시나 이번에도 똑같았다. 단순한 A4용지에 기능 나열이 아닌, '무언가'가 필요할 것 같다.

     

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

     

    (2) 해커톤의 특징

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

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

     

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

     

     

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

     나는 반년에 한 번씩 해커톤을 나가려고 노력한다.
    해커톤을 진행하며 밤을 지새울 때마다 '이렇게 까지 살아야하나?'를 느끼면서, 한 편으로는 '아직 살아있구나.'를 느끼기 때문이다.
    지금 당장은 꾸벅꾸벅 졸면서 잠을 채우지 않은 상태이기에 '이제 나의 평생 해커톤은 더 이상 없다!'라고 생각하면서도 우리 팀의 아이디어가. 또, 급하게 만들어 놓은 이 프로토타입이 '진짜 세상에 필요할 수 있구나.'를 느끼며 다음을 조심스레 준비한다.

     

    댓글

Developer RyuK