일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CORDA
- 엔터프라이즈 블록체인
- 파이썬 동시성
- Golang
- play2 강좌
- 블록체인
- 스칼라 동시성
- Hyperledger fabric gossip protocol
- play 강좌
- Akka
- 파이썬 머신러닝
- 그라파나
- 플레이프레임워크
- 파이썬
- Play2 로 웹 개발
- 하이퍼레저 패브릭
- Play2
- hyperledger fabric
- 안드로이드 웹뷰
- akka 강좌
- 스위프트
- 파이썬 데이터분석
- 주키퍼
- 파이썬 강좌
- 스칼라 강좌
- 스칼라
- Adapter 패턴
- Actor
- 하이브리드앱
- 이더리움
- Today
- Total
목록전체 (688)
HAMA 블로그
chan chan 이란?블록체인을 비롯해서 서버쪽 개발 언어로 go 언어가 엄청나게 부상하고 있는데요. 이 글에서는 go 언어의 가장 큰 특징 중 하나인 고루틴/채널에 대하여 간단히 설명하며, 좀 더 고급기술인 채널 위에 채널을 얹는 문법을 이더리움 코드를 통해서 살펴봅니다.golang은 C,C++ 보다 실전적으로 고성능이라고 생각하는데, 그 근거가 바로 고루틴과 채널입니다. 물론 C++도 쓰레드가 있긴 하지만 코딩 할 때, 아~ 이 부분은 좀 시간 걸리겠는데 하더라도 쓰레드로 빼긴 부담스럽게 느껴지는게 사실이며, 많은 C++ 개발자들이 그러한 습관에 코딩을 하고 있습니다. 하지만 GO언어는 언어자체에서 경량쓰레드를 지원하므로, 너무나도 자연스럽게 쓰레드화하고, 채널을 통해서 그것의 결과에 해당하는 값을..
블록체인은 전세계적으로 분산되어있는 노드들간에 합의를 이루는 과정을 통해서 신뢰를 확보하는데요. 이때 처음 내 컴퓨터에 있는 이더리움 프로그램이 켜질때 어떻게 전세계의 컴퓨터들과 연결되는 걸까요?그것에 관련된 글을 적어 보았습니다.(이 글은 의문을 품고 공부하면서 동시에 작성되어 두서가 없습니다. 또한 잘못된 정보(혹은 업데이트 되지 않은 정보)가 포함 되어 있을 가능성도 있음을 알려 드립니다.)이더리움에서 흩어져 있는 노드를 찾을 때 Kademlia DHT 의 일부를 수정해서 사용한다고 하는 글을 보았을 때 좀 이해가 안 갔는데, 이유는 Kademlia은 토렌토등에서 사용되며 특정 노드/ 특정 값을 찾고, 일부 노드에만 분산 저장하기 위한 알고리즘인데, 이더리움도 비트코인처럼 그저 랜덤 하게 설정되는것..
블록체인과 TPSTransactions Per Second (TPS) 란 말 그대로 초당 트랜잭션 수를 의미하는데, 시중 대형은행의 TPS 는 보통 몇백에서 몇천건이라고 합니다. 글 본론에서 소개해드릴 자바기반의 LMAX 아키텍쳐에서 사용한 DISRUPTOR 패턴은 초당 600백만 트랜잭션을 처리 할 수 있다고 하는데요. (실..실화냐?)* DISRUPTOR 패턴을 한마디로 축약하면 "싱글 쓰레드" 의 힘!! 입니다.TPS 는 보통 "- 외부에서 데이터를 받고 - 그 데이터를 처리하고 - 처리된 데이터를 외부로 내보내고" 를 한 싸이클로 보고 계산을 하게 되는데, 그림에서 보다시피, 외부에서 데이터를 받는 네트워킹 상황에 따라서도 영향을 받을 수 있으며, 내부의 로직을 처리하는 시간에 따라서도 영향을 받..
블럭,논블럭,동기,비동기 이야기 블록,논블럭,동기,비동기를 구분하는 것에 대한 글들이 많이 있는데, 어렵게 풀어내는 거 같아서 나름 간단하고 분명하게 구분해 보는 글을 작성 해 본다. 근데 함정이 있는데 분명하게 정답을 말해 준다는게 아니다. 분명하게 정답이 없으며, 불분명하다고 말해주려는 것이다. ㅎㅎ 면접시나 시험지에 적을 정확한 정답을 몰라서 혹시 불안해 하시는 분이 있다면 이 글을 읽고 안심하셔도 될 것이다.(뭐 시험관이 잘못알고 있는것 까지 책임지진 못하겠다. 과감히 논쟁하시라~~ㅎ) 구체적으로 블럭/논블럭에 대한 구분은 비교적 명확하다. 동기/비동기로 넘어가면 말하는 상황에 따라서 조금 달라지기 시작한다. 이제 조합하기 시작하면 문제가 발생하기 시작한다. 이 글에서는 이것의 구분에 대한 설명을..
이더리움에서 활용하고 있는 "머클 패트리샤 트리"를 이해하려다가 주화입마에 빠지신 분들이 꽤 있는거 같은데요. 사실 그것은 당신들의 탓이 아닙니다. 비탈릭이 쓴 머클링 in 이더리움 등의 블로그 글 및 각종 이더리움 책에서 설명된 내용을 읽고 금방 이해하는게 사실상 쉽지 않습니다. 남을 이해시키기 위한 글이 아니라는 생각이 들기도 하는데요. 이 글에서 저는 "이해시켜 드리기 위한 글"을 써보려고 합니다. 만약 또 실패한다면 역시 제가 모자라서 그런것이 겠지요. "개념을 이해시켜 드리기 위한 글" 이기 때문에 아주 디테일한 부분(트리에 대한 구체적 요소,추가,삭제,업데이트 및 블록상세등)을 과감히 생략하였습니다. 지엽적인 오류도 있을 수 있습니다. OTL 머클패트리샤트리를 이해하기 위해서는 먼저 몇가지 짚..
- 발표시간 : 2018년 4월14일 (토요일) 3시~5시 - 발표주제 : 은행/사이버보안/선거관리/웹호스팅/도매,소매공급망/엔터네이먼트등 블록체인은 예상치 못한 방식으로 수많은 산업에 영향을 미칠 엄청난 미래 기술이 될 것이다라는 다소 과장됬을지도 모르는 글들이 쏟아져 나오는 현재 있어서, 우리 개발자들은 어떻게 보면 복받았을지도 모른다고 생각합니다. 그런 엄청난 기술에 대해서 일반인들 처럼 가쉽성 기사들만 읽고 지나가는게 아니라, 그 실체 기술이 무엇인지에 대한 호기심을 비교적 쉽게 풀 수 있기 때문인데요. 세상이 바뀌는 것에 함께 한다는 것은 꽤 멋진 일인거 같습니다. 그리고 블록체인을 공부하는 것은 우리 소프트웨어 개발자에겐 일석이조의 효과를 가져오는데요. 블록체인 자체를 알게 되는 것과 동시에,..
scriptSig 스크립트의 시작에 나오는 sig 가 어떻게 만들어지는지 궁금하진 않는가? 즉 무엇을 서명한 것인가? 그에 대한 답이 아래 코드에 있다. 이렇게 복잡하게 만들어 질 줄이야 ㅎㅎ 관련 레퍼런스: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html 코드출처: https://bitcoin.stackexchange.com/questions/3374/how-to-redeem-a-basic-tx트랜잭션이 만들어지는 단계 (19단계) :4바이트의 버전 필드 추가 : 010000001바이트의 몇번째 input 인지 추가: 01우리가 소비하고자 하는 지난번 트랜잭션의 32-byte 해시: eccf7e3034189b851985d87..
(A,B) -> B 보다 A -> (B->B) 가 더 좋다? 사실 명령형 파라다임에 적폐인 나로써는, 함수형 파라다임의 체득이란 살아 생전 가능할까 싶다. ㅎㅎ 특히 함수형 파라다임을 체득(머리로 이해가 아닌) 하기 위해서 제일 먼저 만나는 관문을 "커링"이라고 보는데...왜 저 짓을 하냐? 저게 진짜 더 좋긴해? 를 넘어서서 저렇게 하는게 너무 당연하게 느껴지는 퀀텀점프의 경험을 하고 싶다.* 이 글에서는 부분적용함수와의 차이는 무시한다. 부분적용함수도 커링이라고 친다.함수형 언어와 함수형 프로그래밍이 다르듯이 파이썬이나 자바스크립트로도 충분히 커링이 가능하다.// 파이썬 def curry(func, var): y = var def f(x): return func(x, y) return f커링을 사용한..
다음 글은 Why Sum Types Matter in Haskell 글을 번역한 글임을 밝힙니다.Why Sum Types Matter in Haskell이 글에서는 Haskell의 Algebraic Data Types을 자세히 살펴볼 것 입니다. Algebraic Data Types를 이해하는 열쇠는 기존 타입을 결합하여 새로운 타입을 생성하는 방법을 이해하는 것입니다. 고맙게도 두 가지 방법 밖에 없는데요. 다른 타입을 'and'과 결합하여 만든 타입을 Product types라고합니다. 'or'을 사용하여 결합 된 타입을 Sum types이라고합니다. 대부분의 프로그래밍 언어는 Product 타입을 사용합니다. Sum types은 개념적으로 단순하지만 모델링 데이터의 경우 매우 강력한 도구임을 입증합..
C / C++ : 극한의 상황에서도 돌아가야해. 메모리관리,쓰레드관리,리소스관리를 마이크로 컨트롤하여 솔루션을 만드는게 진정한 개발자라고 할 수 있지 자바 : C++ 은 반쪽짜리 객체지향에다가 오류의 대부분이 포인터 관련인 어처구니 없는 적폐의 언어. 보통 사람의 능력으로는 항상 문제가 발생 할 소지가 많은 언어. 이제 누구나 개발하는 시대이지. 기본적인 것은 플랫폼에서 해주고, 대규모어플리케이션도 편하면서도 강력하게 만들게 해주는 생산성 높은 자바. 대세의 언어가 된데에는 이유가 있는법 파이썬: 얘들아 쉽고 빠르게 개발하는 시대가 왔어. 니들이 진짜 만들고 싶은게 뭐야? 그거에 집중하라고. 초딩들처럼 유치하게 로우레벨 가지고 투닥대지말고~ 하스켈,스칼라: C++/JAVA는 그냥 그저그런 지적능력을 가진..