오블완 21

[Airflow] Provider 패키지 설치

Airflow에서 사용 가능한 Providers는 UI의 "Connections" 섹션에서 확인할 수 있습니다. 만약 필요한 Provider가 없다면 설치해야 합니다.설치 방법1. 도커 파일 생성Base Image로 사용중이던 airflow version의 이미지를 입력합니다.원하는 provider 패키지를 입력해줍니다. 2. 도커 이미지 빌드sudo docker build -t airflow_custom . 3. docker-compose.yaml 수정 airflow 서비스의 이미지를 airflow_custom으로 변경합니다. 4. 컨테이너 재실행docker-compose downdocker-compose up 5. Provider 확인Airflow UI의 Admin > Providers에서 설치된 P..

MLOps/Airflow 2024.11.17

2024 AWS Innovate 발표

2024 AWS Innovate - AI/ML & Data EditionAWS Innovate - AI/ML & Data Edition AWS Innovate - AI/ML & Data Edition본 온라인 컨퍼런스는 한국어를 비롯해 영어, 인도네시아어, 일본어 강연이 제공되며, 다른 언어 강연은 한글 자막이 제공되지 않으므로 한국 청중께서는 컨퍼런스 당일 한국어 강연을 선택하aws.amazon.comContentsAWS Innovate의 발표 주제로, SageMaker를 이용한 자동화 파이프라인을 구축을 선정하였습니다. 배경 및 필요성Trouble지금까지는 Data 전처리부터 Deploy까지 각 단계를 담당자가 순차적으로 처리하며, 잘못된 의사소통과 지연 시간으로 인해 결과물 확인에 많은 시간이 소요..

ETC 2024.11.16

[Angular] Renderer2를 사용한 동적 사이드바 및 팝업 전환 Directive 구현

Angular에서 Renderer2와 ApplicationRef를 활용해 화면에 동적으로 생성되는 사이드바와 팝업 모드를 전환할 수 있는 기능을 구현해 보겠습니다. 이번 글에서는 사용자가 사이드바를 열고 닫을 수 있으며, 사이드바를 드래그하여 팝업 모드로 전환하거나 다시 사이드바로 돌아가는 방법을 다룹니다. 이를 통해 Angular의 커스텀 디렉티브와 DOM 조작을 효과적으로 사용하는 방법을 알아보겠습니다.구현 목표사이드바 열기와 닫기: 클릭 시 사이드바가 화면 오른쪽에서 열리고, 다시 클릭하면 닫히도록 합니다.팝업 전환: 드래그하여 화면 중간으로 이동하면 사이드바가 팝업 모드로 전환되도록 합니다.사이드바 복귀: 팝업을 오른쪽으로 드래그해 특정 위치에 오면 다시 사이드바 모드로 돌아갑니다.주요 기술 요소..

FE/Angular 2024.11.15

[Airflow] Docker Compose 파일 해석

Docker Compose의 역할과 사용 방법Docker Compose의 목적Docker Compose는 다중 컨테이너를 생성하고 관리할 때 효율성을 제공합니다. 예를 들어, 데이터베이스, 웹서버, 백엔드 등 여러 구성 요소를 하나의 애플리케이션으로 묶어야 할 때 유용합니다. Compose 파일 하나에 모든 컨테이너의 설정을 정의하고, 한 번의 명령어로 일괄적으로 컨테이너를 관리할 수 있습니다.Docker Compose 작성 방법Docker Compose 설정 파일은 docker-compose.yaml이라는 이름으로 작성합니다. 이 파일에 각 컨테이너의 이미지, 환경 변수, 볼륨, 네트워크, 의존성 등을 YAML 형식으로 정의할 수 있습니다.Docker Compose 서비스 시작 및 중지설정 파일이 있는..

MLOps/Airflow 2024.11.14

[Airflow] DAG 실행과 스케줄링

1. DAG 파일 로드 및 파싱Airflow에서 모든 워크플로는 DAG(Directed Acyclic Graph) 형태로 정의됩니다. 이 DAG은 Python 코드로 작성되며, 작업의 순서와 의존성을 설정하는 방향성 비순환 그래프입니다. Airflow의 스케줄러(Scheduler)는 설정된 디렉토리를 주기적으로 확인하여 새로 생성되거나 수정된 DAG 파일이 있는지 감지합니다.(이로 인해 코드를 작성할 때 메모리 효율적으로 작성을 해야 함)스케줄러는 DAG 파일을 로드하고 파싱하여 DAG 객체를 생성하며, 이를 메타데이터 데이터베이스에 저장합니다. 이때 DAG에 정의된 모든 작업(Task)과 그 의존 관계도 함께 등록됩니다. 덕분에 Airflow는 DAG의 실행 시점을 정확히 파악하고 DAG이 완료될 때까..

MLOps/Airflow 2024.11.13

[Angular] GraphQL과 gql을 사용한 서버 요청

GraphQL의 개념부터 gql 태그를 사용해 클라이언트에서 서버로 데이터를 요청하는 방식까지 단계별로 한번 알아보겠습니다.1. GraphQL이란?GraphQL은 페이스북에서 개발한 데이터 질의 언어로, 클라이언트가 필요한 데이터의 형태를 지정하여 서버로 요청하고 원하는 응답을 받을 수 있게 합니다. GraphQL은 주로 REST API의 단점을 해결하기 위해 만들어졌습니다. 기존 REST API와 달리, 클라이언트는 한 번의 요청으로 필요한 데이터만 선택해서 가져올 수 있어 데이터 효율성을 크게 높일 수 있습니다.GraphQL의 주요 개념Query: 클라이언트가 서버에 데이터를 요청하는 방식입니다. 필요한 데이터의 필드만 선택해서 요청할 수 있습니다.Mutation: 서버의 데이터를 변경하기 위한 요청..

FE/Angular 2024.11.12

[Airflow] Custom Operator 만들기

Custom Operator가 필요한 이유기본적으로 Airflow에는 PythonOperator, BashOperator, EmailOperator 등 자주 사용하는 작업에 대한 Operator가 준비되어 있지만, 모든 상황을 커버하지는 않습니다. 예를 들어, 외부 API 호출 후 데이터를 처리하는 작업이나 복잡한 데이터 파이프라인을 위한 연산이 필요할 때는 Custom Operator가 더욱 적합합니다.Custom Operator를 통해 우리는 다음과 같은 이점을 얻을 수 있습니다.코드 재사용성: 특정 비즈니스 로직을 담은 Operator를 재사용하여 일관성 있게 워크플로우를 구축할 수 있습니다.코드 간소화: DAG에서 반복적인 코드를 줄이고, 명확한 역할을 가진 Operator를 만들어 가독성을 높일..

MLOps/Airflow 2024.11.11

[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

[Angular] @ViewChild 알아보기

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

FE/Angular 2024.11.08