콘텐츠로 건너뛰기

Developments

buf 로 Protobuf 사용하기

최근에 proto 파일을 관리해야할 일이 생기면서 알게된 buf 에 대한 글이다. 이 글에서는 buf 가 왜 등장했는지, 그리고 실제로 어떻게 사용하는지도 알아본다. Protobuf 를 사용할 때 기존 방식의 문제점 보통 Protobuf 를 통해 API 를 만드는 것이 REST 방식으로 JSON 기반 API를 만드는 것보다 보편화되어 있지 않다. 그래서 아직은 Protobuf 를 통해 API를 만드는 것에… 더 보기 »buf 로 Protobuf 사용하기

Hashicorp Plugin System Design and Implementation

When we are using Hashicorp products, we can find that there’s always a plugin system that users can develop for their own and enables them to extend the functionality of the product. One of the famous products, Terraform, we can not only use well-known cloud provider modules such as AWS, GCP but our own customed… 더 보기 »Hashicorp Plugin System Design and Implementation

EventLoop 설계와 구현 – el Project (1)

들어가기에 앞서 이 글을 쓰기 시작하기 전에 여러가지를 살펴보고 있었다. 첫 번째는 Spring Webflux의 Reactive 시스템의 방식을 이해하기 위해서 Webflux가 사용하는 Netty를 살펴보는 것이었다. 직접적인 관련은 없지만 Netty를 이해하면 좀 더 확실하게 이해할 수 있다고 생각하였다. 두 번째는 NodeJS 엔진의 동작 방식에 대해서도 궁금증을 가지고 있었다. ‘Single thread 에서 동작하는 EventLoop가 있고 거기서(그 엔진에서) Javascript… 더 보기 »EventLoop 설계와 구현 – el Project (1)

Reactive Streams 에 대해서

토비의 봄 영상을 통해 Reactive Streams 공부를 시작하였는데 영상 내용을 기반으로 추가적인 조사를 통해 그에 대한 내용과 궁금증을 함께 정리한 내용이다. 본격적으로 Spring WebFlux를 깊이있게 다루기 전에 가장 기본이 되는 내용에 대해서 정리하였다. 이 포스팅에서는 아래와 같은 내용을 다룬다. Iterator 패턴과 Observer 패턴의 비교를 통해서 Reactive Streams를 이해하는 기본에 대해서 다룬다. Reactive Streams이 사용되는 Reactive… 더 보기 »Reactive Streams 에 대해서

X-Y Problem

X-Y Problem은 다음과 같은 상황에서 발생한다. 어떤 사람이 문제를 풀려고 자신이 생각하는 어떠한 방법을 통해서 그것을 해결하고자하는데 그 방법이 통하지 않아 문제를 해결하지 못하고 다른 사람들에게 도움을 구한다. 그런데 여기서 문제는 다른 사람에게 도움을 구할 때 자신이 풀려고 하는 문제에 대해서 설명하는 것이 아니라 자신이 생각한 방법에 대해서 설명한다는 것이다. 사실 그 사람이 생각한 방식으로… 더 보기 »X-Y Problem

HoneyBadgerBFT Protocol에 대해서

이 글은 BFT 기반 합의 알고리즘 중에 하나인 HoneyBadgerBFT에 대해서 어떤 특징을 가지고 어떤 식으로 동작하는지 설명하고자 한다. 과거에서부터 지속적인 오퍼레이션이 중요한 어플리케이션들은 BFT 계열의 프로토콜을 도입하여 fault-tolerant한 시스템을 만들고자 하였다. 분산 시스템에 대한 관심이 높아지면서 어떤 노드 혹은 컴포넌트가 제대로 동작하지 않는지 시스템 내부적으로 확인할 수 있는 failure-detection과 시스템 내부에서 어떤 컴포넌트가 제대로 동작하지… 더 보기 »HoneyBadgerBFT Protocol에 대해서

Create New SmartContract Programming Language with Go — Parser Part

This is the third post about project which creates new Smart Contract programming language with go. In the previous post, we’ve introduced you the motivation of this project, why we decided to built new Smart Contract language and brief architecture, and how we implement the first component lexer. The project still WIP and open source so you can… 더 보기 »Create New SmartContract Programming Language with Go — Parser Part

Create New SmartContract Programming Language with Go — Lexer part

This is the second post about project which creates new smart contract language with go. In the last post, introduced about project concept, why we decided to built new smart contract language and brief architecture. The project is WIP and open source so you can visit github and feel free to contribute to our project. Prev Post: New… 더 보기 »Create New SmartContract Programming Language with Go — Lexer part

Create New SmartContract Programming Language with Go — New Project Motivation, Concept

This post is about why we started to create new programming language for smart contract (with go). Motivation There are two well known blockchain these days, bitcoin and ethereum. and bitcoin has bitcoin script and ethereum has solidity for programming its own smart contract. Both have pros and cons: In the case of bitcoin, it has no state concept and bitcoin script… 더 보기 »Create New SmartContract Programming Language with Go — New Project Motivation, Concept