1. 안녕하세요 저는 블록체인 개발자로 일하고 있는 한 명의 개발자 입니다. 저의 블록체인 개발 일대기를 적어보려 합니다. 이를 통해 블록체인 초입자가 보통 느끼는 개발 방향 수립 어려움에 조금은 도움이 될 수도 있습니다.

  2. 저는 첫 개발을 **C(++)**로 시작을 했습니다. 초등학생 시절 잘 모르는 대로 뚱땅뚱땅 뚜들기며 기본 알고리즘 수준의 문제를 풀다 학생 시절에는 개발과는 관련이 없는 삶을 살았고, 개발자로 일하고 있는 지금은 Ts(Js)Go를 주력 언어로 개발하고 있습니다. 개발 언어를 언급한 이유가 한 가지 있는데 이는 아래에 다시 언급하도록 하겠습니다.

  3. 저는 실력있는 (블록체인) 개발자가 되고 싶었고 실력을 기를 수 있겠다 판단한, 가고 싶은 기업이 몇 군데 있었습니다. 하지만 비전공 + 늦깎이 직군 전환인 저를 남한테 표현하기는 어려움이 많았고, 이력서 단계에서 걸러지는 경우도 다반사였습니다. 시간을 계속 끌수는 없다 생각해 가서 배우는 것이 있겠지 생각하며 한 기업에 입사하게 됩니다.

  4. 입사한 회사는 정부 과제에 참여하는 기업이었고, 저는 DID(Hyperledger Indy) 프로젝트에 참여할 예정이었습니다. 이전에 IITP 과제 중 하나에 투입되어 API 서버 개발(Js)을 하였습니다.

    https://github.com/hyperledger/indy-node

  5. API 개발을 마무리하고 DID 관련 학습을 진행하던 중 생각지도 못하게 입사하고 싶었던 기업 중 한 곳에서 뒤늦게 합격 통보가 왔습니다. Hyperledger Fabric 코어 소스를 다룰 수 있다는 것이 가장 큰 장점인 곳이었는데 이 기회를 놓치면 안되겠다 생각해 기존 회사분들께 잘 설명드려 양해를 구하고 퇴사 프로세스를 거쳐 이직을 했습니다.

    https://github.com/hyperledger/fabric

  6. Ts 기본, Solidity 찍먹, Go 찍먹 정도인 개발 수준을 가지고 블록체인 네트워크 소스를 분석하기란 여간 쉬운 것이 아니었습니다. 그런데 퍼블릭 블록체인 네트워크(이더리움 등)는 들어봤어도, 갑자기 프라이빗 블록체인 네트워크를 분석해야 한다니, 뭐부터 해야할지 너무나 막막했습니다.

  7. 네트워크 구성 및 운영에 사용되는 명령 스크립트, Fabric SDK, 피어(엔도서, 커미터), 오더러, MSP 등의 네트워크 구성 요소, 네트워크에서 사용되는 여러 분산 알고리즘 등을 알기 위해 2-3달 간을 퇴근 후에도 회사에 남아 공부하고는 했습니다.

    https://github.com/kyle-park-io/hyperledger-fabric-config

    https://github.com/kyle-park-io/hyperledger-fabric-config-local

<Project 1. STO chaincode>

  1. 짧지 않은 기간의 노력 끝에 조금은 시야가 넓어졌고, 개발에 투입될 준비가 되었습니다. Fabric 코어 소스 개발에는 선임 개발자분들이 투입되어 진행 중이었고, 저는 해당 프로젝트에 들어가기 이전에 STO 체인코드 개발을 먼저 진행하게 됩니다.

  2. STO 프로젝트 PoC 중 비즈니스 로직에 가장 적합했던 ERC(EIP)1400 인터페이스를 만족하는 체인코드 개발을 진행했습니다.

    https://github.com/ethereum/eips/issues/1411