본문 바로가기
블록체인 직업들

블록체인 개발자 (Blockchain Developer)

by ###^^### 2020. 7. 22.
반응형

블록체인 개발자는 블록체인 프로토콜의 개발 또는 최적화, 블록체인 아키텍처 구축 그리고 블록체인 기술을 활용하여 스마트 컨트랙트(Smart contract)와 웹 어플리케이션(응용프로그램)등을 개발 하는 일을 한다. 그 역할이나 작업 영역에 따라 코어(Core) 블록체인 개발자와 블록체인 소프트웨어 개발자, 두 가지 유형으로 구분해 볼 수 있다.

 

코어 블록체인 개발자는 블록체인 기술 자체에 대한 연구, 설계, 개발 및 테스트에 집중한다. 따라서 블록체인 시스템의 아키텍처 개발과 프로토콜의 설계, 합의 알고리즘과 네트워크 보안 패턴의 설계등 전반적인 블록체인 기반의 분산 네트워크의 설계 및 구현을 담당한다.

 

블록체인 소프트웨어 개발자는 블록체인 기술을 사용하여 Dapp(Decentralized application, 분산 응용프로그램) 을 구축하는 일을 한다. 스마트 컨트랙트를 개발하고 Dapp을 위한 블록체인 노드와 상호작용하는 프런트 엔드와 이와 연결되는 백엔드의 개발을 담당한다. 이 두 영역에 따라 블록체인 소프트 웨어 개발자는 다시 프런트엔드 엔지니어(Front-end engineer)와 백엔드 엔지니어(Back-end engineer)로 나누어진다.

 

실제 현장에서나 언론, 취업사이트등에서는 코어나 소프트웨어의 구분 없이 블록체인 개발자로 사용되어 지고 있는 실정이다. 하지만 여기서는 코어 부분에 대한 것으로 한정하여 블록체인 개발자로 부르기로 하겠다. 그럼 블록체인 개발자에 대해 좀 더 알아보자. (소프트웨어 개발자 또는 엔지니어에 대해서는 뒤에서 프런트엔드, 백엔드로 나누어 차례로 설명할 것이다)

 

블록체인 개발자가 되기 위해서는 블록체인 개념과 그 동작원리, 아키텍처에 대한 이해가 기본이다. 다시 말해 암호화된 해시 함수, 합의, 분산 원장 기술등의 개념을 완전히 이해하고 있어야 한다. 또한 데이터 구조에 대한 지식과 응용할 수 있는 기술이 필요하다. 네트워크 환경에 따라 개발자들은 머클트리(Merkle trees)나 페트리샤트리(Patricia trees)등을 사용하여 데이터 구조를 조정하는 작업을 해야 하기 때문이다. 그리고 블록체인은 데이터 구조와 진화된 암호화가 결합된 형태이므로 암호화에 대한 지식은 필수 요건일 수 밖에 없다. 따라서 블록체인 개발자가 되기 위해서는 SHA256 및 KECCAK256과 같은 해시 함수등, 다양한 암호화 방법과 그 작동 방식을 알아야 한다.

 

블록체인으로 구현할 비즈니스의 종류나 개발 환경등에 따라 구체적으로 요구되는 각종 프로그램 경력이나 언어에 대한 기술은 조금씩 달라진다. 하지만 블록체인 개발을 리드할 개발자라면 최소한 한가지 이상의 언어에 능숙해야 하며, 그 외의 다양한 개발 언어와 프로그램등에 대한 경력이나 경험을 요청 받는다.

 

실제 구인 사례를 통해 구체적으로 기업들이 요구하는 블록체인 개발자의 요건들을 알아보자

 

[국내 모바일 메신저 업체 L사 / 출처:잡플래닛]

Blockchain Engineer (Blockchain Platform/Protocol)

[담당업무]

- 차세대 블록체인 플랫폼 연구/설계/개발/운용

- dApp을 위한 블록체인 프로토콜 표준 연구/설계/구현/운용

- 블록체인 성능 향상을 위한 합의 알고리즘 연구/개발/운용

- 블록체인의 사용성을 위한 스케일링 알고리즘 설계/개발/운용

- 블록체인 플랫폼을 위한 on chain governance 개발

- 블록체인 플랫폼을 위한 Virtual Machine 개발

[자격요건]

- 블록체인 기술과 이를 이용한 서비스 개발에 대한 관심 있는 자

- Python / Go / C, C / Java 등의 개발 언어 능숙한 자

- 분산 네트워크 프로그래밍에 대한 경험

- Data structure, Algorithm, Distributed Service 를 이해하여 적용 가능한 자

- 해외 출장/근무에 결격사유 없는 자

[우대사항]

- Ethereum, ICON, EOS 등 블록체인 open source core 기술에 대한 설계 검토 분석 경험

- Ethereum, ICON, EOS 등 블록체인 기반 dApp개발 경험

- 컨센서스 알고리즘, VM. 블록체인 프로토콜, 스마트 컨트랙트 운영 환경에 대한 풍부한 기반 지식

- 글로벌 서비스/플랫폼 운영 및 개발 경험

- Open Source committer로 활동 경험

 

[중국 IT 회사 H사 / 출처:Linked in.com]

Blockchain Engineer

[담당업무]

- 분산 원장 기술 분야의 연구 진행, 혁신적인 아이디어 개발, 실제 제품 완성.

- 고급 암호화 기술을 사용하여 기존의 중앙집중화된 문제에 대한 분산화, 보안, 통합화, 대량화를 실현할 수 있는 솔루션 개발

- 매끄럽고 혁신적인 고품질 코드 작성

- 여러 팀 및 다양한 개인들과 협업

- 과학 논문 및 프로젝트 보고서를 작성

- 필요에 따라 또는 상위 매니저의 지시에 따라 다른 직무를 수행

[자격요건]

- 컴퓨터 공학 및 관련 공학 분야의 학사 학위. 석사 또는 박사 학위 선호

- 하이퍼레저, 이더리움, 비트코인, 코다(Corda), NEO 등을 포함한 하나 이상의 블록체인 어플리케이션 개발 플랫폼을 통한 블록체인 기술 실무 경험과 가상화폐 기술 자체에 대한 지식

- 허가된, 또는 허가 되지 않은 블록체인 네트워크의 차이에 대한 이해와 PoW, PoS, PoI, PBFT 뿐만아니라 Tangle, Hashgraph, Lighting network, 합의 알고리즘와 같은 대체 분산 원장 기술에 대한 이해

- 암호화, 공개 키 인프라 (PKI), 디지털 서명, 무결성 증명 및 Blockchain 네트워크의 수리적 원리에 대한 경험/이해

- 대형 플랫폼에서의 알고리즘, 데이터 구조, 데이터베이스, NoSQL 시스템 및 이 모든 기능에 대해 능숙해야 함. 가장 중요한 것은 Blockchain을 분산 원장과 기존 시스템의 주요 차이점에 대한 이해

- Java, NodeJS, JavaScript, Python, C ++, Go, Solidity와 같은 여러 프로그래밍 언어에 대한 능숙한 지식

- Linux / Unix 운영 체제의 능숙도.

- 영어 실력. 과학적 보고서와 논문을 이해하는 능력

 

(원문)

Responsibilities:

·Conduct research, develop innovative ideas, and transform them into real products, in the field of distributed ledger technology.

·Craft a decentralized, secure, resilient, integral, large-scale and innovative solution to a typically centralized problem employing advanced cryptographic techniques.

·Write clean, innovative and high quality code.

·Collaborate with a diverse and distributed set of individuals across different teams.

·Write scientific papers and project reports.

·Perform other duties as required and assigned by manager and upper management.

Qualifications:

·Bachelor’s degree in Computer Science and related engineering fields. Master’s and PhD degrees are preferred.

·Demonstrated hands-on experience with Blockchain technology, ideally with one or more Blockchain application development platform including Hyperledger Fabric/Indy, Ethereum smart contracts, Bitcoin, Corda, NEO. Knowledge in the technology itself, beyond cryptocurrencies.

·Understanding the difference between permissioned and permission-less Blockchain networks, and alternative distributed ledger technologies such as Tangle, Hashgraph, Lighting network, and consensus algorithms including but not limited to PoW, PoS, PoI, PBFT.

·Experience/understanding of cryptography, public key infrastructure (PKI), digital signatures, zero-knowledge proof and mathematics behind Blockchain networks.

·Proficiency of algorithms, data structures, databases, NoSQL systems and all of these in large-scale platforms. And most importantly understanding Blockchain as a distributed ledger and its key differences with traditional systems.

·Proficient knowledge of multiple programming languages such as Java, NodeJS, JavaScript, Python, C++, Go, Solidity.

·Proficiency in Linux/Unix Operating systems.

·Proficiency in English. Ability to understand scientific reports and papers.

 

반응형

댓글