웹 개발자여, 이제 블록체인으로 오라

블록체인 개발자 캐즘...어떻게 뛰어 넘을까?

컴퓨팅입력 :2018/01/24 07:40    수정: 2018/01/24 08:15

새해 IT 업계 최대 화두는 단연 블록체인이다. 블록체인은 세계 곳곳에 탈중앙화(분산된) 컴퓨터가 네트워크를 구성하고, 그 안에서 발생한 데이터를 모든 컴퓨터에 동일하게 기록한다는 개념의 기술이다.

물론, 암호화폐 거래 시장 열풍으로 덩달아 스포트라이트를 받는 면이 없지 않다.

하지만 근본적으로는 인터넷 기술이 점점 소수의 서비스 중개 기업에게 권력을 몰아주고, 정부가 시민을 감시하는 수단으로 사용되고 있는 상황이 새로운 혁명적 기술로서의 블록체인의 잠재 가치를 키우고 있다.

블록체인에 대한 관심이 높아지면서 세계적으로 블록체인 기반 프로젝트에 투자가 쏠리는 현상도 나타나고 있다. 그런데 '전문 인력'은 그만큼 빨리 양성하기 어렵다는 점이 기술과 서비스 발전에 발목을 잡는다.

새로운 기술이 나와 대중화되기 전까지 수용자(여기에선 기술 수용자인 개발자)에게 채택되지 못하는 '캐즘 현상'이라고도 볼 수있다.

블록체인 개발자 캐즘...어떻게 뛰어 넘을까?

세계적으로 많은 웹 개발자들이 블록체인 개발자로 쉽게 전향할 수 있다면 어떨까.

세계 최대 온라인 개발자 커뮤니티 스택오버플로의 설문조사(☞링크)에 따르면 지난해 전세계 개발자 중 4분의 3은 웹 개발자인 것으로 나타났다.

스택오버플로 2017 설문조사 결과

6만4천 명을 대상으로 '개발자 타입'을 물어봤는데 중복 체크가 가능하자 72.6%가 웹 개발자를 선택했다.

수요는 폭발적으로 늘고 있지만, 공급은 부족한 블록체인 개발 분야에 웹개발자가 희망이 될 수 있지 않을까.

다행히, 웹 개발자들이 블록체인 개발에 입문할 수 있는 다양한 튜토리얼들이 공개돼 있다.

웹더리움(웹+이더리움) 입문하기

최근 해피펀코퍼레이션(Happy Fun Corp)이란 개발 업체는 자체 블록체인 프로젝트와 고객사 프로젝트를 진행하면서 배운 '웹더리움' 노하우를 튜토리얼(☞링크)로 공개했다.

웹더리움은 '웹'과 블록체인 네트워크인 '이더리움'을 결합한 말로, 웹 기술을 이용해 이더리움 위에서 블록체인앱(Dapp)을 개발할 수 있다는 의미로 사용했다.

튜토리얼을 작성한 존 에반스 최고기술책임자(CTO)는 "웹 개발자들이 실제 이더리움 블록체인에서 스마트 컨트랙트를 세팅·작성·배포하고, 웹서비스를 통해 브러우저에서 스마트 컨트랙트와 상호작용하는 방법"에 대해 설명 한다고 소개했다.

존 에반스는 우선 PoW, PoS 같은 채굴 방식에 대해선 일단 개발자가 신경 쓸 필요가 없다고 안심시킨다. 하지만 사전에 블록체인 이더리움에 대한 개념은 알아둘 필요가 있다.

"이더리움이 탈중앙화된 버추얼 머신(VM)으로 구성돼 있고 세계 곳곳에 흩어져 있는 수많은 노드들이 돌아가고 있다"

"스마트 컨트랙트라고 불리는 코드가 있고, 이 코드는 버추얼 머신, 즉 모든 노드 안에서 저장된 데이터와 함께 작동한다"

"누구든 어떤 허가나 등록이 없이, 이 머신에 코드·데이터를 제출할 수 있지만 대가가 필요하다. 이더리움 안에 코드 한줄 한줄, 바이트의 데이터를 저장하는 것 모두 지불이 따르고, 이더리움 컴퓨팅/스토리지에 비용을 지불할 때, 그것을 '가스(gas)'라고 부른다"

그의 설명에 따르면 테스트넷이라 부르는 이더리움 블록체인에 페이크 머니(가짜 돈)을 이용해 스마트컨트랙트와 웹브라우저의 데이터 연동을 실습해 볼 수 있다.

테스트넷은 실제 거대 마이너들이 보호하는 네트워크 이외의 망이다. 프라이빗 블록체인으로 활용되는 영역인 경우가 많다. 여기에선 Rinkeby(☞링크)라는 테스트넷을 사용했다.

자바스크립트, 블록체인까지 영토 확장?

튜토리얼을 살펴보면, 웹 요소 기술 중 자바스크립트의 활약이 눈에 띈다. 다양한 자바스크립트 프레임워크, 라이브러리가 등장하며 활용범위가 넓어지더니 이제 블록체인 분야까지 넘어온 것이다. (☞관련기사: 웹 개발자의 미래? 자바스크립트 보면 안다)

이더리움 블록체인에서 대부분 스마트 컨트랙트는 네이티브 언어인 '솔리디티(Solidity)를 사용한다.

관련기사

존 에반스는 "다른 솔리디티 튜토리얼은 개발자의 컴퓨터에 이더리움 노드가 운영되고 있다고 가정하고 시작하는데, 복잡하기만 하고 사실 (이더리움 노드를 서버에 운영하는 일이) 필수도 아니다"며 외부 서버에서 작동하는 API와 연동하는 연습만으로 충분히 이더리움 개발에 입문할 수 있다고 강조했다.

그러면서, 자바스크립트 기반 프로그램이 이더리움 노드와 호환되도록 만들어주는 자바스크립트 라이브러리 '웹3(Wed3)'가 가장 많이 사용되고 있다고 소개했다. 서버 쪽에선 자바스크립트 웹프레임워크인 노드js를 사용할 수 있다고 덧붙였다.