| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 클린코드
- 프레임워크
- 알고리즘
- Elasticsearch
- 데이터베이스
- 애자일기법
- JPA
- 애자일프로그래밍
- ES
- kotlin
- Baekjoon
- API
- 개발
- Spring
- 그리디
- 코드
- 스프링
- 백준
- 읽기쉬운코드
- framework
- 그리디알고리즘
- 코딩
- database
- 개발자
- Java
- 엘라스틱서치
- cleancode
- 코딩테스트
- spring boot
- 자바
- Today
- Total
목록전체 글 (193)
튼튼발자 개발 성장기🏋️
카프카 커넥트(Kafka Connect)는 Apache Kafka의 데이터 통합 프레임워크로, 다양한 데이터 소스와 싱크를 Kafka로 연결하여 실시간으로 데이터를 전송하고 처리할 수 있도록 도와준다. 카프카 커넥트는 소스 시스템(데이터베이스, 파일 시스템, 메시지 큐 등)으로부터 데이터를 Kafka 토픽으로 가져오거나, Kafka 토픽에서 데이터를 추출하여 타겟 시스템(데이터베이스, Elasticsearch, HDFS 등)으로 보낼 수 있다. 카프카 커넥트는 확장 가능하고 유연한 아키텍처를 가지고 있으며, 단일 노드부터 클러스터 환경까지 지원한다. 커넥터와 태스크(Connector and Task)카프카 커넥트에서 커넥터(Connector)는 데이터 통합 작업을 구성하는 기본 단위다. 각 커넥터는 특정..
영속성 관리는 엔티티(Entity) 객체를 데이터베이스와 매핑하고, 엔티티의 생명주기를 관리하며, 영속성 컨텍스트(Persistence Context)를 통해 엔티티의 상태를 제어하는 데 사용된다. 이 글에서는 엔티티 매니저 팩토리와 엔티티 매니저, 영속성 컨텍스트, 엔티티 생명주기, 플러시, 준영속 상태와 같은 주요 개념을 포스팅한다. 1. 엔티티 매니저 팩토리와 엔티티 매니저엔티티 매니저 팩토리(EntityManagerFactory)는 JPA에서 엔티티 매니저(EntityManager)를 생성하는 역할을 한다. 이는 애플리케이션이 시작될 때 한 번 생성되며, 애플리케이션이 종료될 때까지 유지된다.엔티티 매니저 팩토리의 생성은 비용이 많이 들어가기 때문에 공유해서 사용하며 엔티티 매니저는 connect..
1. 카프카 스트림즈란? 카프카 스트림즈(Kafka Streams)는 카프카에서 스트리밍 데이터를 실시간으로 처리하고 분석하기 위한 자바 라이브러리다. 기존의 데이터 처리 시스템과는 달리, 카프카 스트림즈는 데이터가 들어오는 즉시 이를 처리하고 결과를 다시 카프카 토픽에 기록할 수 있다. 카프카 스트림즈는 MSA 아키텍처에 적합하며, 높은 처리량과 확장성을 제공한다. 스트림즈 애플리케이션은 스레드를 1개 이상 생성할 수 있으며, 스레드는 1개 이상의 태스크(Task)를 갖는다.이 태스크의 수는 파티션의 수와 일치하도록 한다. 기본적으로 라이브환경에서는 안정적으로 운영할 수 있도록 2개 이상의 서버로 구성하여 스트림즈 애플리케이션을 운영한다.1.1 KStreamsKStreams는 카프카 스트림즈에서 가장 ..
카프카 클라이언트는 카프카 브로커와 상호 작용하기 위한 다양한 API를 제공한다. 클라이언트는 프로듀서, 컨슈머, 관리자 등 역할에 따라 세분화되어 있으며, 각 클라이언트는 특정 기능을 수행한다. 이번 포스트에서는 이들 클라이언트가 어떻게 동작하며, 어떤 기능을 제공하는지에 대한 내용을 작성한다.Producer APIProducer API는 데이터를 카프카 브로커에 보내는 역할을 한다. 데이터를 생성하여 특정 토픽에 메시지를 발행하는 역할을 하며, 다양한 설정 옵션을 통해 메시지 전송의 신뢰성, 성능, 순서를 조정할 수 있다.[그림 1]과 같이 프로듀서가 send()를 호출한다고해서 바로 전달되는 것이 아니다. 파티셔너로부터 어떤 토픽의 파티션으로 전달할지 정해진다. 현재는 기본 파티셔너는 Uniform..
카프카 브로커 · 클러스터 · 주키퍼Apache Kafka는 분산형 스트리밍 플랫폼으로, 대량의 데이터를 빠르고 신뢰성 있게 처리할 수 있는 기능을 제공한다. Kafka는 브로커, 클러스터 그리고 주키퍼로 구성된다. 데이터 저장, 전송데이터 저장: Kafka에서 데이터는 주로 토픽(topic)이라는 단위로 저장된다. 토픽은 데이터 스트림의 카테고리라고도 할 수 있다. 각 토픽은 파티션(partition)으로 나뉘며, 파티션은 순차적으로 레코드(record)를 저장한다. 이때 각 레코드는 고유한 오프셋(offset)을 가진다. 파티션을 이용하여 데이터 저장의 병렬 처리가 가능해진다. 보통 파티션 개수만큼 컨슈머를 생성하여 병렬처리한다.데이터 전송: Kafka 브로커는 프로듀서(producer)로부터 데이터..
아파치 카프카의 탄생아파치 카프카(Apache Kafka)는 2010년 LinkedIn에서 실시간 데이터 피드를 처리하기 위한 내부 프로젝트로 시작되었다. 이 프로젝트는 대규모 데이터 스트리밍과 실시간 로그 수집, 분석을 위해 개발되었으며, 2011년 아파치 소프트웨어 재단(Apache Software Foundation)으로 기부되어 오픈 소스로 공개되었다.더보기GitHub - apache/kafka: Mirror of Apache KafkaKafka Improvement Proposals - Apache Kafka - Apache Software Foundation카프카의 설계는 대용량 데이터 처리를 염두에 두고 있으며, 특히 다음과 같은 요구 사항을 충족하기 위해 만들어졌다.높은 처리량: 초당 수백..
AWS에서 2018년 정식 출시한 AppSync를 사용하여 OpenSearch에서 데이터를 조회해본다. AWS AppSync with DynamoDB 를 통해 step 4까지 선행 후에 본 포스트를 참고하는 것을 권장한다. OpenSearch에서 데이터를 조회해야하므로 조회할 OpenSearch의 index와 조회해볼 데이터를 넣어둔다. step 1. schema 생성 아래와 같이 스키마를 생성한다. type Source { vseq: Int useripaddress: String sessioninit: Boolean } type Query { getSomeByUseripaddress(useripaddress: String!): [Source] getSomeByVseq(vseq: Int!): [Sourc..
AWS에서 2018년 정식 출시한 AppSync를 사용하여 DynamoDB에서 데이터를 조회해본다. GraphQL을 기반으로한 AppSync는 [그림 1]과 같이 AWS Lambda, DynamoDB, Elasticsesarch, Aurora 또는 HTTP를 이용해 브로드캐스팅하여 원본 데이터를 가지고 손쉽게 api를 제공해줄 수 있다. 이를 이용하여 운영 중에도 신규 api가 추가되거나 기존 api의 spec이 변경되거나 신규 앤드포인트가 생겨도 큰 변화 없이 간편하게 api를 제공하기 위함이다. AppSync API 생성 step 1. AppSync > APIs 우측 상단에 API 생성 버튼 클릭 step 2. API type 선택: GrapgQL APIs, Design from scratch [그림..