분산 운영체제 구현

내가 관심있는 분야는 인프라 관점에서는 SaaS및 PaaS이며, 애플리케이션 관점에서는 메시징 플랫폼으로 메시징 플랫폼 구성 관점에서 살펴보려 한다. 보통 분산 운영체제가 애플리케이션의 실행을 목적으로 하기 때문에, 약간은 다른 내용이 될 수 있다. 내가 구상중인 분산 메시징에 대한 아이디어는 를 참고하기 바란다. 여기에서는 메시징 인프라를 실제 구현하기 ...

Knuth-Morris-Pratt 알고리즘

Knuth-Morris-Pratt 3명이 개발한 알고리즘이다. 보통 첫 글자를 따서 KMP 알고리즘이라고 한다. 이 알고리즘은 문서에서 동일한 문자열을 찾기 위해서 사용한다.배열 S에서 문자열 W가 몇 개가 있는지를 찾아내는 알고리즘을 만들어 보자. S 배열의 처음부터 W가 일치하는지를 일일이 확인하는 간단한 방법을 생각 할 수 있다. 아래 예제를 보자. ...

Golang 에서의 Actor 모델

액터 모델(Actor Model)은 컴퓨터 과학에서 동시성(concurrent)문제를 해결하기 위해서 사용하는 소프트웨어 개발 모델이다. 연극 무대는 여러 액션들이 동시에 일어난다. 감독은 하나 이상의 액터(배우)에게 명령(큐 사인이라고 하던가 연극을 잘 몰라서)을 전달하는 데, 명령을 받은 액터들은 자기의 액션과 대본을 소화한다. 감독은 큐 사인만 내릴 ...

Electron

웹 기술(HTML, CSS, Javascript)을 이용해서 데스크 탑 애플리케이션을 만들 수 있으면 얼마나 좋을까 생각 해본적이 있다. 배우기 쉽고, 개발도 쉽고 무엇보다 모든 플랫폼에서 사용 할 수 있다는 것이 엄청난 장점이 될 수 있다. 은 JavaScript, CSS, HTML을 기반으로 하는 데스크탑 애플리케이션 플랫폼으로 chromium과 nod...

Ruby DSL을 이용한 Lambda 서비스 구현

미완성.. 는 인스턴스의 생성과 삭제, S3로의 이미지 업로드, DynamoDB로의 스트림 업데이트, 이미지 분석, 문서 변환등 다양한 서비스를 제공한다. AWS 기반으로 서비스를 개발할 경우, AWS의 자원 변동상황을 트리거 해서 적절한 작업을 수행해야 한다. S3에 이미지가 업로드가 끝나면 섬네일을 만들거나, 이미지 업로드를 기다리는 다른 사람에게 이벤...

직접 구현해 보자. oAuth1.0

직접 구현해 보자. oAuth1.0 미완성처음에는 oAuth2 만 살펴보려고 했다. 새로 개발하는 서비스들은 대부분 oAuth2 우선이고, 기존에 oAuth1부터 시작했던 서비스들도 oAuth2로 무게중심을 옮겨가는 와중이니, 굳이 oAuth1을 살펴볼 필요는 없으리라고 생각을 했다.하지만 oAuth1와 oAuth2를 동시에 지원해야 할 일이 생겨서...

Docker 레퍼런스 네트워크

Docker 레퍼런스 네트워크 미완성.. 작업 중 도커를 이용한 데이터 센터 구축이 목표다. 아마도 클라우드 인프라를 구축하는데, 가장 큰 어려움은 네트워크 구성일 것이다. 네트워크 구성을 집중적으로 살펴보려고 한다. 최종목표는 와 같은 네트워크 인프라를 구축하는 거다.을 기반으로 테스트 환경을 만들어 보기로 했다.제대로 테스트하려면 두 개 이상의...

Array, Slice, Map

Array, Slice, MapGo 언어는 Number, String, Boolean의 기본 타입외에, 배열(array), 슬라이스(slice), 맵(map)와 같은 추상화된 데이터 타입을 지원한다. 배열은 동일한 형식의 데이터들의 연속으로 구성된, 데이터 형식이다. Go 배열은 다음과 같이 선언한다. var x int5개의 int형 데이터를 저장할 수 ...

해시 - hash

해시 - hash 제대로 살펴봐야 겠다는 생각이 마구 들고 있다.Hash 함수는 임의의 길이를 가지는 데이터를 고정된 길이의 데이터로 맵핑하는 알고리즘이다. 해쉬 함수는 Hash(k) = V 로 표현할 수 있다. 함수 hash()에 K를 입력하면, 값 V가 출력된다. 이때 K가 같으면 항상 같은 V가 출력된다. 아래 그림은 해싱의 기본 개념을 묘사하...

Rendezvous hashing

Rendezvous hashingHighest Random Weight(HRW) hashing으로 부르기도 하는 랑데뷰(Rendezvous) 알고리즘은 1996년(2015-04-01T09이 알고리즘는 멀티캐스트 애플리케이션에 처음 구현됐다. 이후 1998년 마이크로소프트의 CARP(Cache Array Routing Protocol)의 구현에 사용된다. ...