CORS – 웹 브라우저와 웹 어플리케이션의 관계에 대해서

CORS (Cross-Origin Resource Sharing) 관련하여 많은 문제를 겪어보았고 또 해결해보았지만 실제로 그것이 어떤 것이고 왜 이런 것이 생겨났는지 제대로 알고 있지 못한다는 생각이 들어서 한 번 정리를 해보려고 한다. CORS는 정책이라고 볼 수 있다. 브라우저에서 로드하는 Javascript 코드가 서버에게 요청을 보내 데이터를 받아오고자할 때 해당 서버가 만약 다른 곳에 있다면 브라우저는 받아온 데이터를 차단한다. 위… 더 보기 »CORS – 웹 브라우저와 웹 어플리케이션의 관계에 대해서

2020 Reading List

앞으로 읽어볼 책 혹은 글들을 정리한 목록입니다. 수시로 업데이트할 예정입니다. 리스팅의 순서는 읽는 순서와 상관없습니다. 프로그래머의 길 멘토에게 묻다 오브젝트 상자 밖에 있는 사람 도메인 주도 설계 구현 Site Reliability Engineering Site Reliability Engineering Workbook 실용주의 프로그래머 (읽는 중) Working Effectively with Legacy Code 횡설수설하지 않고 정확하게 말하는 법 규칙 없음 개발자의 글쓰기 노르웨이의 숲… 더 보기 »2020 Reading List

Spring Batch Scope & Testing

Spring Batch를 이용한 작업을 두 달 전쯤부터 꽤 많이 그리고 오랫동안 했었는데 배치와 관련해서 좋은 레퍼런스를 찾기 힘들었던 기억이 있다. 기본적인 것들은 쉽게 찾아볼 수 있지만 배치 테스트 케이스나 몇 가지 특수한 케이스에 대해서는 찾아보기가 어려웠다. 또한 Spring Batch 프레임워크의 도메인때문에 몇 가지 지식이 없었을 때 내가 만든 배치가 내가 기대했던대로 동작하지 않는 허다했다. 혹은… 더 보기 »Spring Batch Scope & Testing

Kubernetes Controller 구현해보기

이전에 다른 포스팅에서 Kubernetes CRD와 Controller에 대해서 개념적인 글을 작성하였다. 이번 포스팅은 시간이 꽤 지났지만 코드 레벨에서 어떤 식으로 CRD와 Controller를 만들 수 있는지에 대해서 작성해보려고 한다. Requirements & Decisions 앞으로 다룰 이야기가 수월하게 흘러가고 현실감있게 받아들여질 수 있도록 가상의 요구사항을 하나 만들어보자. 시스템 장애 상황에 대비해서 주기적으로 유저 활동 로그를 찍어서 파일로 저장하는 Logger를… 더 보기 »Kubernetes Controller 구현해보기

회고 — 일, 사람, 여유

  • 회고

한 달 전쯤부터 회고글을 쓰려고 생각을 했지만 이런 저런 일이 주위에서 생기고 다른 일들이 우선 순위가 높다보니 이제서야 쓰게 되었다. 글은 개인적으로 앞뒤로 시간적 여유를 두고 쓰는 것을 선호한다. 이런 저런 생각들이 떠오를 수 있는 시간이 필요하고 그것들이 얼기설기 엮여 글로 나타나기 때문이다. 하지만 지금은 더 늦어지면 몇 달 동안 느꼈던 것들이 바래질 거 같아서… 더 보기 »회고 — 일, 사람, 여유

HoneyBadgerBFT Protocol에 대해서

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

Diffie-Hellman Key Exchange

One disadvantage of symmetric cryptosystems which require private key like AES is that the private key must be exchanged. And Diffie-Hellman key exchange algorithm enables exchange private keys over a public channel. So it can solves following dilemma. Alice and Bob want to share a secret key which is going to be used in a symmetric cipher,… 더 보기 »Diffie-Hellman Key Exchange

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