블록체인 모델에서 사용하는 프로그래밍 언어: 솔리디티 (Solidity)
포스트 난이도: HOO_Senior
# 솔리디티 (Solidity)
블록체인 (Blockchain) 모델 중에서도 스마트 컨트랙트 (Smart contract)을 개발하려고 한다면 대표적으로 많이 사용되는 프로그래밍 언어가 바로 솔리디티 (Solidity)이다. 솔리디티는 이더리움에서 스마트 컨트랙트 블록체인 모델을 개발하기 위해서 만든 프로그래밍 언어이다. 그렇다 보니 기본적으로 이더리움 (Ethereum) 환경에서 개발이 이루어지고 공개형 블록체인 (Public blockchain) 모델 개발에 사용되는 편이다. 솔리디티가 많이 사용될 수 있는 또 다른 이유는 기존의 블록체인 개발 언어로 사용되어 왔던 다른 언어와 비슷한 구조를 가지고 있기 때문이다. 솔리디티는 자바스크립트 (JavaScript)나 C++과 유사한 구조를 가지고 있기 때문에 해당 언어로 개발을 해오던 개발자들은 솔리디티를 쉽게 바로 사용이 가능하다.
# 스마트 컨트랙트 (Smart Contract)에 특화된 언어
스마트 컨트랙트 (Smart contract) 개발에 있어서 솔리디티를 사용하다는 것이 편리하다는 의미에서 이미 우리는 솔리디티가 high-level programming language라는 걸 알 수 있다. 또한 블록체인 모델 (Blockchain model) 개발이라는 목적에 초점을 두고 있는 언어이다 보니 이더리움 기반 블록체인 모델 중에서도 스마트 컨트랙트를 만드는데 효율성과 보완성 모두 좋다고 볼 수 있다. 마치 한식 요리를 하는데 필요한 재료들을 모두 다 준비해 주고 요리를 할 수 주방 환경마저도 준비가 완벽하다 보니 원하는 한식 요리를 손쉽게 할 수 있는 거와 비슷하다. Smart contract를 구성하는 큰 특징들에는 verifiying, enforcing, executing이 있으며, 해당 기능들을을 두 계약자 간에 처리가 된다. 이러한 기능들을 만들어내는 과정에서 Solidity는 다양한 functions들과 libraries을 제공하고 있기에 많은 개발자들이 Smart contract 개발에 Solidity를 활용하고 있는 것이다.
# 이더리움 기반 공개형 블록체인 모델 개발에 좋은 언어
글쓴이가 블록체인 모델을 개발하면서 개인적으로 느꼈던 점은 솔리디티 언어는 공개형 블록체인 모델, 즉 Public blockchain model 개발에 적합한 프로그래밍 언어였다. 물론 솔리디티를 가지고 허가형 (permission)이나 폐쇄형 (private)을 만드는데 안 좋다는 것이 아니라, 공개형 (public)에 보다 더 특화되어 있다는 것이다. 다른 프로그래밍 언어들도 permission이나 private을 만드는 것이 어렵지 않으며, 특히 파이썬이 익숙한 글쓴이와 같은 데이터 분야의 개발자에게는 다소 불편하더라도 파이썬 (Python)이 더 개발에 편리할 수 있다. 또한 솔리디티가 자바스크립트 (JavaScript)나 C++과 비슷한 구조를 가지고 있다고 하지만 막상 솔리디티 개발자를 찾기는 상대적으로 다른 언어들에 비해서 쉽지 않다. 다른 대중적인 언어보다도 전문적인 언어에 해당되다 보니 블록체인 모델의 유지관리를 위해서는 솔리디티 언어 개발자를 찾아야 하는데 사실 어렵기 때문이다. 이러한 현실적인 경우를 고려해보았을 때 public 모델을 만든다면 솔리디티를 사용하는 게 큰 장점이겠지만 다른 경우는 다른 언어를 사용하는 것도 나쁘지 않다고 본다.
'AI & Data > Blockchain' 카테고리의 다른 글
[Blockchain] 인터넷과 블록체인 네트워크의 차이점 (0) | 2023.07.20 |
---|---|
[Blockchain] crypto 패키지 (crypto package) (0) | 2023.06.09 |
[Blockchain] 블록체인 모델에서 사용하는 프로그래밍 언어: 파이썬 (Python) (0) | 2023.05.07 |
[Blockchain] Digital Commodity (디지털 상품) (0) | 2023.01.15 |
[Blockchain] 파이썬 기반 블록체인 라이브러리: datetime, hashlib, JSON (0) | 2022.12.29 |
댓글