개요 진행 중인 프로젝트에서 Flink를 사용할 기회가 생겼다. 처음 코드를 작성할 때는 ‘Spark과 거의 비슷하네?’ 라는 생각을 했는데, 사용하면 할 수록 다른 부분을 많이 느끼게 되어 정리 차 글을 작성한다. 아래 자료들을 참고하여 작성하였다. Apache Flink - Flink Architecture 삼성 SDS - 연산 처리...
Java NIO - 2. Buffers
Java NIO - 1. 왜 자바의 IO 패키지는 느린가? Java NIO - 2. Buffers 개요 Java NIO - 1. 왜 자바의 IO 패키지는 느린가?에 이어 Java NIO에서 도입된 Buffer에 대해 알아보고자 한다. Buffers Buffer 객체는 고정 크기의 데이터를 담는 컨테이너이다. 각 데이터 타입(Prim...
Docker(compose)로 Kafka Cluster 실행하기
개요 Kafka 공부 중 Replication 등을 테스트하기 위해 Kafka를 3대로 구성하여 Kafka Cluster를 띄워야 했다. 로컬 환경에 포트와 데이터 경로만 바꿔 실행할 수도 있었지만, 실행/종료가 귀찮을 것이 분명했기 때문에 Kafka를 Docker Image로 만든 뒤 Docker Compose를 통해 띄울 수 있도록 만들어 보았다...
Airflow 기본 개념 - DAG와 Operator
Airflow 튜토리얼 실행해보기 Airflow 기본 개념 - DAG와 Operator 개요 Airflow에서 사용되는 개념들을 살펴본다. Airflow concepts 페이지를 참고하여 작성하였다. 개념 DAG DAG(Directed Acyclic Graph)는 관계와 의존성을 가진 작업들의 집합이다. DAG는 파이썬 파일로 정의...
Airflow 튜토리얼 실행해보기
Airflow 튜토리얼 실행해보기 Airflow 기본 개념 - DAG와 Operator 개요 Airflow를 사용할 일이 많아질 것 같아 사용법 정리 포스팅을 진행한다. Ubuntu 환경에서 설치, 운영, 활용 실습을 진행하려 했으나, 시간도 넉넉하지 않고 Airflow 자체를 설치하거나 운영하기보다는 활용하는 법을 손에 익히는 일이 ...
Java NIO - 1. 왜 자바의 IO 패키지는 느린가?
Java NIO - 1. 왜 자바의 IO 패키지는 느린가? Java NIO - 2. Buffers 개요 요즘 Druid, Kafka 등의 오픈소스를 보면 Java NIO를 사용하는 프로젝트들이 참 많다. Java NIO가 나온지도 오래되었는데 학부 때는 기존 IO 패키지에 있는 것만 배웠고, 업무 중에는 사실 I/O 관련 패키지를 직접...
LeetCode Weekly Contest 188
참여 후기 오늘은 Mock이 아니라 개별 문제를 풀었다. 개인 사정에 컨디션이 별로인 상태라서 Mock으로 Contest를 진행해버리면 더 Depressed 될 것 같아서.. Weekly Contest 188 1441. Build an Array With Stack Operations 문제 설명 목표 값이 저장되어 있는 배열 target과 정...
LeetCode Biweekly Contest 25
참여 결과 및 후기 Rank Score Finish Time Q1 Q2 Q3 Q4 1983 / 5867 12 1:14:28 0:03:23 0:35:04 0:54:28 ...
LeetCode Weekly Contest 187
참여 결과 및 후기 Rank Score Finish Time Q1 Q2 Q3 Q4 860 / 9245 12 8:09:00 7:36:30 7:40:23 8:09:00 ...
간단한 Kafka Producer를 만들고 동작원리를 알아보자
Kafka Producer 메시지 발행/구독 시스템에서 Producer는 메시지의 발행을 수행하는 컴포넌트이다. 이 글에서는 Kafka Client API를 사용하여 Kafka Producer를 만들어보고, 메시지가 실제로 어떤 과정을 거쳐 전달되는지 알아본다. build.gradle에 Kafka Client 의존성 추가하기 build.grad...