이더리움(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/




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


그럼 모두 열공하세요!



노바택 액션캠 PC 캠으로 사용법!


먼저 제가 구매한 노바택 액션캠 입니다. 일명 짭프로 라고 많이 부르고 있는 상품 입니다!

기본 구성으로 방수팩도 포함되어 있어 해외여행이나 물놀이 촬영 시 아주 좋습니다!




액션캠이라 액티비티 하면서 촬영하기 좋은데요. 액티비티 이외에 PC캠으로도 이용 할 수 있는 기능이 탑재 되어있습니다.

오늘은 PC캠 사용법에 대해서 알려드리겠습니다.




우선 PC와 캠을 연결 합니다.(기존 안드로이드폰 충전 케이블로 연결 가능합니다.)





케이블 연결 시

1. USB 모드

2. PC Camera

3. 충전 모드

이렇게 3가지 기능이 있습니다.


이 중 2번 PC Camera 모드를 선택 해 줍니다.





연결을 시 자동으로 Android 라는 웹캠으로 설치 됩니다. (윈도우10 기준)





그리고 카메라 어플리케이션을 실행 합니다. (기본 어플, 무설치)





카메라 어플을 실행 하면 노트북일 경우 기본 노트북 내장 카메라로 실행이 됩니다.

이때 아래 이미지의 빨간색 동그라미 카메라 변경 버튼을 클릭 해 줍니다.





그럼 아래 이미지와 같이 액션캠으로 PC캠을 사용 할 수 있게 설정이 끝났습니다.





그럼 여기 까지 입니다.

액션캠을 이용하여 재미있는 순간을 많이 촬영 해 보세요!!



오늘은 이전 시간까지 했던 텔레그램 봇을 종합하여 PHP 연동을 해보겠습니다.

가장 간단한 방법으로 코인 지정가 알람을 만들어 보겠습니다. 다른 것들과 적용 하여 여러분 만의 텔레그램 봇을 완성 시키길 바랍니다.


오늘 개발을 이어 나가시려면 아래 4가지 모두 수행 되어야 합니다.


1. 텔레그램 봇 생성하기.

http://hatpub.tistory.com/48?category=851684


2. 생성한 텔레그램 봇 채널 관리자로 추가 하기.

http://hatpub.tistory.com/49?category=851684


3. 봇이 관리자인 채널에 메시지 보내기.

http://hatpub.tistory.com/50?category=851684


※ Snoopy 를 이용하여 코인 거래소 API 불러 오기

http://hatpub.tistory.com/39




아래와 같이 간단하게 만들어 보았습니다.


HTML 까지 포함된 PHP 파일을 첨부 하였으니 필요 하신 분은 다운 받아서 활용하시기 바랍니다.

여러분 개개인에게 도움이 될만한 코딩 하시길 바랍니다.


PHP 파일 다운 받기

datepicker.php



	
<?
// Snoopy.class.php 사용하게끔 포함 하기.
include_once './insert/Snoopy.class.php';
$snoopy = new snoopy;
// 비트렉스의 값으로 불러오기.
$snoopy----->fetch("https://bittrex.com/api/v1.1/public/getmarketsummaries");
$t	 = $snoopy->results;

// Snoopy 링크 참고
preg_match_all("|MarketName\":\"(.*)\",\"High\"|U", $t, $name, PREG_SET_ORDER);
preg_match_all("|Last\":(.*),\"BaseVolume\"|U", $t, $price, PREG_SET_ORDER);

// 텔레그램 봇 API 값
$api_code = '511337000:AAG7gRmT3Ra8FYl22gekgckK_iwVwkJAAAA';

$int = 0;
WHILE($int < count($name)){
	//XLM 의 값이 0.00003487 미만 이면 알람 받기.
	if($name[$int][1] == 'BTC-XLM' && $price[$int][1] < 0.00003487){
		//받을 메시지 입력
		$telegram_text = $name[$int][1]." 현재 ".$price[$int][1]." 사토시" ;
		//챗 아이디와 메시지 배열에 입력
		$query_array = array(
			'chat_id' => '-1001305033363',
			'text' => $telegram_text,
		);
		// 메시지 보낼 URL
		$request_url = "https://api.telegram.org/bot{$api_code}/sendMessage?" . http_build_query($query_array);
		$curl_opt = array(
				CURLOPT_RETURNTRANSFER => 1,
				CURLOPT_URL => $request_url,
			);
		// curl로 접속
		$curl = curl_init();
		curl_setopt_array($curl, $curl_opt);

		// 응답결과는 알아서 처리.
		var_dump(curl_exec($curl));

	}
	$int++;
}

?>




결과화면





궁금하신 내용 있으시면 댓글 부탁 드립니다.

오늘은 생성한 텔레그램 봇으로 채널에 메시지를 보내 보도록 하겠습니다.

지금가지 세팅이였다면, 오늘 부터는 실제 메시지를 보내는 중요한 내용 입니다. 이글을 처음 보신다면, 아래 링크로 처음 부터 따라 하시면 좋을 것 같습니다.



1. 텔레그램 봇 생성하기.

http://hatpub.tistory.com/48?category=851684


2. 생성한 텔레그램 봇 채널 관리자로 추가 하기.

http://hatpub.tistory.com/49?category=851684





1) 생성된 채널(봇이 관리자로 들어가 있는 채널) 에 아무말이나 입력을 해 봅니다.

※ 저는 모바일로 hi 라는 말을 입력 하였습니다.





2) 이제 첫 날에 텔레그램 봇을 생성하면서 받은 API 키를 사용 해야 하라 때가 왔습니다.




아래 URL 에 API 내용을 붙여 넣기 하여 인터넷 주소창에 입력하고 이동 해 봅니다.

https://api.telegram.org/bot(이부분)/getUpdates


예) https://api.telegram.org/bot511337000:AAG7gRmT3Ra8FYl22gekgckK_iwVwkJAAAA/getUpdates



인터넷 창에 위의 주소로 이동을 하면 위 이미지 처럼 내용이 나타나게 됩니다.

여기서 중요한 것은 id 의 값입니다. '-' 부터 복사 해 둡니다.




3) 그럼 이제 텔레그램 봇으로 메시지를 보내 보겠습니다.

아래의 빨간 글자만 여러분의 API 값, Chat id 값으로 바꾸고 진행 하시면 됩니다.

마찬가지로 아래 URL 을 인터넷 창에 입력 하고 이동 해 보겠습니다.


https://api.telegram.org/bot(API 값 위와 동일)/sendMessage?chat_id=-1001305033363&text=Hello


예) https://api.telegram.org/bot511337000:AAG7gRmT3Ra8FYl22gekgckK_iwVwkJAAAA/sendMessage?chat_id=467385328&text=Hello




위와 같이 이미지가 뜨면서 채널에 Hello 라는 메시지가 봇을 통해 들어 온 것을 확인 하실 수 있습니다.






봇을 이용하여 채널에 메시지를 보내는 방법까지 해 보았습니다.

이 내용을 응용하여 다른 여러 프로그래밍 언어로 챗봇을 만드실 수 있습니다.

다음 시간에는 php 와 연동하여 봇으로 메시지를 보내보도록 하겠습니다.

만들어진 봇과 1:1 대화만 하신다면 굳이 채널을 만드실 필요는 없습니다.

텔레그램 봇을 만들어서 다같이 공유할 내용이 있다면 채널을 만들어 봇을 관리자로 만드시는게 좋으실텐데요.

오늘은 생성한 봇을 채널 관리자로 만드는 방법을 알아보겠습니다.


텔레그램 봇 생성하기

http://hatpub.tistory.com/48?category=851684 




1) 텔레그램 기본 화면에서 우측 상단 글쓰기 버튼을 클릭 합니다.





2) 채널 만들기를 클릭 합니다.





3) 채널명과 채널설명(선택) 을 입력 하고 다음 버튼을 클릭합니다.





4) 공개/비공개 설정을 합니다. (공개일 경우 채널 주소를 수동으로 입력 해야 합니다.)





5) 채널이 만들어 졌다면 우측 상단의 동그라미 버튼을 클릭 합니다.





6) 관리자 버튼을 클릭 하여 관리자를 추가 하여 줍니다.









7) @를 추가 하여 생성한 봇 이름을 검색 하여 추가 합니다.





8) 권한을 설저어 한 뒤 완료!




9) 위 단계를 마치면 관리자에 봇이 추가 된 것을 확인 하실 수 있습니다.



텔레그램은 다른 모바일 메신저 보다 봇을 만들고 사용하기 편리하게 되어있습니다.

저도 봇을 만들어서 암호화폐 알람을 받고 있는데요. 제가 사용하고 있는 텔레그램봇 만드는 방법을 오늘부터 차근차근 알려드리도록 하겠습니다.




1) 먼저 텔레그램 검색에서 BotFather 를 검색하고 클릭 합니다.







2) BotFather 와의 채팅에서 " /start " 라는 메시지를 보내 시작합니다.




3) " /newbot " 이라는 메시지를 보내어 새로운 봇을 생성합니다. 이 후 아래와 같이 봇의 이름과 유저명을 입력 합니다.




4) 완료가 되었다면 아래 이미지 처럼 빨간 박스의 API 값이 생성 됩니다(중요)





5) 이후 '@' 를 붙여 봇의 이름을 검색 해 봅니다.





5) 아래 이미지와 같이 되었다면 세팅 완료 입니다!




봇을 만들기 위한 첫 세팅은 끝났습니다.

참 쉽죠?


PhpMyAdmin 을 이용 하면 보다 쉽게 mysql 를 작성 할 수 있지만, 웹호스팅을 이용 할 경우, IP등록 부터 접속하기 까다롭게 되어있는데요.


mysql 쿼리만 잘 쓰신다면 putty를 이용하시는게 PhpMyAdmin 보다 mysql 을 사용하시는게 편하실 수 있습니다.



↓↓ putty 정식 다운로드 ↓↓

https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe




위 링크로 퓨티를 다운로드 하시면 다운로드 폴더에 아래 이미지와 같이 putty.exe 파일이 생성됩니다.





위 아이콘을 더블 클릭 하시면 아래와 같이 프로그램이 실행 됩니다.

Host Name(or IP address) 라는 부분에 서버 아이피 주소 혹은 naver.com 과 같은 도메인 입력 하시고 Open 클릭 하시면 서버로 접속이 됩니다.







서버 접속 후 FTP ID와 비밀번호를 입력 하면 서버에 로그인이 됩니다.(아래 이미지)

※ 패스워드는 입력을 해도 화면에 표시 되지 않습니다.







서버에 잘 접속이 되었다면 mysql 에 접속을 해보겠습니다.


명령어는 " mysql -u DB_ID -p DB_NAME " 으로 웹호스팅 신청 시 정하신 DB ID 를 -u 부분에, DB NAME 을 -p 부분에 입력 하시고 엔터를 누릅니다.






정상적으로 접속이 되었다면 아래와 같은 문구가 나오며 입력창이 mysql> 로 바뀐 것을 확인 하실 수 있습니다.





putty 를 이용하여 mysql 을 작성하면 화면이 작고 보기 불편 하실 수 있지만, 쓰시다 보면 PhpMyAdmin 보다 사용하기 쉽다고 느끼 실 수 있을 것 같습니다.


스누피(snoopy) 다운 및 이용 방법은 아래 페이지에서 먼저 확인 부탁 드립니다.


http://hatpub.tistory.com/39?category=988325

<?
include_once 'Snoopy.class.php';
$snoopy = new snoopy;
$snoopy->fetch("https://bittrex.com/api/v1.1/public/getmarketsummaries");
$t	 = $snoopy->results;

preg_match_all("|MarketName\":\"(.*)\",\"High\"|U", $t, $name, PREG_SET_ORDER);
preg_match_all("|\"BaseVolume\":(.*),\"TimeStamp\":|U", $t, $volume, PREG_SET_ORDER);
preg_match_all("|Last\":(.*),\"BaseVolume\"|U", $t, $price, PREG_SET_ORDER);

?>

업로드된 Snopy.class.php 파일을 먼저 인클루드 한뒤,


Json 형태의 API 사이트를 fetch 에 담아 $t 변수에 넣습니다.


preg_match_all 함수를 이용 하여 MarketName(코인명) 은 $name 변수에,

 Last(최근거래가격)은 $price 변수에, BaseVolume(24시간비트볼륨) 은 $volume 변수에 항목의 모든 값을 2차 배열로 담아 옵니다.



↓ https://bittrex.com/api/v1.1/public/getmarketsummaries 접속 시 Json 형태의 값으로 아래 이미지와 같이 표시 됩니다.





<?
$int = 0;
$var = "insert into bittrex(name, price, volume) values";

WHILE($int < count($name)){
	if($int == 0){
		$var = $var."(".$name[$int][1]."',".$price[$int][1].",".$volume[$int][1].")";
	}else{
		$var = $var.",(".$name[$int][1]."',".$price[$int][1].",".$volume[$int][1].")";
	}
	$int++;
}

mysqli_query($conn, $var);
?>


$name, $price, $volume 에 담아온 값을 WHILE 을 사용하여 쿼리문을 작성 합니다.


마지막으로 mysql insert 문을 실행 시키면 값이 DB에 저장 되게 됩니다.


+ Recent posts