분류 전체보기 1395

[github] act - 로컬 Github Actions 테스트

개요최근 github 상에서의 CI/CD 도구인 Github Actions을 다루게 되었다. 다만 Github Actions의 실제 동작을 테스트하려면 변경 사항을 계속 커밋/푸시해야 한다는 불편함이 있다. 관련해서 해결 방법이 있나 찾아보다가 로컬 환경에서 Github Actions 동작을 테스트할 수 있도록 도와주는 도구가 있다는 것을 알게 되었다. 이번 글에서는 Github Actions 테스트 도구인 act에 대해서 정리한다. actact는 Github Actions을 로컬 환경에서 실행할 수 있도록 도와준다. act를 사용하면 테스트를 할 때마다 변경점을 커밋/푸시를 하지 않고 로컬 환경에서 동작을 테스트해볼 수 있다. 인터넷을 사용하지 않고 기본적인 구문을 테스트할 수 있고, 계정에 할당된 ..

Git | GitLab 10:22:58

[Docker] ERROR: failed to build: Multi-platform build is not supported for the docker driver.

개요Docker 이미지를 빌드하려고 했더니 아래와 같은 오류가 발생하면서 빌드에 실패했다.원인을 알아보고 문제를 해결해 본다.참고로 Make 명령어로 빌드를 수행했는데, 실행 명령어는 다음과 같다.docker buildx build \ -t dkr.ecr.ap-northeast-2.amazonaws.com/datalake-airflow:$(NOW) \ -t dkr.ecr.ap-northeast-2.amazonaws.com/datalake-airflow:latest \ --platform=linux/amd64,linux/arm64 \ ./airflow/ \ --push \ --no-cache 원인빌드 시 --platform 매개변수를 이용해 멀티 플랫폼 빌드를 시도하는데..

Docker 2026.01.12

[Debezium] io.debezium.DebeziumException: Creation of replication slot failed

개요Kafka, Debezium을 이용해서 CDC를 구현하고자 커넥터를 생성했는데 아래와 같은 오류가 발생하면서 커넥터가 정상적으로 동작하지 않았다.아래 내용은 커넥터의 status를 확인한 결과다.{ "name": "etl-metadata-connector", "connector": { "state": "RUNNING", "worker_id": "172.21.0.3:8083" }, "tasks": [ { "id": 0, "state": "FAILED", "worker_id": "172.21.0.3:8083", "trace": "io.debezium.DebeziumException: Creation of replication slot failed..

Apache Kafka 2026.01.09

[PostgreSQL] Replica Identity

개요2026.01.06-[PostgreSQL] 복제 (Replication)에서 Logical Replication에서 Replica Identity가 필요하다는 것을 알게 되었다. 이번 글에서는 Replica Identity 설정값과 조회 방법 등에 대해서 좀 정리한다. Replica Identitypublication이란 테이블 또는 테이블 그룹에서 생성된 변경 사항의 집합이며, 변경 집합 또는 복제 집합이라고 할 수 있다. publication은 스키마와 다르며 테이블 접근 방식에 영향을 미치지 않고, 하나의 테이블에 여러 publication을 추가할 수 있기도 하다. 그리고 게시된 테이블은 갱신하거나 삭제할 행을 식별할 수 있도록 Replica Indentity가 구성되어 있어야 한다.Repl..

Database 2026.01.08

[PostgreSQL] 복제 (Replication)

개요PostgreSQL에서 발생하는 변경점에 대한 CDC를 구성하다 공식 문서 안내에 따라 테이블에 아래와 같은 설정을 주게 되었다.ALTER TABLE table_name REPLICA IDENTITY FULL;덕분에 의도대로 동작하는 것을 좋지만 해당 설정이 어떤 의미인지를 몰라서 이번 기회에 정리해보려고 한다. 복제 (Replication)데이터베이스에서 복제란 데이터를 한 인스턴스에서 다른 인스턴스로 복사하는 것을 말한다.동일한 데이터베이스를 여러 대 운영함으로써 부하를 분산하거나, 장애 발생 시의 Failover를 통한 고가용성, 데이터 백업 등을 위해 사용한다. 일반적으로 데이터베이스 복제는 Master-Slave 관계(Primary-Replica)에서 많이 사용된다. WALPos..

Database 2026.01.07

[Airflow] Hook - 외부 연동 인터페이스

개요2025.08.25-[Airflow] Connections이란에서 Airflow 상에서 외부와 연동할 때 사용하는 연결 정보를 저장하는 개념인 Connections를 살펴보았었다. 그리고 저장한 연결 정보를 사용하는 방법은 따로 정리를 안 해두었었는데…… 보통 Hook으로 많이 사용하는 것 같다.이번 글에서는 Connections를 활용하는 Hook에 대해서 적어두려고 한다. HookAirflow에서 Hook이란 외부 플랫폼, 데이터베이스에 대한 고수준 인터페이스다. API를 호출하거나 특정한 라이브러리를 사용하는 저수준 코드를 작성할 필요 없이 외부 시스템과 연동할 수 있도록 도와준다.Hook은 Connections으로부터 자격 정보를 얻어서 외부 시스템과 연동한다. 모든 Hook은 BaseHo..

Apache Airflow 2026.01.06

[Python] requests links - link 헤더 사용하기

개요많은 서버들이 자신의 데이터를 효율적으로 제공하기 위해 페이지네이션을 사용한다. 일반적으로는 쿼리 매개변수를 사용해서 제공하는데, 일부 서비스의 경우에는 HTTP 응답 내 헤더에 다음 페이지를 가리키는 링크를 제공한다. 대표적인 서비스로는 Github가 있다.이번 글에서는 Python으로 HTTP 응답을 처리할 때 헤더 내 Link 헤더를 효과적으로 파싱 하는 방법을 적어둔다. 응답 예시예로 들어 requests 라이브러리 공식 문서에서 기재하고 있는 URL에 요청을 날려보겠다.import requestsurl = "https://api.github.com/users/kennethreitz/repos?page=1&per_page=10"response = requests.get(url)print(re..

Python 2026.01.05

[Kafka] debezium 이란

개요현재 담당하고 있는 데이터 파이프라인에서는 Kafka에 debezium(데베지움)이라는 솔루션을 사용해 데이터베이스에 발생한 변경 사항을 실시간으로 처리할 수 있도록 구성해 둔 상태다. 이번 글에서는 debezium에 대해서 간단히 정리해두려고 한다. debeziumdebezium이란, 데이터베이스의 변경 사항을 캡쳐해캡처해 애플리케이션이 변경 사항을 확인하고 대응할 수 있도록 하는 분산 서비스 집합으로 각 데이터베이스 테이블의 모든 행 수준 변경 사항을 변경 이벤트 스트림에 기록한다. 쉽게 이해하기 좋은 말로 설명하면 데이터베이스에서 INSERT, UPDATE, DELETE 등이 발생하는 경우 이를 감지하고 그 변경 내용을 캡처해서 이벤트로 변환하는 도구이다. 즉, CDC를 구현한다고 정리할 수 ..

Apache Kafka 2026.01.02

CDC (Change Data Capture) 란

CDC CDC (Change Data Capture) 란 데이터베이스에서 발생하는 데이터 변경(삽입, 수정, 삭제)을 실시간 또는 준실시간으로 감지하고 추적하여 다른 시스템으로 전달하는 기술 및 데이터 통합 패턴을 의미한다.전체 데이터 대신 변경된 데이터만 처리하기 때문에 시스템 부하를 줄이면서 데이터의 실시간 동기화, 복제, 분석 등에 활용할 수 있어 데이터 마이그레이션, 실시간 DW 구축 등에 필수적이다. 방법론CDC를 구현하는 방법은 여러 가지가 존재한다. 로그 기반 변경 데이터 캡처(Log-based Change Data Capture)데이터베이스가 변경 사항을 기록하는 트랜잭션 로그를 사용해 변경 사항을 추적하여 처리한다.로그 기반 방식은 데이터베이스 처리 속도가 느려지면 안 되는 시스템에 적..

Database 2025.12.31

[Kafka] UI for Apache Kafka

개요Apache Kafka는 대표적인 데이터 처리 플랫폼이지만, 클러스터 상태와 데이터 흐름을 CLI로 파악하기 때문에 직관적으로 상태를 확인하기 어렵다는 단점이 있었다. 이러한 번거로움을 해결하고자 등장한 UI for Apache Kafka는 Provectus가 개발한 오픈소스 웹 인터페이스로, 직관적인 UX와 강력한 기능 덕분에 전 세계적으로 가장 널리 사용되는 카프카 관리 도구로 자리 잡았다.이번 글에서는 UI for Apache Kafka에 대해서 소개하려고 한다. ⚠️ 참고UI for Apache Kafk는 현재 더 이상 유지보수되고 있지 않는 상태로, 필요한 경우 포크 버전인 Kafbat UI 사용을 고려할 필요가 있을 것 같다. UI for Apache Kafka UI for Apache ..

기타 2025.12.30