분류 전체보기

3장. 다형성과 추상 타입
상속 개요상속(Inheritance): 한 타입을 그대로 사용하면서 구현을 추가할 수 있도록 하는 방법상속 대상이 되는 클래스 = 상위(super) 클래스, 부모(parent) 클래스상속을 받는 클래스 = 하위(sub)클래스, 자식(child)클래스자식 클래스는 부모 클래스에 정의된 구현을 물려 받는다.private 접근 제어자가 명시된 메소드, 필드를 제외하고 물려받는다.재정의(Overriding): 하위 클래스에서 상위 클래스에 정의된 메소드를 새로 구현하는 것메소드를 오버라이딩하면, 메소드 실행 시 상위 타입 메소드가 아닌 재정의한 하위 타입 메소드가 실행된다다형성과 상속다형성(Polymorphism): 한 객체가 여러 가지 모습(타입)을 갖는 것, 한 객체가 여러 타입을 가질 수 있는 것정적 타입..

2장. 객체 지향
"개발자가 반드시 정복해야할 객체 지향과 디자인 패턴" 서적 기록절차 지향과 객체 지향절차 지향 프로그래밍절차 지향 프로그래밍(Procedural Oriented): 데이터를 조작하는 코드를 별도로 분리해 함수나 프로시저로 만들어 프로그램을 구성하는 방법절차 지향 프로그래밍은 데이터를 중심으로 프로시저가 구성된다. 프로시저에 의해 발생한 데이터를 다른 프로시저와 공유해 사용하기 때문에 다음과 같은 단점이 있다.데이터 타입이나 의미가 변경될 때 의존하는 프로시저가 함께 수정되어야 한다.같은 데이터를 각 프로시저들이 다른 의미로 사용하는 경우가 생긴다.코드의 수정이 어려워지며 새로운 기능을 추가하는데 비용이 많이 든다.객체 지향 프로그래밍객체 지향 프로그래밍(Object Oriented): 데이터와 데이터와..

Kafka Issue: InvalidRecordException (related Timestamp)
에러 발생 환경AWS MSK (3.6.0), Tiered Storage 활성화에러 로그"org.apache.kafka.connect.errors.ConnectException: Unrecoverable exception│ from producer send callback\\n\\tat org.apache.kafka.connect.runtime.WorkerSourceTask.maybeThrowProducerSendException(WorkerSourceTask.java:340)\\n\\tat│ org.apache.kafka.connect.runtime.WorkerSourceTask.prepareToSendRecord(WorkerSourceTask.java:133)\\n\\tat..

1장. 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션
개요데이터가 중심이 되는 애플리케이션에서 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 데이터 시스템을 구축하기 위해 필요한 내용을 알아보자.신뢰성, 확장성, 유지보수성의 의미를 명확히 알아보자데이터 시스템비교적 최근에 등장한 다양한 데이터 저장/처리를 위한 도구 (e.g Kafka, Redis 등)들은 전통적인 데이터 저장소 분류(e.g 큐, 캐시, 데이터베이스)를 위한 경계가 흐려졌다.애플리케이션에서는 다양한 데이터 저장/처리 도구를 사용한다.다양한 도구들을 애플리케이션 코드를 이용해단일 도구에서 작업을 효율적으로 수행하기 위한 여러 태스크를 생성한다.데이터 시스템를 올바르게 설계하기 위해선 신뢰성, 유지보수성, 확장성을 중점을 둬야 한다.신뢰성(Reliability): 하드웨어, 소프트웨어, 휴먼..

Kafka: Kafka Broker 내부 구조
Confluent Kafka Course 읽고 정리하기카프카는 데이터와 메타데이터를 분리해서 다룬다.카프카 클러스터 내 기능은 Data Plane과 Control Plane으로 나뉜다.Control Plane: 카프카 클러스터의 메타데이터 관리를 처리한다.Data Plane: 카프카에서 읽고 쓰는 전체 데이터를 다룬다.카프카 브로커 내부 구조카프카에서 클라이언트 요청은 Produce, Fetch request 두 분류로 나뉜다.Produce Request: 데이터 배치를 특정 토픽에 쓰도록 요청Fetch Request: 카프카 토픽에서 데이터를 가져오는 요청두 요청 모두 동일한 단계를 거친다.Producer Request파티션 할당프로듀서가 레코드를 전송할 준비가 되면, 파티셔너를 이용해 레코드에 할당할..