전체 글 79

[Airflow] SimpleHttpOperator에 대해 알아보기

Airflow Operator와 Provider OperatorAirflow 오퍼레이터는 DAG의 작업을 정의하는 빌딩 블록입니다. 오퍼레이터는 다음과 같은 범주로 나뉩니다:액션 오퍼레이터: 특정 작업을 수행 (예: BashOperator, PythonOperator).전송 오퍼레이터: 시스템 간 데이터 이동 (예: S3ToRedshiftOperator).센서 오퍼레이터: 특정 조건을 기다림 (예: S3KeySensor).https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/operators.html Operators — Airflow Documentation airflow.apache.orgProvider프로바이더는 Airflow의 기..

MLOps/Airflow 2024.11.10

[Airflow] Trigger Rule, Task Group, Edge Label, DAG 간 의존성 관리

Trigger Rule: 상위 태스크의 상태에 따라 하위 태스크의 실행을 제어합니다.Task Group: 태스크를 논리적으로 조직하여 가독성을 높이고 유지 보수를 쉽게 합니다.Edge Label: 태스크 간 의존성을 주석 처리하여 DAG 시각화를 더 명확히 합니다.DAG 간 의존성 관리: TriggerDagRunOperator와 ExternalTaskSensor를 사용하여 여러 DAG 간의 의존성을 관리합니다.Airflow에서의 트리거 규칙 이해하기Trigger Rule이란?Airflow에서 Trigger Rule은 상위 태스크의 상태에 따라 하위 태스크가 실행될지 여부를 결정하는 규칙입니다. 기본적으로는 모든 상위 태스크가 성공해야 하위 태스크가 실행됩니다(all_success). 하지만 상위 태스크 ..

MLOps/Airflow 2024.11.10

[Angular] RxJS에서 Observables와 Subjects 사용하기

RxJS는 Angular 개발자에게 비동기 데이터 처리의 강력한 도구를제공합니다. 특히, Angular에서 자주 사용하는 Observable과 Subject는 데이터 흐름과 상태 관리를 쉽게 해줍니다. 이번 글에서는 RxJS의 기본 개념부터 Subject의 다양한 유형과 활용 방법까지 알아보겠습니다.1. RxJS의 기본 개념RxJS는 비동기 데이터 흐름을 관리하는 라이브러리입니다. Angular에서 비동기 데이터를 다루거나 이벤트 스트림을 처리할 때 유용하게 사용됩니다.1.1 Observable (옵저버블)정의: 옵저버블은 시간 경과에 따라 발생하는 데이터 흐름을 표현하는 객체입니다.특징: 옵저버블을 구독(subscribe)하면 데이터가 방출될 때마다 값을 받을 수 있습니다.import { Observa..

FE/Angular 2024.11.09

[Airflow] BranchPythonOperator로 Task 분기 처리하기

데이터 파이프라인을 구성할 때, 상황에 따라 특정 Task만 실행해야 하는 경우가 자주 발생합니다. Airflow에서는 BranchPythonOperator를 사용하여 Task의 분기 처리를 할 수 있고 @task.branch 데코레이터와 BaseBranchOperator를 상속하여 직접 커스터마이징하는 방법도 존재합니다.이 글에서는 세가지 방법을 사용하여 Task를 분기하는 방법을 코드 예제와 함께 설명하겠습니다.BranchPythonOperator로 Task 분기 처리하기BranchPythonOperator는 특정 조건에 따라 실행할 Task의 ID를 리턴하여 분기 처리를 수행합니다. 이때, 함수의 리턴값이 분기처리의 핵심입니다. BranchPythonOperator에서 리턴된 값이 후속 Task의 ..

MLOps/Airflow 2024.11.08

[Angular] @ViewChild 알아보기

Angular에서 컴포넌트 간의 데이터와 메소드를 공유하는 방법은 여러가지가 있지만, 부모 컴포넌트가 자식 컴포넌트를 제어해야 하는 상황에서는 @ViewChild 데코레이터가 가장 효율적입니다. @ViewChild를 사용하면 부모 컴포넌트가 자식 컴포넌트의 특정 속성, 메소드, 또는 DOM 요소에 접근할 수 있어 다양한 상황에서 유용하게 활용됩니다.@ViewChild란?@ViewChild는 자식 컴포넌트나 특정 DOM요소에 대한 참조를 가져와 부모 컴포넌트에서 해당 요소를 직접 제어할 수 있도록 해주는 Angular의 데코레이터입니다. 템플릿에서 자식 컴포넌트나 HTML 요소를 찾고, JS에서 이를 참조하여 다양한 작업을 수행할 수 있습니다.공식문서 ViewChild: https://angular.dev..

FE/Angular 2024.11.08

[Airflow] 전역 변수 Variable 이용하기

Airflow의 XCom은 특정 DAG 내부의 Task 간 데이터 공유에 적합하지만, 전역적으로 DAG 간에 데이터를 공유하기 위해서는 Variable을 사용할 수 있습니다. Variable은 모든 DAG에서 접근 가능한 전역 변수로, 필요에 따라 설정된 값을 DAG에서 불러와 사용하게 합니다.Variable 설정하기1. Airflow 서비스의 Admin 탭에 들어간 뒤, Variables를 선택합니다. 2. + 버튼을 클릭합니다. 3. Variable로 지정할 Key와 Value를 적어주고 Save를 클릭합니다. Description은 optional입니다. 4. 저장된 Variable을 확인합니다.Variable 변수 사용Variable 설정 및 사용Variable은 메타DB에 저장되며, Jinja ..

MLOps/Airflow 2024.11.07

[Airflow] 서로 다른 Operator 간 XCom 사용 (Python, Bash, Email)

Airflow에서는 각 Operator가 작업의 중간 결과나 데이터를 공유할 때 XCom(Cross-Communication)을 사용합니다. XCom을 활용하면 서로 다른 Operator 간에도 데이터를 전달할 수 있어 데이터 처리의 유연성을 높일 수 있습니다. 여기서는 Python Operator에서 생성한 데이터를 Bash Operator에서 활용하고, 반대로 Bash Operator에서 생성한 데이터를 Python Operator로 전달하는 방법과 Python Operator에서 생성한 데이터를 Email Operator에 전달하여 이메일에 값이 잘 전달되었는지 확인하는 과정을 가지겠습니다. Python Operator → Bash Operator로 XCom 전달아래 코드는 Python Operat..

MLOps/Airflow 2024.11.07

[Angular] ngComponentOutlet과 ngSwitchCase로 동적 컴포넌트 표시

웹 애플리케이션을 개발하다 보면, 사용자의 선택에 따라 다른 컴포넌트를 보여줘야 하는 상황이 있습니다. 예를 들어, 사용자가 선택한 메뉴에 따라 페이지 내용이 바뀌거나, 특정 조건에 따라 다른 컴포넌트를 로딩하는 것이 필요할 때가 많습니다. Angular에서는 ngComponentOutlet과 ngSwitchCase를 사용하여 이러한 기능을 쉽게 구현할 수 있습니다.ngComponentOutlet과 ngSwitchCase란?ngComponentOutlet: 컴포넌트 클래스를 직접 참조하여 동적 컴포넌트를 로드할 수 있게 하는 Angular 디렉티브입니다. 이 디렉티브를 사용하면, 코드에서 컴포넌트를 선택하고 해당 위치에 동적으로 삽입할 수 있습니다.ngSwitchCase: 여러 옵션 중에서 조건에 맞는 ..

FE/Angular 2024.11.07

[Airflow] BashOperator와 XCom을 활용하는 방법

Airflow에서 BashOperator는 유용하며, PythonOperator와 마찬가지로 XCom과 함께 태스크 간의 데이터를 주고 받아, 워크플로우 내에서 데이터를 효율적으로 활용할 수 있습니다. 이번 글에서는 BashOperator와 XCom의 상호작용 방식을 설명하고, BashOperator에서 데이터를 주고 받는 여러 방법을 말씀드리겠습니다. BashOperator에서 XCom 사용하기BashOperator는 bash_command나 env 파라미터에 템플릿 문법을 사용하여 데이터를 주고받을 수 있습니다. 이 과정에서 XCom을 활용해 다른 태스크로부터 데이터를 가져오거나, 데이터를 전달하는 작업이 가능합니다.기본 개념: XCom Push와 PullXCom은 Airflow 태스크 간에 데이터를..

MLOps/Airflow 2024.11.06

[Angular] Popup Directive

Angular 애플리케이션을 개발하다 보면 종종 모달이나 팝업과 같은 사용자 인터페이스 요소를 필요로 할 때가 있습니다. 오늘은 클릭 이벤트로 열고 닫을 수 있으며, 화면 중앙에 나타나고 드래그로 위치를 이동할 수 있는 팝업을 만드는 PopupDirective를 구현해보겠습니다.PopupDirective의 기본 구조먼저, PopupDirective의 구조를 살펴보겠습니다. 이 디렉티브는 @Directive 데코레이터를 통해 정의되었으며, standalone 속성을 true로 설정하여 독립적인 컴포넌트로 사용할 수 있게 합니다.@Directive({ selector: '[appPopup]', standalone: true,})export class PopupDirective { @Input('appP..

FE/Angular 2024.11.05