본문 바로가기
AI & Data/Blockchain

[Blockchain] 블록체인 모델에서 사용하는 프로그래밍 언어: 파이썬 (Python)

by Henry Cho 2023. 5. 7.
728x90

블록체인 모델에서 사용하는 프로그래밍 언어: 파이썬

포스트 난이도: HOO_Senior


# 블록체인 모델 프로그래밍 언어

블록체인이 알려지게 된 계기는 암호화 화폐였지만 이제는 다양한 가상 상품 거래에 있어서 블록체인을 활용하고 있다. 글쓴이도 연구하는 데 있어서 블록체인 기술을 활용하고 있음에도 여러 분야에서 활용하고 있는 사례나 구조 체계를 살펴보다 보면 놀라울 따름이다. 그렇기에 블록체인 개발 언어가 초창기에 C 기반이었던 거와 달리 이제는 다양한 프로그래밍 언어로 블록체인 모델을 목적에 맞게 개발할 수 있게 되었다. 특히 블록체인 전용 언어까지 나올 정도이니 블록체인 모델 개발과 대중적으로 많이 사용되고 있는 걸 알 수 있었다. 이번 포스트에서는 블록체인 모델을 개발하는 데 있어서 대표적으로 사용되는 언어들에 대해서 이야기를 나누어보려고 한다.


# Python의 장점

글쓴이가 가장 선호하는 언어 중에 하나인 Python (파이썬)은 블록체인 모델을 만드는데 현실적으로 좋은 언어 중에 하나이다. 글쓴이가 파이썬을 좋아하는 이유도 현실적인 이유가 가장 크다. 솔직히 모든 언어 체계들이 비슷하다고는 하지만 개발이나 연구를 위해서 익숙하지 않거나 새로운 언어를 사용하는건 어려운 일이다. 따라서 글쓴이와 같이 데이터 분석이나 인공지능 분야에 있는 개발자라면 파이썬을 주요 언어로 많이 사용하다 보니 블록체인 모델 개발에 있어서도 파이썬으로 가능하다면 보다 더 편리하게 모델 개발이 가능하다. 또한 다양한 프로세스와 알고리즘들이 얽히고 섞여있는 모델들의 경우는 무엇보다 중요한 부분이 Maintanence (유지보수)가 쉬워야 한다는 것이다. 파이썬의 경우에는 Objet oriented programming language (OOP)이면서 code line마다 excute 되는 특징을 가지고 있기 때문에 errors에 대한 대응이 수월하다.

또한 파이썬의 가장 큰 특징 중에 하나가 호환성인데, 호환성이 좋다는 부분도 블록체인 모델 개발에 있어서도 도움이 된다. 우선은 라이브러리가 많기 때문에 다양한 라이브러리를 활용할 수 있다는 호환적 특징도 있고 언어적으로도 호환성이 좋은 특징을 가지고 있다. 먼저 파이썬 기반 모델 자체가 다양한 라이브러리를 사용할 수 있기에 효율적이고 편리하게 모델 개발이 가능하다. 다음으로 언어적 호환성이 좋다는 부분은 Java나 JavaScript와 같은 언어들과 호환적으로 개발이 가능하기 때문에 블록체인 모델 개발에 있어서도 가장 큰 장점에 해당한다. 예를 들어서 블록체인 모델 개발에 있어서 대표적인 언어들 중에 Java와 JavaScript가 있는데 이러한 다른 언어들이라고 할지언정 블록체인 모델 개발에 있어서 호환이 되어서 활용이 가능하거나 파이썬으로 변환하여 모델 개발이 참고할 수 있다는 것은 정말 큰 이점이다. 솔직히 다른 개발 분야에 비해서 User cases가 많지 않은 블록체인의 경우에는 다른 언어의 cases라고 할지라도 정말 큰 도움이 되는데 거기다가 호환이 된다면 무엇보다 Thank you very much인 셈이다.

마지막으로 글쓴이가 직접 느낀 블록체인 모델 개발에 있어서 파이썬의 장점은 플랫폼 특성을 가진 언어라는 점이다. 예를 들어서 블록체인 모델 개발에서 대표적으로 사용되는 Java보다도 플랫폼 특성을 가지고 있어서 해당 특성들을 활용한다면 블록체인 모델 개발이 훨씬 용이해진다. 블록체인 모델 자체가 구조적으로 살펴보면 사실상 거래에 있어서 플랫폼 역할을 수행한다. 정보를 전달하는 supply chain이나 virtual trading market 모두 크게 보면 플랫폼 기반 모델이다. 따라서 플랫폼 개발 특성을 가지고 있는 파이썬은 블록체인 모델 개발에 있어서 훨씬 더 매력적인 언어이다.


# Python의 단점

하지만 단점도 존재한다. 파이썬 기반으로 블록체인 모델을 개발할 경우 런타임 에러나 처리 속도의 차이 등이 있겠지만 글쓴이가 가장 크게 느꼈던 점은 메모리 소비가 상대적으로 많다는 것이다. 블록체인이 기존에 C 기반으로 개발이 된 이유도 사실상 메모리 처리 속도와 메모리 소비를 효율적으로 줄이기 위해서였다. 그렇기에 파이썬으로 블록체인 모델이 개발이 된다면 상대적으로 많은 양의 메모리 소비가 되기 때문에 이 점을 충분히 고려해야 한다. 한마디로 편리하지만 메모리 사용량이 많은 파이썬 기반 모델을 사용해도 되는지에 대한 조건에 대한 상황적 판단이 필요하다는 것이다.


# Public보다는 Permission이나 Private 모델에 적합하다.

 

글쓴이의 견해일 뿐이지만 Python (파이썬)을 사용한다는게 무조건적으로 나쁜 건만은 아니다. 글쓴이만 보더라도 파이썬이 친숙한 언어이고 개발하는 데 있어서 편리한 건 사실이다. 통계 분석할 때도 R이 코드 자체는 효율적이고 편리하지만 익숙함에서 오는 편리함은 아직까지도 파이썬일 정도로 파이썬이 편하다. 글쓴이와 같은 입장이고 Public model로 만들 것이 아니라면 파이썬 기반으로 모델 개발을 해보는 것도 괜찮은 선택일 수 있다는 것이다. 데이터 메모리가 상대적으로 많이 차지할 수 있다는 단점을 알고 있음에도 Public과 같이 노드가 많고 메모리가 기본적으로 많이 필요한 모델이 아니라면 파이썬 기반으로 개발해 보는 것도 괜찮다.

두 번째로는 Testing model을 만들 때 활용하는 것도 나쁘지 않다. 글쓴이의 경우에도 prototype이나 test를 하기 위한 모델을 만들 때는 파이썬 기반으로 Frame을 짜는 편이다. 물론 이후에 다른 언어로 바꿔서 개발이 이루어져야 하지만 기본적으로 틀이 완성되면 다른 언어로 바꾸어서 완성하는 것은 처음부터 파이썬이 아닌 다른 언어로 개발하는 것보다 훨씬 수월하다. 따라서 초기 버전에 있어서는 파이썬을 활용하되, 이후에 상황에 따라서 다른 언어 기반으로 개발이 이루어져야 한다면 해당 언어로 바꾸면 그만인 것이다.

마지막으로 다른 개발자와 공유하기가 쉽다는 것이다. 글쓴이는 리드 개발자이기 때문에 추후에 해당 모델 개발에 대해서 다른 개발자들과 협업하기 위해서 개발한 코드를 공유하고 다른 개발자들에게 오더를 내려야 하는 상황이 생긴다. 이러한 경우에는 사실상 파이썬 기반으로 개발된 모델을 공유하는 것이 개발자들에게 알려주기도 쉽고 개발자를 찾기도 쉽다. Solidity와 같이 파이썬 보다 전문적인 언어인 경우에는 해당 언어를 사용하여 개발업무를 하는 개발자를 찾아야 하는데 막상 쉽지 않다는 것이다. 마음 같아서는 블록체인 모델 개발에 단점이 없는 언어를 활용하고 싶지만 현실적인 부분을 고려할 수밖에 없기 때문에 파이썬이 종합적으로 생각해 보면 막상 블록체인 모델 개발에 있어서 나쁘지만은 않다는 것이다.


 

728x90

댓글