초보자를 위한 ICON DApp 만들기 2

SCORE 개발 환경

harry kim
ICON DAPP ALLIANCE
7 min readJun 1, 2020

--

이 글은 스마트 컨트랙트 샘플 코드 및 현재 서비스 되고 있는 여러 DApp들을 분석해 초보자들도 자신들의 아이디어에 ICON을 쉽게 도입할 수 있도록 돕기 위해 작성되었습니다.

SCORE 코드 분석에 앞서 개발 환경에 대해 알아보겠습니다.

준비 사항

이 글은 ICON DEV 문서를 참고하여 만들어 졌고 Ubuntu 환경에서 테스트되어 졌습니다.

Python 3.6+

SCORE는 파이썬으로 개발, 실행됩니다. 3.6 이상의 버전이 필요합니다.

Virtualenv

파이썬은 기본적으로 외부 패키지와 모듈을 전역 공간에 관리하기 때문에 여러 버전의 파이썬 프로젝트를 관리할 경우 충돌이 발생할 수 있습니다. 따라서 프로젝트 별로 패키지와 모듈을 관리할 수 있는 가상환경이 필요한데 여기서는 Virtualenv를 사용하겠습니다.

Visual Studio Code

IDE는 VS Code를 사용합니다. ICON DEV에서는 Pycharm IDE로 진행하지만, ICON에서 VS Code SCORE 개발도 지원하므로 아래 ICON SCORE Support 확장 패키지 및 Python 개발 패키지를 설치하여 VS Code에서 SCORE 개발을 진행하겠습니다.

Chrome Extension

ICONex 크롬 확장 모듈을 설치하여 ICON Wallet을 관리 할 수 있습니다.

개발 환경

기본 프로젝트를 생성하면서 개발 환경을 알아 보겠습니다. 새로운 SCORE를 개발 할 때 마다 아래 과정을 통해 프로젝트 및 개발 환경을 생성 할 수 있습니다.

virtualenv로 가상환경을 생성하면, 이후 pip로 설치된 파이썬 모듈들은 activate된 가상환경으로 설치됩니다. tbears는 SCORE 프로젝트 생성부터 테스트, 배포까지 도와주는 필수 개발 툴입니다. iconservice는 파이썬용 SCORE 개발 라이브러리입니다.

SCORE 프로젝트를 생성 후, VS Code에 폴더를 추가하면 좌측 하단에 디폴트 파이썬 실행 환경으로 생성됩니다.

해당 부분을 클릭하여 아래와 같이 먼저 workspace를 선택합니다. 저는 test로 SCORE 프로젝트를 생성했으므로 test를 폴더를 선택했습니다. 다음으로 파이썬 개발 환경을 선택하는데 /usr/bin 디폴트 개발 환경이 아닌 virtualenv로 생성한 현재 프로젝트 폴더 아래 /bin/python3.6을 선택하면 생성된 가상 환경으로 전환됩니다.

Wallet 생성: tbears를 통해 로컬 테스트용 wallet 생성. 저는 모든 wallet을 한 곳에 모아 관리하기 위해 home 디렉토리 아래에 wallet을 생성했습니다.

VSCode의 ICON SUPPORT 플러그인을 통해 작성한 SCORE를 테스트 하기 위해 settings.json에 생성한 wallet을 지정합니다.

아직 로컬 테스트 환경을 구동하지 않아 NETWORK ERROR로 표시됩니다. tbears로 가상의 로컬 ICON Network 구동합니다.

지금까지 구성한 개발 환경을 통해 로컬에서 SCORE를 개발, 테스트 할 수 있습니다.

SCORE 프로젝트 구조

__init__.py : 해당 디렉토리가 파이썬 패키지라는 것을 의미합니다.

package.json: 프로젝트 정보와 의존성(dependencies)을 관리하는 문서로 main_module, main_score, version 등의 정보를 관리합니다.

tests: SCORE를 테스트하기 위한 tests 코드들이 있는 디렉토리로, 실제 SCORE를 배포 할 때, tests 폴더는 포함되지 않습니다.

test_project.py: SCORE를 작성하는 파일입니다. tbears를 통해 생성하면 아래와 같이 기본적인 class 구조가 생성됩니다.

다음 시간에 SCORE 파일 구조에 대해 알아보겠습니다.

참고

--

--