Posts by Category

tech

데이터 중심의 애플리케이션 설계 - 스트림 처리의 기본

2 minute read

배치 처리와 다르게 스트림 처리는 입력 데이터가 한정된다. 스트림 처리는 시간이 지남에 따라 점진적으로 도착하는 제한되지 않은 데이터를 처리하기 위한 솔루션이다. 스트림 처리를 사용하는 이유는 무엇일까? 스트림 처리를 사용하면 데이터 처리 지연을 줄일 수 있으며, 심지어 이벤트가 ...

데이터 중심의 애플리케이션 설계 - 파티션 로그

3 minute read

일시적 메시징과 영구 저장소의 차이는 무엇일까. 메시지 브로커에서 흔히 볼 수 있는 일시적 메시징은 일반적으로 컨슈머에게 전달된 메시지를 삭제한다. 반면 데이터베이스와 파일시스템은 명시적으로 삭제할 때까지 데이터를 영구적으로 기록하는 것을 목표로 한다.

데이터 중심의 애플리케이션 설계 - 맵 리듀스와 분산 파일 시스템

1 minute read

맵 리듀스는 유닉스 도구와 비슷하다. 차이점은 수천 대의 머신에 분산되어 있다는 점이다. 맵 리듀스는 유닉스 도구와 마찬가지로 상당히 무차별 대입 방식이지만 놀라울 정도로 효과적인 도구다. 단일 맵리듀스 작업은 단일 유닉스 프로세스와 유사하다. 맵리듀스는 유닉스 프로세스와 같이 하...

데이터 중심의 애플리케이션 설계 - Unix의 철학

1 minute read

유닉스에서 간단한 스크립트를 사용하여 로그 파일을 아주 쉽게 분석할 수 있는 이유는 유닉스의 철학 덕분이다. 유닉스 파이프의 발명가인 더그 맥일로이는 1964년에 처음으로 파이프를 개발했다. 그는 파이프를 배관에 비유하였다. 프로그램을 파이프로 연결한다는 아이디어는 현재 유닉스 개...

데이터 중심의 애플리케이션 설계 - 합의 알고리즘

1 minute read

합의는 여러 노드가 어떤 것에 동의 하는 것이다. 합의의 문제는 동시 쓰기 문제에서 비롯된다. 예를 들어, 여러 비행기 승객이 마지막 좌석을 예약하기 위해 동시에 예약을 요청했다면 어떤 고객에게 좌석을 부여할지 결정해야 한다.

데이터 중심의 애플리케이션 설계 - CAP 이론

1 minute read

선형화 가능한 데이터베이스가 단일 리더 데이터베이스든, 다중 리더 데이터베이스에 상관없이 언제든지 네트워크 오류가 발생할 수 있다. 즉, 선형화 가능한 데이터베이스에서 발생하는 문제는 데이터 센터의 수에 상관없이 네트워크로 인해 발생할 수 있다. 만약 당신의 애플리케이션이 선형화 ...

데이터 중심의 애플리케이션 설계 - 선형화 가능성

3 minute read

최종 일관성 데이터베이스는 서로 다른 두 복제본에 동시에 동일한 질문을 하면 두 개의 다른 답변을 얻을 수 있다. 데이터베이스에 복제본이 하나만 있는 것처럼 보이도록 하는 모델을 선형화 가능성이라고 한다.

데이터 중심의 애플리케이션 설계 - 시스템 모델과 현실

3 minute read

대부분의 알고리즘들은 분산 시스템 문제를 해결하기 위해 만들어졌다. 알고리즘은 하드웨어나 소프트웨어에 종속되지 않고 구동될 수 있도록 작성된다. 시스템에서 발생할 수 있는 여러 종류의 오류들을 형식화하는 작업이 시스템 모델링이다. 시스템 모델링은 일종의 알고리즘이 어떻게 동작하는지...

데이터 중심의 애플리케이션 설계 - 비잔틴 오류

2 minute read

펜싱 토큰은 잘못된 행동을 하는 노드를 감지하고 차단할 수 있지만, 악의적인 노드가 가짜 펜싱 토큰을 메시지와 전송하여 시스템을 망가뜨릴 수 있다. 분산 시스템은 노드가 프로토콜에 맞게 행동하지만, GC나 네트워크에 신뢰할 수 없는 경우를 가정해야 한다.

데이터 중심의 애플리케이션 설계 - 분산 시스템

1 minute read

분산 시스템 위에서 동작하는 소프트웨어와 단일 시스템에서 동작하는 소프트웨어는 근본적으로 동작과 오류의 양상이 다르다. 신뢰할 수 없는 네트워크, 시각과 타이밍 문제 등이 대표적인 분산 시스템에서 겪을 수 있는 이슈다.

데이터 중심의 애플리케이션 설계 - 트랜잭션

4 minute read

트랜잭션은 애플리케이션이 여러 읽기 및 쓰기를 하나의 논리적 단위로 그룹화하는 방법이다. 트랜잭션을 사용하면 일부 작업은 성공하고 일부는 실패하는 경우에 대해 걱정할 필요가 없기 때문에 애플리케이션의 오류 처리가 훨씬 간단해진다.

데이터 중심의 애플리케이션 설계 - SSTable과 LSM-Tree

3 minute read

키-값 쌍이 연속적으로 저장된 로그 구조의 스토리지 세그먼트를 키-값 쌍의 순서가 키별로 정렬되도록 해보자. 이러한 형식을 정렬된 Sorted String Table 또는 줄여서 SSTable이라고 부른다. SSTable의 각 키는 병합된 각 세그먼트 파일 내에서 한 번만 나타나야...

데이터 중심의 애플리케이션 설계 - 그래프 데이터 모델

2 minute read

다대다 관계는 서로 다른 데이터 모델을 구분하는 중요한 기능이다. 애플리케이션의 대부분이 일대다 관계(트리 구조 데이터)로 구성되었거나, 레코드 간에 관계가 없는 경우 문서 모델이 적합하다. 하지만 데이터에 다대다 관계가 애플리케이션에 일반적 데이터 모델이라면 그래프로 모델링하는 ...

데이터 중심의 애플리케이션 설계 - 확장성

5 minute read

성능 저하의 일반적인 원인 중 하나는 부하 증가다. 확장성은 부하 증가에 대처하는 시스템의 능력을 설명하는 용어다. 그러나 확장성을 일차원적으로 보면 안된다. 확장성은 “시스템이 특정 방식으로 확장하는 경우 대처할 수 있는 옵션은 무엇인가?”, “추가 부하를 처리하기 위해 컴퓨팅 ...

데이터 중심의 애플리케이션 설계 읽기를 시작하며

1 minute read

<데이터 중심의 애플리케이션 설계>는 데이터 시스템의 근간이 되는 트레이드오프와 다양한 원리들을 다룬다. 다양한 프로덕트에서 접목할 수 있는 다양한 시스템 디자인들을 탐구해볼 수 있는 명저이다.

Back to Top ↑

biz

레딧 언번들링

3 minute read

Reddit은 전세계 사람들이 모여서 각각 고유한 문화를 가진 상호 연결된 커뮤니티다.

구체적인 지식을 찾고 구축하기

2 minute read

스타트업과 벤처 캐피털에서 종종 영업에 타고난 사람들을 만나게 된다. 그들은 영업을 어딘가에서 배웠을 테지만 교실 환경에서 배운 것은 아니다. 그들은 어린 시절 학교 운동장에서 배웠거나 부모님과의 협상을 통해 배웠거나, 일부는 유전적 요소일 수도 있다.

어떻게 부는 창출되는가

2 minute read

만약 내가 모든 자산을 잃고 영어권 국가에 아무 도시에 떨어진다고 해도, 나는 부자가 될 수 있다고 생각한다. 왜냐하면 부자가 되는 것은 기술이기 때문이다.

엑셀은 결코 죽지 않는다.

2 minute read

Microsoft Excel은 1985년부터 오랫동안 사랑받아온 소프트웨어이며 엑셀은 가장 영향력있는 소프트웨어다. 스프레드시트는 사용자에게 일종의 초능력을 부여한다. 이러한 초능력으로 사용자는 도메인 영역에 제한 없이 문제를 해결할 수 있다.

틈새 시장을 찾는법

2 minute read

1인 개발을 시작하면서 작은 시장에 집중해야 한다는 것을 깨달았다면, 이 시장을 공략하기 위해 어떻게 어디서부터 시작해야할까요? http://notionway.com 라는 프로덕트를 통해 연간 $500k 이상을 벌어들인 @ModestMitkus이 자신만의 틈새 시장을 찾는 법을 소...

Back to Top ↑

productivity

폴 그레이엄 - 새로운 아이디어를 찾는 법

less than 1 minute read

새로운 아이디어를 얻는 방법 중 하나는 이상현상(anomalies)를 파악하는 것이다. 어떤 것이 이상해보이는지, 부족해보이는지, 고장나보이는지를 파악해보라. 지식의 경계(frontiers of knowledges)에서 이러한 현상들이 자주 발견된다.

Back to Top ↑