계정(지갑) 만들기 이더리움 블록체인 네트워크에서 일어나는 모든 행위들은 계정으로부터 이뤄지는 트랜잭션에 의해 실행됩니다. 이 트랜잭션을 발생시키려면 계정이 필요하고 그 계정은 MetaMask, Mist browser, MEW(MyEtherWallet) 등으로 EOA(Externally Owned Accounts: 외부 소유 계정)을 간단히 생성가능합니다. 생성된 계정은 Main Network, Test Network 둘다 사용 가능합니다. 저는 MetaMask 를 사용합니다. 참고 - 각 계정은 PrivateKey가 있고, 이것을 비밀번호로 암호화하여 Keystore File 에 저장해서 사용합니다. 이키 하나로 모든 행위를 할 수 있으므로 Keystore File 을 사용하시는 것을 권장합니다. Te..
로그 파일 실시간 모니터링 window 에서 linux 의 tail 명령어 처럼 log 를 monitor 하는 방법이 있습니다. powershell 에서 아래와 같은 명령어로 tail 의 기능을 사용할 수 있습니다. Get-Content [로그파일] -Wait -Tail 1000 폴더 링크 linux 의 symbolic link 의 기능을 window 의 바로가기로 따라할 수는 있지만 개발할 때 경로 지정등에는 사용할 수 없습니다. 아래와 같은 명령어로 link를 만들 수 있습니다. mklink /d "C:\WINDOWS\system32\config\systemprofile\.m2" "C:\Users\HiNTB\.m2"파일 삭제 다음 명령어를 실행하면 현재 위치의 폴더 내부를 모두 검색하여 파일 명에 2..
Wordpress로 개발한 HTML 화면에서 비동기적으로 DB 서버와 통신하려면 restful api가 필요합니다. 이를 위해 저희가 필요로하는 데이터를 반환하는 endpoint를 php로 개발해야합니다. 워드프레스에서 php를 개발하는 여러가지 방법이 있습니다만 워드프레스에서는 플러그인이나 테마 파일을 직접 파일 수정하는 것을 권장하지 않습니다. 이유는 차후에 플러그인 업데이트를 대비와 잘못된 소스코드 수정을 막기 위해서 입니다. functions.php 에 사용자 정의 함수를 추가하여 사용하는 것을 권장합니다. 여기서 restful endpoint를 추가할 수 있습니다. 한가지 단점은 wp_get_current_user() 을 사용하여 로그인한 사용자 정보를 가져오지 못합니다. 사용자 인증을 사용하려..
OTP(One-Time Password) 란 보안 강화를 목적으로 사용자 비밀번호 에 추가적인 인증 수단으로 많이 사용됩니다. Google OTP 는 Time based OTP 를 사용하여, 30초마다 바뀌는 6자리의 숫자로된 비밀번호가 생성됩니다. 이OTP 코드는 비밀키(base32 encoded)를 통해 생성됩니다. 이 비밀키는 사용자 스마트폰과 데이터베이스에 저장되어 있어야합니다. 그리고 인증하는 순간에 사용자 스마트폰과 웹사이트에서 이 비밀키로 각각 6자리 숫자를 생성하고 같은지를 확인하여 인증 성공여부를 결정합니다. MFZWIZDBONSGC5TDMN5HQY32PBRXU6DD # base32 로 인코딩된 비밀키 예시입니다. 사용자별로 위와 같은 복잡한 키를 생성하고, 스마트폰에 저장하여야합니다. ..
nodejs 로 frontweb 을 개발할 때 bower module 을 사용하면 bowercomponets 폴더가 생기면서 이 폴더 안에 dependency로 등록된 bower 저장소의 모든 파일을 내려받습니다. 예를 들어 jquery 를 bower dependency 에 추가 하면 저장소의 소스를 전부 bowercomponets/jquery 폴더 안에 복사합니다. 본인은 jquery.js 만 필요한데 필요없는 파일들이 개발자를 더 혼란시키게됩니다. bower-installer 란 실제 개발시에 사용하는 주요 파일(css,js 등)만 내가 원하는 경로에 따로 보관하고 관리할 수 있도록 해주는 node 모듈입니다. 먼저 모듈을 전역으로 설치합니다. $ npm install -g bower-installe..
최근에 사용한 쓸만한 JavaScript Library 를 몇개가 있어서 정리해보았습니다. Lodash.js 인지도 높은 underscore 와 비교되는 javascript library 입니다. underscore 의 모든 함수를 구현하였고, 추가적인 함수도 구현해 놓았습니다. 이 라이브러리는 arrays, objects, strings 등의 데이터를 다룰때 활용도가 높습니다. 예를 들어 [3,4,5,6,7,8] 등의 배열에서 5보다 큰 원소만 필터링해서 출력하는 간단한 로직을 직접 구현 하는 경우 적어도 for, if 문등을 사용하여 3줄 이상의 코딩을 하여야 하는데 lodash 를 사용하면 다음과 같이 한줄로 끝낼수 있습니다. _.find([3,4,5,6,7,8], function(o) { retu..
VOIP(Voice over Internet Protocol) 란 IP 네트워크를 이용하여 음성과 같은 실시간적인 정보를 전송하는 기법입니다. 쉽게 이야기하면 인터넷 전화라고 할수 있습니다. 상세한 내용은 Voice orver IP 를 참고하시기 바람니다. pjsip(voip 를 구현한 C library) 를 공부하면서 생소한 용어나 약자를 보고 그것의 기능 및 역할을 추측해보고자 정리하였습니다. 사용되는 용어 SIP SIP(Session Initiation Protocol)는 HTTP(웹 프로토콜) 와 SMTP(메일 프로토콜) 의 많은 영향을 받아서 설계되어서 주소체계, 헤더 정보, 응답코드 등에서 유사한 점을 많이 찾아 볼수 있습니다. 이 프로토콜은 하나 또는 그 이상의 참가자와 멀티미디어 세션들의 ..
네트워크 내에서 음성 및 화상 통신을 지원하는 PJSIP 대해서 소개해보겠습니다. PJSIP 란 SIP(Session Iniation Protocol), SDP(Session Description Protocol), RTP(Real-time Transport Protocol), STUN(Session Traversal Utilities for NAT), TURN(Traversal Using Relays around NAT) 및 ICE(Interactive Connectivity Establishment)와 같은 표준 기반 프로토콜을 구현하는 C 언어로 작성된 무료 오픈 소스 멀티미디어 통신 라이브러리 입니다. Getting-Started 문서는 window, linux, mac os 등의 환경에서 빌드하..
Selenium Grid 여러 개의 브라우저를 한번에 제어하는 방식입니다. 구글 이미지 검색 한 내용을 보시면 조금 더 이해하기 쉬울듯 합니다. 여러개의 webdriver server 를 한번의 조작으로 제어 하는 방식입니다. 위에 링크의 이미지를 보시면 하나의 hub 가 여러개의 node 와 연결 되어있는 모습을 볼 수 있습니다. selenium-server-standalone-*.jar 로 실행한 프로세스 들 중에 각 역할에 따라서 hub 와 node 로 process 들의 역할 규정지을 수 있습니다. (관련 웹 문서 를 찾아보면서 한글로 번역된 W3ii 사이트 를 많이 참고 하였습니다. ) 개인적으로 내려받아 테스트한 source(webdriver, selenium server, testNG sou..
웹 브라우저에서 특정 패턴을 자동 재실행하는 셀레니움을 소개합니다. 사용하는 방법은 2가지가 있습니다. Firefox(웹브라우저) 에서 제공하는 셀레니움 플러그인을 사용하여 웹에서 하는 동작들을 레코딩 하고 이를 반복 실행(추가로 flow-control 도 설치 권장) 장점 : 비교적 쉽고 빠르면서 html target 등을 자동으로 찾아줍니다. 단점 : FireFox 에서 밖에 실행되지 않습니다. 프로그래밍을 통하여 브라우저 제어 장점 : ie, Edge, chrome 등과 같은 다양한 브라우저 제어, 다른 응용 application 과 융합 단점 : html 에서 Target 을 직접 찾아서 입력하는 것이 매우 귀찮은 일입니다. Selenium IDE 셀레니움 ide 는 Firefox 에서 제공하는 ..