솔리디티 1차 배열의 선언 및 입력하고 받아오기 위해 아래와 같이 간단한 코드를 구현 해 보았습니다.


C++ 이나 JAVA 를 해보셨다면 어렵지 않게 이해 하실 수 있으리라 생각 됩니다.


아래 코드를 Remix 에서 실행 해 보겠습니다.

※ Remix 실행 준비 하기는 아래 링크를 참조 하시면 됩니다.

http://hatpub.tistory.com/54


	
pragma solidity ^0.4.24;
contract setArray {
    
    uint256[] DeptsId; //DeptsId 라는 정수형의 배열 선언
    
    // DeptsId 배열에 값 입력 할 함수 setDept
    function setDept(uint256 _deptid) public returns(uint256) {
        uint256 length = DeptsId.push(_deptid); 
        // push 로 파라미터 값을 넣고 length 변수에 배열의 index 를 받아 와서 return 한다.
        return(length);
    }
    
    // DeptsId 배열의 값을 불러올 함수 getDept
    function getDept(uint256 _number) public view returns(uint256) {
        // 배열의 값을 불러 올때는 index 값으로
        return(DeptsId[_number]);
    }
    
    
}




1. setDept 영역에 1~3 까지 입력을 하였습니다.




2. getDept 영역에 index 값인 0~2 를 입력 해서 call 을 하시면 위에서 입력한 1~3 의 값이 나오는 것을 확인 할 수 있습니다.

웹에서는 for 문이나 while 문을 돌려서 사용하시면 모든 값 혹은 특정 값을 불러 올 수 있습니다.


지난 포스팅에 구조체(struct) 배열(array) 를 하였는데, 기초적인 일반 배열을 지나친 것 같아 기초적인 내용을 포스팅 하였습니다.

솔리디티로 이더리움을 개발 하는 날까지 열심히 공부 해 봅시다!

solidity, ethereum

솔리디티(solidity) 로 이더리움 개발하기.


솔리디티에는 C언어와 같이 구조체(struct) 를 만들어 사용 할 수 있습니다. 



	
pragma solidity ^0.4.24;
contract test {

    // Struct 생성
    struct Employee{
        uint256 EmpId;  // 사원번호
        string EmpName; // 사원명
        string DeptName; // 부서명
    }

    // 생성한 Employee Struct 를 배열로 사용하기 위해 Employees 라는 배열 선언.
    Employee[] Employees;

    // 생성된 구조체 배열에 값 담기.
    function setEmp(uint256 _EmpId, string _EmpName, string _DeptName) public {
        // 솔리디티 배열은 push 를 이용하여 배열에 값을 입력 한다.
        Employees.push(Employee(_EmpId, _EmpName, _DeptName));
    }

    
    // 구조체 배열의 값 불러오기.
    // 배열의 특정 값과 for 문을 이용하여 배열의 전체 값을 불러 오기 위해 _number 라는 파라미터를 입력 받는다.
    function getEmp(uint _number) public view returns(uint256 getEmpId, string getEmpName, string getDeptName){
        getEmpId = Employees[_number].EmpId;
        getEmpName = Employees[_number].EmpName;
        getDeptName = Employees[_number].DeptName;
    }

}



작성한 코드를 Remix 에서 적용 해 보겠습니다.

Remix 세팅 방법은 이 전 글을 참고 하시면 됩니다.

http://hatpub.tistory.com/54?category=1009960


1. setEmp 함수에 파라미터를 주어 값 세팅.




2. getEmp 함수에 _number 파라미터 값을 주어 배열에 저장된 값 불러오기.




이더리움(Ethereum)을 개발 하기 위해선 솔리디티 언어를 사용해야 하는데요.


솔리디티(solidity) 를 지원하는 개발 툴은 많지 않습니다.


그중에 가장 쓰기 편한 툴이라고 생각하는 비주얼 스튜디오를 알려 드리겠습니다.


우선 비주얼 스튜디오 코드를 다운 받으셔야 합니다.


비주얼 스튜디오 코드(Visual Studio Code) 는 오픈소스로 무료 이므로 편하게 사용하셔도 됩니다.



※ 다운로드 링크

https://code.visualstudio.com/?wt.mc_id=vscom_downloads



다운로드 후 설치가 완료 되면 언어팩과 Git 을 설치하라고 팝업이 뜨는데 언어팩은 설치 하시면 한글로 볼 수 있어 좋습니다.







비주얼 스튜디오 는 아래 이미지 처럼 기본적으로 솔리디티를 확장자로 포함하고 있지 않습니다.







그래서 확장 프로그램을 하나 더 설치 하셔야 합니다.

좌측 하단의 설정 모양을 클릭 하시고 확장관리 를 클릭 합니다.







검색창에 solidity 를 검색 하고, Juan Blanco 님께서 배포하신 solidity 를 설치 해 줍니다.

※ 설치 후 다시 로드 꼭 해주세요







설치 하여 다시로드 해 주시면 저장 시에 아까는 없었던 solidity(*.sol) 이라는 확장자가 생겨나게 됩니다.







그리고 마지막으로 간단하게 작성 하고 sol 파일로 저장 하시면 아래 이미지와 같이 컬러가 들어가 코딩하기 쉽게 변합니다!

이제 개발만 하면 되겠죠?



Remix 링크 주소


- Javascript VM 을 이용하여 개발 시

https://remix.ethereum.org/


- VMWare 를 사용하여 Web3 Provider로 개발 테스트 하시는 분들은 보안서버 없이 접속 하셔야 합니다.

http://remix.ethereum.org/



이 블로그 내에서 VM Ware 를 이용하여 테스트 서버를 구축에 대한 언급이 없으므로 Javascript VM 으로 개발 연습 하는 방법을 알려드리겠습니다.



# Remix 첫 화면 설정

JavaScript VM 선택 시 100ETH 보유한 계정이 5개 생성 됩니다.

 





# 파일 생성

좌측 상단의 '+' 버튼을 클릭하여 새 파일을 만들어 줍니다.






# 컴파일 버전 세팅 (개발환경에 맞게 버전 설정 해주시면 됩니다.)

'Setting' 메뉴의 Select New compiler version 을 클릭하여 개발에 맞는 버전을 선택 합니다.

저는 최신 버전인 0.4.24 버전을 선택 하였습니다.






# 코드 작성 및 컴파일

	
pragma solidity ^0.4.24;
contract test {
    
    uint8 public EmpId; //사원번호
    string public EmpName; //사원명
    
    // Set function
    function SetTest(uint8 _EmpId, string _EmpName) public {
        EmpId = _EmpId; // 사원번호 값 입력
        EmpName = _EmpName; // 사원명 값 입력
    }

    
    /// Get function
    function GetTest() public view returns(uint8, string){
        return(EmpId, EmpName);
    }

}

Solidity 언어를 작성 하고 'Compile' 메뉴에 오류 및 경고를 모두 제거 합니다.

(DApp 개발 시 중요한 부분이기 때문에 노란 경고창 까지 모두 수정 해 줍니다)






# 코드 실행

'Run' 메뉴로 들어가 Contract 명 확인 후 'Deploy' 를 클릭 하여 컨트랙트를 생성 합니다.


 




# SetTest 함수를 이용 하여 EmpId, EmpName 값 세팅

작성된 코드를 테스트 할 수 있는 기능이 생성 되었습니다.

'SetTest' 함수를 이용하여 변수에 값을 입력 해 봅니다.






# 변수, GetTest 함수를 클릭 해 보면서 값 SetTest 함수에서 입력한 값 잘 들어갔는지 확인.

값을 확인 합니다.





위와 같은 방법으로 Remix 를 이용하여 Solidity 를 개발 해 보았습니다.

간단한 Set, Get 함수를 사용하여 변수에 값을 넣고 불러오는 작업을 하였는데요.

Solidity 언어의 기능 하나하나 앞으로 살펴 보도록 하겠습니다.





이더리움 DApp 을 개발 하기 위해선 솔리디티(Solidity) 를 필수로 공부 해야 합니다.


2018년 8월 파이썬으로 지원 할 거라는 말이 있지만 아직 확실하지 않으니 DApp 개발을 하실 분들은 솔리디티를 공부 하셔야 합니다.


전부 무료 사이트 이며, 기초과정을 마치면 회원가입을 하셔서 중급단계로 넘어 가시면 됩니다.


링크 ↓↓↓↓↓↓


https://cryptozombies.io/ko/




한글을 지원하고 있어 영어에 부담이 있으신 분들도 쉽게 솔리디티에 접근 하실 수 있습니다.


그럼 모두 열공하세요!

+ Recent posts