
Solana에서 Solidity 사용 — Solang이란?
개요
Solana용 Solidity 컴파일러인 Solang이 이번 주에 발표되었습니다. 이제 Ethereum Solidity 개발자는 Solana로 이전할 때 필요한 학습 부담과 시간을 줄일 수 있습니다. 이전에는 Rust, C 또는 Python을 사용해야 했습니다.
Solana용 Solidity 컴파일러인 Solang을 출시한 주된 목적은 프로그램을 만들기 위해 Rust나 다른 언어를 새로 배워야 한다는 부담 때문에 Solana 개발을 망설였던 숙련된 개발자를 유치하는 것입니다.
이 글에서는 다음 내용을 살펴봅니다:
- 컴파일러란 무엇인가요?
- 이점
- Solana 프로그램에 미치는 영향
- 시작하기
컴파일러란 무엇인가요?
컴파일러는 고수준 소스 코드를 대상 플랫폼에서 실행할 수 있는 저수준 표현으로 변환하는 도구입니다. Solidity에서는 Solidity 코드를 Solana 블록체인과 호환되는 형식으로 변환하기 위해 Solang 컴파일러가 필요합니다. 여러 단계를 거쳐 코드를 Solana에서 실행할 수 있는 최적화된 기계어나 바이트코드로 변환합니다. 따라서 Solidity 개발자는 Solana에서 스마트 컨트랙트를 쉽고 효율적으로 작성하고 배포할 수 있습니다.
Solana에서 프로그램을 만들 때 일반적으로 사용하는 프로그래밍 언어는 Rust입니다. 다음은 Rust와 Solidity가 컴파일되어 Solana 블록체인용 프로그램 명령어를 생성하는 과정을 자세히 보여주는 도표입니다.
이점
앞서 설명했듯이 Solana용 Solidity 컴파일러로 Solang을 출시한 주된 목적은 플랫폼에서 프로그램을 만드는 데 필요한 Rust나 다른 언어의 학습 부담 때문에 Solana 개발을 망설였던 숙련된 개발자를 유치하는 것입니다. 이제 Solidity 개발자는 기존 기술과 지식을 Solana에 적용해 탈중앙화 애플리케이션을 손쉽게 구축할 수 있습니다.
Solana 프로그램에 미치는 영향
Solana용 Solidity 컴파일러로 도입된 Solang은 개발 프로세스를 개선하고, 숙련된 Solidity 개발자가 Solana 블록체인이 제공하는 기회를 탐색하도록 지원합니다.
Solang이 Solana 프로그램에 큰 변화를 가져오지는 않습니다. 컴파일 과정에서는 고수준 Solidity 소스 코드를 Solana 블록체인에서 실행할 수 있는 저수준 표현으로 변환합니다. 따라서 서로 다른 언어로 프로그램을 작성하는 개발자 간의 상호 운용성이 확보되며, Solana에서 프로그램끼리 통신할 수 있습니다.
개괄적으로 Solang은 다음을 지원합니다:
- Solana 라이브러리(SPL-Token 및 시스템 명령어)
- 내장 import
Solana 라이브러리
Solana 라이브러리는 Solang Github 저장소에서 2개의 라이브러리로 구분됩니다.
- SPL-Token
- 시스템 명령어
1. SPL-Token
SPL 지원을 통해 Solang Spl-Token 라이브러리로 SPL 토큰을 생성, 민팅, 소각 및 전송할 수 있습니다. Solang 프로그램에서 SPL 토큰을 관리하는 데 필요한 도구 모음을 제공합니다.
Solidity 코드에서 사용하려면 먼저 spl_token.sol 파일을 소스 트리에 복사하세요.
2. 시스템 명령어
시스템 명령어를 사용하면 계정 생성, 전송, 계정 데이터 할당, 트랜잭션 수수료 지불과 같은 일반 기능을 활용할 수 있습니다.
SPL 라이브러리에 사용한 것과 같은 방법으로 system_instruction.sol 파일을 소스 트리에 복사하면 Solidity 코드에서 사용할 수 있습니다.
내장 import
Solana 플랫폼 전용 내장 import를 사용할 수 있습니다.
이를 통해 다음과 같은 Solana 프로그램 기능을 활용할 수 있습니다.
- AccountInfo
- AccountMeta
- 프로그램 파생 주소(PDAs)
1. AccountInfo
AccountInfo는 트랜잭션에 전달된 모든 계정의 정보를 수집합니다. 자세한 내용은 여기에서 확인할 수 있습니다.
2. AccountMeta
크로스 프로그램 호출(CPI)을 실행할 때 Account Meta를 사용해 전달할 계정을 지정할 수 있습니다.
3. PDAs
PDAs를 사용하면 프로그램 간 호출 시 서명을 프로그래밍 방식으로 생성하고 사용할 수 있습니다.
Solang을 사용하면 생성된 컨트랙트에서 프로그램 주소가 만든 PDAs를 생성하고 조회할 수 있어 애플리케이션 보안을 강화할 수 있습니다.
Solang에서 사용할 수 있는 추가 내장 기능은 여기에서 확인할 수 있습니다.
시작하기
Solana 문서의 이 가이드에서 Solang 학습을 시작할 수 있습니다. Solang 컴파일러를 사용해 첫 Solidity/Solana 프로그램을 만드는 Anchor 프로그램 빌드 과정을 안내합니다.
이 가이드는 초기 학습 부담을 줄이고 Ethereum 스마트 컨트랙트와 Solana 프로그램의 차이, 특히 상태 데이터를 처리하는 방식의 차이를 이해하는 데 도움이 됩니다. 이는 Ethereum에서 Solana 개발로 전환할 때 가장 큰 장벽입니다.
결론
Solang은 Solana로 전환하려는 Ethereum Solidity 개발자에게 중요한 진전입니다. Solana용 Solidity 컴파일러 역할을 하는 Solang은 플랫폼 개발의 학습 부담을 줄여 숙련된 Solidity 개발자가 기존 기술과 지식을 활용할 수 있도록 합니다. 이 컴파일러는 기존의 기술 격차를 해소하며, Solana 프로그램을 만들기 위해 Rust나 다른 언어를 배워야 한다는 부담 때문에 망설였을 개발자를 끌어들입니다.
관련 아티클
Helius 구독하기
최신 Solana 개발 소식을 확인하고 새 게시물 알림을 받아보세요


