분류 전체보기 1306

[PostgreSQL] RETURNING - 변경된 데이터 반환

개요업무에서 PostgreSQL을 사용하게 되었는데, 쿼리문에서 RETURNING이라는 모르는 키워드를 확인해서 글을 작성한다. RETURNINGPostgreSQL의 RETURNING 절은 INSERT, UPDATE, DELETE와 같은 연산을 실행한 후 데이터를 가져올 수 있도록 한다. RETURNING을 사용하면 수정된 데이터를 수집하기 위해 추가적인 쿼리를 수행할 필요가 없고, 수정된 행을 안정적으로 식별할 수 있다. 때문에 성능 최적화, 코드 정리, 효율적인 데이터베이스 상호작용을 달성할 수 있다.일반적으로는 대상 테이블의 모든 열을 순서대로 선택하는 RETURINTG *을 사용한다.INSERT INTO users (firstname, lastname) VALUES ('Joe', 'Cool'..

Database 10:06:00

[Airflow] Connections이란

개요새로운 Airflow 환경을 사용하게 되었는데, 이번 환경에서는 Connections라는 기능을 사용하고 있어 어떤 기능인지 정리해보려고 한다. ConnectionsAirflow는 다른 시스템과 통신하기 위한 자격 증명 등을 저장하는 Connections라는 개념을 사용한다. 다른 시스템에서 데이터를 가져오거나 내보내기 위해 사용하며, 기본적으로 사용자 이름, 비밀번호, 호스트, 연결 시스템 유형, conn_id 등의 속성으로 구성되어 있다.Connection은 Web UI 또는 CLI를 통해 관리할 수 있고, Hooks나 jinja templetes을 통해 사용할 수 있다. Connections 생성이번 글에서는 Web UI를 통해 신규 Connection을 생성해본다. 연결할 시스템은 Post..

Apache Airflow 2025.08.25

[AWS] EventBridge 란

개요블로그 내에서 AWS EventBridge를 사용해 S3와 SQS를 연동하는 방법 자체는 다뤘는데, 정작 EventBridge가 어떤 서비스인지에 대해서는 다루지 못했다. 때문에 이번 글에서 AWS EventBridge와 관련 개념에 대해서 정리한다. AWS EventBridge이벤트를 사용해 애플리케이션 구성 요소를 연결하는 서버리스 서비스이벤트를 내보내고 응답함으로써 함께 동작하는, 느슨하게 결합된 소프트웨어 시스템인 이벤트 기반 아키텍쳐를 구축하는 데 사용한다. 이벤트가 발생할 때마다 또는 스케줄 설정에 따라 작업을 수행한다. 전송 방식EventBridge는 크게 이벤트 버스와 파이프라인 전송 방법을 사용한다. 이벤트 버스이벤트를 수신해 0개 이상의 대상에 전달하는 라우터자체 개발 애플리케..

AWS 2025.08.19

[AWS] S3에 EventBridge/Event Notification 중복 구성

개요이 블로그에서 S3와 SQS를 연동하는 방법으로 S3의 Event Notification을 사용하는 방법과 AWS EventBridge를 사용하는 방법을 다뤄보았다. S3 Event Notification의 제한 사항으로 인해 연동 방식을 EventBridge로 변경하고자 하는데, S3에 두 연동 방법을 동시에 사용할 수 있는지 확인해 본다. SQS 액세스 정책 변경기존에 EventBridge 연동 테스트를 위해 생성했던 SQS의 액세스 정책은 아래와 같은 기본값이었다.{ "Version": "2012-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__owner_statement", "Effect": "Al..

AWS 2025.08.13

[k8s] Helm Release 원복 현상

개요이전에 EKS 버전 업그레이드를 수행하면서 보안 이슈가 존재하던 nginx-ingress-controller 버전 업그레이드도 함께 진행했다. nginx-ingress-controller는 helm으로 설치를 했는데, 최근 확인해 보니 버전이 업그레이드 이전으로 돌아가있었다. 버전을 업그레이드하면 기존 버전으로 재배포가 이뤄지고 심지어는 Helm Release를 삭제해도 기존 버전으로 자동 배포가 이뤄지고 있었다. 원인을 파악하고 해결한 이력을 적어둔다. 원인 - HelmRelease 리소스 존재쿠버네티스 이벤트를 확인해보니 아래와 같은 이력이 존재하는 것을 확인했다.Normal ReleaseSynced helmrelease/nginx-ingress managed release 'nginx-..

[AWS] EventBridge - S3/SQS 연동 prefix 지정

개요2025.08.04-[AWS] EventBridge를 사용한 S3/SQS 연동에서 AWS EventBridge를 사용해 S3에 저장되는 데이터를 SQS에 전달하는 방법을 살펴보았다. 다만 앞선 글에서는 S3 버킷 전체에서 발생하는 이벤트를 모두 SQS로 전달했는데, 이번 글에서는 특정 prefix에 대해서만 전달하는 방법을 알아보려고 한다. 규칙 편집규칙의 이벤트 패턴을 아래와 같이 편집한다. object.key.prefix 부분이 S3 prefix를 지정하는 설정이다.아래 패턴은 prefix_test_1 이라는 경로에 저장되는 파일만 SQS로 전달하는 예시이다.{ "source": ["aws.s3"], "detail-type": ["Object Created"], "detail": { ..

AWS 2025.08.05

[AWS] EventBridge를 사용한 S3/SQS 연동

개요2022.07.08-[S3/SQS] S3에 생성된 데이터를 SQS에 쌓기에서 S3의 이벤트 알림 기능을 사용해 S3에 저장되는 파일 정보를 SQS에 전달했다. 하지만 S3 이벤트 알림은 치명적인 한계가 있었는데 바로 S3 버킷 당 설정할 수 있는 이벤트 알림의 개수가 100개로 제한되어 있다는 점이다.최근 S3에 저장되는 데이터 중 SQS로 연동해야 하는 prefix가 증가하면서 이 제한사항에 대한 타개책이 필요해졌는데, 확인해 보니 EventBridge라는 서비스로도 S3와 SQS를 연동할 수 있는 것 같다.이번 글에서 간단하게 연동 방법부터 알아보자. SQS 생성먼저 이벤트를 수신할 대상인 SQS부터 생성한다.일단 SQS는 이름만 지정하고 액세스 정책을 포함한 다른 항목은 전부 기본값으로 설정했..

AWS 2025.08.04

[Python] line_profiler - 성능 분석 도구

개요Python으로 개발하고 테스트를 수행하다 보면 개발한 코드의 성능을 확인하고 개선해야 할 필요가 있다. 이때 프로파일링을 활용할 수 있는데, 프로파일링이란 프로그램의 시간 복잡도, 메모리 정보, 함수 호출 주기, 빈도 등을 분석하는 것이다. Python에서는 cprofile, profile과 같은 모듈을 제공하고 있다. 이번 글에서는 Python 기본 모듈은 아니지만, 프로파일링 도구 중 하나인 line_profiler에 대해서 알아보고자 한다. line_profilerline_profiler는 함수의 줄 별 프로파일링을 수행하는 도구다. pip로 설치할 수 있고, Jupyter 노트북에서 매직 커멘드를 통해 활용할 수도 있다. 설치 명령어는 다음과 같다.pip install line_profil..

Python 2025.08.01

[Airflow] dag_id 중복 확인하기

개요Airflow에서 dag_id는 유일해야 하기 때문에 dag_id에 중복이 발생하면 의도하지 않게 동작할 수 있다. 하지만 Dag의 오류 사항을 확인할 수 있는 Web UI에서는 dag_id에 중복 발생 여부를 확인할 수 없어 디버깅하기 조금 힘든데, cli를 활용하면 바로 확인할 수 있는 것을 알게 되어 적어둔다. 확인 방법dag_id 중복 시 발생하는 예외는 AirflowDagDuplicatedIdException이다. 즉, 2024.11.30-[Airflow] Dag Import Error 확인하기에서 확인한 airflow cli의 list-import-errors 명령어를 사용하면 dag_id의 중복 발생 여부를 확인할 수 있다. 참고로 Github에서 명령어의 동작 방식을 확인해 보니 DA..

Apache Airflow 2025.07.16

[Azure] Azure Database for MySQL 개요

개요2025.07.08-[Azure] 데이터베이스 서비스 종류와 구분에서 Azure 데이터베이스에 대해 대략적으로 살펴보았는데, 이번 글에서는 Azure가 MySQL 데이터베이스 엔진을 제공하는 서비스인 Azure Database for MySQL에 대해서 알아보려고 한다.하나의 제품에서 다양한 데이터베이스 엔진을 지원하는 AWS RDS와 다르게, Azure의 경우에는 데이터베이스 엔진마다 별개의 제품을 제공하고 있다. DBaaSDBaaS (Database as a Service)란 가상 머신이나 인프라를 관리할 필요 없이 데이터베이스를 설정하고 접근할 수 있도록 하는 서비스이다. PaaS(Platfrom as a Service)에 한 범주에 속하며, Azure Database for MySQL는 DB..

Azure 2025.07.15