블록체인을 공부하며 문뜩 든 생각이 있었습니다. 분산컴퓨팅을 활용해 지갑의 주소로부터 privateKey를 얻어올 수 있는가 라는 의문이 들었습니다. 만약 private key를 브루트포싱으로 얻을 수 있다면 몇년간 거래가 없었던(누군가 잃어버린) 주소의 코인을 해변가에서 금속 동전을 찾듯이 회수할 수 있지 않을까 라는 궁금증이 생겼습니다. 지갑 주소의 생성 과정 우선 방법에 대해 알아보기전에 이더리움 주소의 생성 과정에 대해 알아보도록 하겠습니다. 우선 이더리움 주소의 생성과정은 간단하게 privateKey -> public key -> address 순으로 생성됩니다. privateKey 는 HEX 값으로 구성된 64자리의 랜덤값으로 생성한 뒤에 타원곡선 암호화 알고리즘(ECDSA)으로 private..
안녕하세요 박스여우입니다. 최근 블록체인 송금 관련 토이프로젝트를 진행하던중 블록체인에 대한 기본 지식없이 진행하기에 어려움을 느껴 이더리움, 블록체인에 대해 조금씩 더 공부해보려고 합니다. 오늘 소개해드릴 내용은 nonce에 대한 이야기 입니다. nonce - 각 어카운트의 트랜젝션 수 카운터 nonce는 트랜젝션의 수를 카운트 하는 숫자 입니다. 트랜젝션이 발생할 때 마다 nonce의 값은 증가하게 되며 여러 트랜젝션이 같은 nonce값을 가지지 못합니다. 쉽게 말해 database에서 auto increment index라고 생각하면 됩니다. 이더리움 네트워크를 구성하는 노드는 이 nonce 값에 따라 트랜젝션을 순서대로 처리합니다. 예를 들어 하나의 어카운트에서 두개의 트랜젝션을 전송했다고 했을 ..
ReactiveX(RxJava, RxJs, Rx*)은 비동기 작업 및 이벤트 기반 프로그램을 작성하기 위한 라이브러리 입니다. 최근(?) 안드로이드부터 시작해서 프론트엔드, 백엔드까지 다양한 부분에 rx가 도입되고 있습니다. 필자 또한 rx에 관심이 생겨서 수개월간 사용해왔지만 이제서야 rx에 대한 기초를 정리해보려고 합니다. ■ Reactive Programming Rx에 대해 알아보기 전에 rx의 기본 개념인 Reactive Programming에 대해 알고 넘어가야 할 필요가 있습니다. Reactive Programming은 비동기 데이터 스트림을 이용한 프로그래밍으로 OOP, FP와 같이 프로그래밍 패러다임이라고 볼 수 있습니다. 좀더 쉽게 설명하자면, 데이터를 작은 데이터의 연속(스트림)으로 다..
React 16.8 버전부터 FC - Functional Component(함수형 컴포넌트)에 State를 사용할 수 있도록 해 주는 Hooks 라는 개념이 생겼습니다. 스스로 Hooks 는 별로 중요한 기능이 아니라고 생각했었지만, React 개발자들 사이에서는 Hooks 가 중요하게 여겨지고 있었습니다. 이에 의문을 가지고 Hooks 와 함수형 컴포넌트에 대해서 학습하였고 함수형 컴포넌트와 Hooks 의 중요성에 공감하게 되어 이번 포스팅에서는 이에 대해 정리해보고자 합니다. ■ 왜 Functional Component(함수형 컴포넌트)에 집중하는가 Hook을 보며 많은 개발자들이 클래스 컴포넌트보다 함수형 컴포넌트를 더 선호하고 둘의 차이를 좁히기위해 노력하고 있다는걸 알게되었습니다. 그래서 함수형..
React를 처음 배우기 시작할때는 React의 State 관리 도구가 Redux뿐인줄 알고 있었습니다. 그래서 reducer와 action 정의 등 번거로운 redux가 당연한 줄 알고 사용하고 있었습니다. 하지만 mobx라는 다른 state 관리 도구가 있다는 사실을 알게되었고 이 역시 사용해보면서 두 도구의 장단점과 써보면서 느낀점들을 정리해보고자 합니다. ■ Reduxredux의 컨셉은 flux로부터 시작되었습니다. 기존에 UI와 데이터를 관리하기 위해 많이 사용됐던 MVC 패턴은 View와 모델이 많아질수록 구조와 데이터의 흐름이 복잡해져서 추적하기가 어려워진다는 문제점이 있었습니다. 이러한 문제를 해결하기 위해 페이스북에서 Flux 아키텍처를 고안하였습니다. MVC의 데이터흐름 Flux의 구조..
2017년에 암호화폐에 관심이 생겨서 막 투자를 해보기 시작했다. 한창 상승장일때는 당연히 어느정도 수익을 봤지만 거품이 가라않는 시기인 2018년에는 나 역시도 많은 손해를 보게 되었다. 가장 큰 원인이 암호화폐에 대한 믿음을 가지고있었기 때문이다. 아직까지도 그때 사두었던 암호화폐들을 팔지 않은 상태이다... 처음에는 아무것도 모르고 그저 투자만 하다 암호화폐, 블록체인에 관심을 가지고 공부를 하기 시작했다. 블록체인이 무엇이고, 특징이 어떻고 원리가 어떤지에 대해 블록체인을 전공한 대학생 형 누나들에게 논문과 자료와 도움들을 받아가며 공부를 했었다. 하지만 단순히 공부만 하는것에는 흥미가 잘 붙지 않는 필자는 블록체인 시장에 있어서 필자가 기여할 수 있는게 무엇인지 찾아보기 시작했다. 달 토지를 판..
■ Introducing the Web Share API안드로이드용 Chrome 61에서 웹 사이트에서 호스트 플랫폼의 기본 공유 기능을 호출 할 수있게 해주는 navigator.share() 메소드가 출시되었습니다. 해당 메소드는 Web Share API의 일부이며 공유 할 URL이나 텍스트를 전달하여 기본 Android 공유 Dialog를 쉽게 사용할 수 있습니다. Web Share API는 Promise 기반 단일 메소드입니다. share 메소드 호출시에 공유할 데이터의 속성은 title, text, url등이 있으며 text, url 두 속성중중 하나 이상을 필수로 넣어주어야 합니다. 123456789if (navigator.share) { navigator.share({ title: 'Web F..
React를 처음으로 배우게 만들었고 지금까지도 진행중인 CC-Show라는 프로젝트를 진행하면서 좀더 코드를 고도화 시킬 수 있는 방법은 없을까 하고 여러 오픈소스들을 많이 찾아보았다. React-Router이 Plain Router를 사용하려다 보니 require.ensure라는 함수를 통해 라우터에 컴포넌트를 넘겨주는 코드를 보았다. 처음보는 코드라 찾아봤는데 꽤 재미있는 내용이 나왔다. ■ Single Page ApplicationSingle Page Application - SPA는 말 그대로 페이지가 하나인 웹사이트이다. Single Page Application이면 진짜 페이지가 한개인가? 라는 생각이 들 것이다. 대부분의 어플리케이션의 경우 페이지 하나로는 절대적으로 구현을 못하는것이 대부분..
■ GDG Daejeon - DevFest 2018대전에서 GDG Daejeon DevFest 2018이 진행되었다. 행사를 진행하면서도 각각의 세션내용에 관심을 가지고 나도 무언가를 배워가고자 열심히 필기를 했다. 가장 와 닿았던 세션들은 조은님의 Progressive Web Apps와 장인수님의 Flutter 세션이였다. Flutter는 최근에 React Native를 새롭게 시작해서 경쟁 플랫폼인 Flutter에 대해 관심을 가지고 있었고, PWA는 기존에 알고있던 개념이기도 하고 한번 시도는 해보고 싶은데 기회가 없어서 못해봤고, 무엇보다 조은님께서 세션을 쉽고 재미있게 진행해주셔서 기억에 많이 남았다. 그래서 이번 포스팅에선 PWA에 대해서 간단하게 정리를 해보고자 한다. ■ Progressiv..
안녕하세요 박스여우입니다. 오랜만에 개인 소식에 대한 포스팅을 하게 되었네요. ■ GDG DaejeonGDG 는 Google Developer Group의 약자로 Google 기술에 관심이 있는 개발자들의 커뮤니티 입니다. GDG에는 지역별, 기술별로 다양한 챕터가 있습니다. 전 세계적으로는 118국가에서 753개의 챕터, 약 42만명 정도의 멤버가 활동중이며, 한국에서는 Campus Korea, Busan, Android, Cloud등 13개의 챕터가 있습니다.올해(2018)년 초에는 신규 챕터 운영진을 신청받아서 광명, 울산, 수원등 다양한 지역의 챕터들이 개설되었습니다. 저는 대전지역에서 GDG Daejeon 챕터를 새롭게 개설하여 GDG를 진행하게 되었습니다. 대전지역에서 회사를 다니고 있기 때문..