프로그래밍의 코드 에디터를 여는 시점에서 시작된다고 할 수 있다. 그리고 개발자라면 하나 이상의 코드 에디터를 사용한 경험이 있을거라 생각한다. JavaScript를 주로 사용하는 사람이라면 비쥬얼 스튜디오(VS Code)일 것이며, Java 개발자는 이클립스(Eclipse) 혹은 인텔리제이(InteliJ), Swift 개발자는 XCode와 같은 에디터를 사용할 것이다. 이처럼 각 프로그래밍 언어에는 그 언어에 적합한 코드 에디터가 있고, 개발 언어에 따라 최적의 프로그래밍 유틸리티 기능을 제공받을 수 있다.
이번 포스트에서는 이더리움 프로그래밍에서 가장 대표적인 리믹스(Remix) 코드 에티터를 소개하고자 한다. 풀 네임은 Remix IDE로 IDE란 통합 개발 환경(Integrated Development Environment)의 약어다.
리믹스는 어떤 프로그래밍 유틸을 제공할까? 다른 코드 에디터와 차별화된 기능이라고 하면, 솔리디티(Solidity) 코드 컴파일에 최적화 되어 있다는 점과 JavaScript 가상 머신에서 이더리움 스마트 컨트렉트를 배포하고 테스트해볼 수 있다는 점이다. 솔리디티에 최적화되어 있다는 말은 다시 말해 이더리움 스마트 컨트렉트 구현을 위환 이더리움 가상 머신(EVM) 바이트코드 컴파일에 최적화되어 있다는 뜻이다. 또한, 리믹스는 실제 메타마스크(MetaMask)와 같은 EOA 지갑과 이더리움 네트워크를 연동시켜 개발자가 이더리움 블록체인 위에 직접 스마트 컨트렉트를 배포하게 돕는 기능을 제공한다.
리믹스에는 두 가지 실행환경이 있다. 첫 번째는 데스크탑 환경에서의 실행이다. 여타 코드 에디터처럼 IDE를 데스크탑에 설치한 뒤 사용하는 방법이다. 개발자는 작업 환경(Work Space)를 로컬 디렉토리로 설정할 수 있으며, 데스크탑 파일 시스템에서 필요한 파일 정보를 에디터와 연동시킬 수 있다. 작성한 코드는 로컬 스토리지( = 하드 디스크)에 저장된다. 두 번째는 브라우저 환경에서의 실행이다. 크롬이나 사파리 같은 인터넷 브라우져에 직접 에디터를 띄우는 방법이다. 아래 링크를 통해 코드 에디터를 열 수 있으며, 별도의 설치 과정이 생략된다. 브라우져와 연동되어 있기 때문에 작성한 코드는 브라우저 스토리지에 저장되고, 개인 PC에서의 저장은 불가능하다. 용량이 제한적이기 때문에 소스 코드 저장에 어려움이 있다면 추가 작업이 필요하다. DGIT 플러그인으로 GitHub에 소스 코드를 백업하거나, 3BOX SPACE 같은 스토리지 관련 플러그인을 설치하는 방법이 대안이 될 수 있다.
브라우저 Remix IDE 링크 [ https://remix.ethereum.org ]
앞서 언급했듯 리믹스에서는 이더리움 지갑(EOA)와 직접적인 연동이 가능하다. 이 말은 즉 메인넷이든 테스트넷이듯 실제로 운영중인 이더리움 네트워크에 내가 작성한 스마트 컨트렉트를 배포할 수 있다는 말이다. 이는 곧 우리가 브라우저 환경에서 리믹스를 사용해야하는 이유와 연결된다.
메타마스크(MetaMask) 지갑을 예시로 들어보겠다. 크롬 익스텐션 중에 메타마스크를 브라우져에 직접 연동할 수 있는 툴이 있다. 해당 익스텐션을 크롬 브라우저에 설치하면 사용자는 리믹스 에디터와 메타마스크를 연결한 뒤, 메타마스크와 연결된 이더리움 네트워크에 접근할 수 있다. 메인넷, 테스트넷, 로컬 노드 등 메타마스크 설정에 포함된 블록체인 네트워크에 사용자가 작성한 트렌젝션을 발생시키고 스마트 컨트렉트를 배포할 수 있다. 데스크탑 환경에서 불가능한 일은 아니지만 추가적인 작업을 해야한다는 점을 고려해 보았을 때, 브라우저 환경에서의 리믹스 사용은 보다 효율적이다.
아래 이미지는 메타마스크와 연동된 브라우저 환경 리믹스이니 참고가 되었으면 좋겠다.
여기까지 리믹스 에디터에 대한 내용을 간단히 알아보았다. 이더리움 블록체인에 관심이 있고, 스마트 컨트렉트 구현이 필요한 개발자라면 리믹스 사용은 필수라고 할 수 있다. 이후 포스팅에서는 솔리디티 언어에 대한 기초적인 문법부터 예제 소스들의 분석까지 세세하게 소개하겠다. 관련 내용에 대해 더 궁금한 부분이 있다면 아래 공식 사이트를 참조하면 된다.
Remix Official Web [ https://remix-ide.readthedocs.io/ ]
'Programing > Solidity' 카테고리의 다른 글
[Solidity] fallback 함수 (0) | 2022.03.12 |
---|---|
[Solidity] 솔리디티 코드 연습 - 크립토 좀비 (1) | 2022.03.11 |
[Solidity] 함수 제어자 view & pure (0) | 2022.03.11 |
[Solidity] string memory와 bytes (0) | 2022.03.10 |
[Solidity] Scope와 Visibility (Public, Private, External, Internal) (0) | 2022.03.10 |
댓글