목록Home (246)
without haste but without rest
카프카 핵심 가이드 - 실시간 데이터와 스트림 프로세싱 아파치 카프카 애플리케이션 프로그래밍 with 자바 0. Kafka 카프카는 이벤트 기반 분산 스트리밍 플랫폼이다. 비슷한 서비스로 GCP의 Pub/Sub, AWS의 Kinesis 등이 있다. 1. Unified 카프카를 사용하면 파편화된 데이터 파이프라인을 중앙집중화된 심플한 아키텍처로 개선할 수 있다. (1). 복잡한 데이터 파이프라인 예시 이미지 원본 위 구조는 각각의 프로세스가 파편화되어있는 상태로 데이터 처리 프로세스가 추가되는 경우 점점 더 구조가 복잡해질 수 밖에 없다. (2). 중앙집중화된 데이터 파이프라인 예시 카프카를 사용하는 아키텍처는 카프카 브로커가 모든 프로세스의 매개자 역할을 하는데, 이 과정에서 아키텍처가 매우 단순해진다...
Spark: The Definitive Guide 0.Spark 스파크는 대규모 데이터 처리를 위한 인메모리 기반 분석 엔진이다. 스파크의 철학은 "빅데이터를 위한 통합 컴퓨팅 엔진"과 "라이브러리 집합"이다. 최근 반복적인 연산을 필요로하는 기계학습과 데이터 분석등이 대두되며 스파크의 인기가 많아졌다. (1) 통합 컴퓨팅 엔진 빅데이터 애플리케이션 개발에 필요한 통합 플랫폼을 제공하고자 하는 핵심 목표를 가지고 있다. 이때 간단한 데이터 읽기에서, SQL 처리, 머신러닝 그리고 스트림 처리까지 다양한 데이터 분석 작업을 같은 연산 엔진과 일관성 있는 API로 수행할 수 있도록 함을 의미한다. 스파크는 통합이라는 관점을 중시하기 때문에 기능의 범위를 컴퓨팅 엔진으로 제한해왔다. 그 결과 스파크는 저장소(..
https://stackoverflow.com/questions/69192/how-to-implement-a-queue-using-two-stacks How to implement a queue using two stacks? Suppose we have two stacks and no other temporary variable. Is to possible to "construct" a queue data structure using only the two stacks? stackoverflow.com class Queue: def __init__(self): self.inbox = [] self.outbox = [] def enqueue(self, value): self.inbox.append(val..
https://medium.com/airbnb-engineering/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70 How Airbnb Achieved Metric Consistency at Scale Part-I: Introducing Minerva — Airbnb’s Metric Platform medium.com
1. 프로토콜 서로 다른 기기간 통신을 하기 위해 정한 통신규약 2. 네트워크 컴퓨터들이 통신망을 통해 서로 그물처럼 연결된 체계. LAN과 WAN 등이 있다. 3. LAN 멸 킬로미터 내의 네트워크를 연결하는 망 4. WAN 서로 다른 LAN들을 연결하여 하나의 네트워크로 만든 것으로, LAN 사이에 통신을 위한 프토콜이 IP다. 5. 프로토콜 스택 애플리케이션 계층: 사용자가 사용하는 애플리케이션 단 - HTTP, SMTP 등이 해당 트랜스포트 계층: 클라이언트와 서버 간 메시지를 전송하는 서비스 제공 - TCP, UDP가 이에 해당 네트워크 계층: 트랜스포트 계층의 세그먼트를 목적지로 전송하는 역할 - 네트워크상에서 IP 하나만 존재한다. 링크 계층 물리 계층 6. UDP(User Datagram ..
1. 운영체제 하드웨어는 스스로 작동할 수가 없어서, 하드웨어를 다루는 소프트웨어가 필요한데 이것이 운영체제이고 펌웨어라고도 한다. 따라서 운영체제의 목적은 하드웨어 리소스를 효율적으로 활용할 수 있도록 돕는 소프트웨어다. 크게 커널과 인터페이스로 구성되어 있다. 2. 커널과 인터페이스 커널: 운영체제의 핵심 기능들을 모아둔 것 인터페이스: 커널에 명령을 전달하고 실행 결과를 돌려주는 기능을 제공한다. 커널과 인터페이스로 구분이 되는 이유는 유저가 커널을 보호하기 위해서 직접 접근하는 것을 차단하고 시스템콜 같이 미리 정의된 형태로만 사용하게 했다. 프로그래밍 랭귀지의 open이나 print 함수도 인터페이스로 시스템콜에 해당한다. (하드웨어의 인터페이스는 드라이버) 3. 프로그램과 프로세스 프로그램은 ..
1. 데이터베이스 여러 사람이 사용할 목적으로 통합 관리하는 데이터 집합으로, 데이터를 효율적으로 저장하고 빠르게 검색하기 위해 사용한다. 데이터의 저장, 접근, 갱신 효율성을 높이기 위해서 데이터를 저장하는 데이터 파일 그리고 인덱스를 저장하는 인덱스 파일을 분리하여 관리한다. (인덱스는 메타 데이터를 저장한다. 메타데이터: 데이터에 대한 구조화된 데이터로, 특정 데이터를 설명해주는 데이터) 2. 데이터베이스 관리시스템 데이터베이스를 효율적으로 활용하기 위한 소프트웨어로, 트랜잭션의 ACID를 보장한다. 원자성(Atomicity): 트랜잭션이 부분적으로 실행되다가 중단되지 않는 것을 보장 일관성(Consistency): 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태를 유지 독립성(..