# 소프트웨어 엔지니어가 알아야 할 로그에 대한 모든 것 | Apache Kafka 탄생 배경

> Clean Markdown view of GeekNews topic #10627. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=10627](https://news.hada.io/topic?id=10627)
- GeekNews Markdown: [https://news.hada.io/topic/10627.md](https://news.hada.io/topic/10627.md)
- Type: news
- Author: [scalalang2](https://news.hada.io/@scalalang2)
- Published: 2023-08-31T09:04:17+09:00
- Updated: 2023-08-31T09:04:17+09:00
- Original source: [link.medium.com](https://link.medium.com/DqV4j4blHCb)
- Points: 29
- Comments: 0

## Topic Body

Linkedin에서 Apache Kafka를 개발한 [Jay Kreps가 2013년에 쓴 글](https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying)을 번역 및 해석한 아티클  
  
- 로그(Log) : 가장 단순하게 추상화된 저장소이며 Append-only만 가능하고, 전체 이벤트가 시간 순서대로 정렬된 자료구조  
  - 전통적인 데이터베이스 시스템에서 복제를 구현할 때 로그는 핵심적인 역할을 함  
  - 상태 복제 머신을 기반으로 하는 분산 시스템도 사실은 로그를 복제하는 시스템  
- 로그와 테이블은 동일성을 띈다.  
  - 은행을 예시로 들면, 로그는 입출금 기록이며 테이블은 계좌 잔액을 나타낸다. 로그로 테이블을 만들 수 있고, 반면 테이블에서 로그를 추출할 수 있음  
- 많은 기업들이 빅 데이터 도입에는 적극적인 반면, 신뢰할 수 있는 데이터 파이프라인 구축에는 관심이 적었음  
  - End-to-End 로 데이터를 연결하는 방식은 장애, 메인터넌스, 데이터 파편화, 이벤트 데이터의 발전으로 점점 어려워졌다.  
  - 로그(Log)라는 자료구조를 메인 네트워크 레이어로 추상화 시켜야 한다는 동기로 Apache Kafka에 대한 아이디어가 출발함  
  - [Jay Kreps는 Quora](https://www.quora.com/What-has-been-the-impact-of-Jay-Kreps-s-article-The-Log-What-every-software-engineer-should-know-about-real-time-datas-unifying-abstraction)에서 과거 메시지 큐는 인프라 월드에서 매우 마이너한 분야였다고 설명하면서 실시간 데이터를 이벤트 스트림으로 추상화 시켜야 한다고 생각했고, 영속성을 가진 커밋 로그가 적절한 자료구조라고 설명함

## Comments



_No public comments on this page._
