전체 글 79

[Angular] Directive란?

Angular를 사용하다 보면 컴포넌트 뿐만 아니라 디렉티브(Directive)라는 개념도 자주 등장하는데, 디렉티브는 HTML 요소에 새로운 동작을 추가하거나 동적으로 스타일을 변경하는 데 유용하게 사용됩니다.디렉티브(Directive)란?디렉티브(Directive)는 Angular가 HTML 요소의 동작을 확장하거나 조작할 수 있도록 하는 명령입니다. Angular 디렉티브는 크게 구조적 디렉티브(Structural Directive)와 속성 디렉티브(Attribute Directive)로 나눌 수 있습니다.구조적 디렉티브: HTML의 구조에 영향을 주는 디렉티브로, * 표시가 붙습니다. 예를 들어, *ngIf는 조건에 따라 요소를 추가하거나 삭제하는 구조적 디렉티브입니다.속성 디렉티브: HTML 요..

FE/Angular 2024.11.05

[Postgresql] Open API 데이터 ETL 플로우

Open API 데이터를 추출하고, 원하는 데이터 형식으로 변환하고, 그것을 데이터 베이스에 적재하는 ETL 플로우에 대해 알아보겠습니다. 저장할 DB는 PostgreSQL을 사용하였습니다. PostgreSQL을 선택한 이유?MLOps 프로젝트의 기상 데이터 적재와 관리 용도로 사용할 데이터베이스(DB)로 데이터 양, 접근 방식, 쿼리 성능 등을 고려하여 선택하였습니다.10년치 기상 데이터라면 수십 GB 이하로 예상이 되기 때문에 오픈소스인 PostgreSQL이나 MySQL으로도 충분히 감당할 수 있다고 생각하였습니다. 또한 구조화된 스키마를 가지고 있어, 각 지역 및 날짜별 기상 데이터를 정리할 수 있을 것이라고 판단했습니다. 그리고 PostgreSQL이 최근 각광받고 있다는 점때문에 PostgreSQ..

Projects/ClimaML 2024.11.04

[API] 공공 데이터 포털에서 기상 데이터 받아오기

공공 데이터 포털에서 기상 데이터를 fetch 하는 방법에 대해 알아보겠습니다. 공공 데이터 포털은 기상 데이터 외에도 교육, 국토 관리, 공공 행정, 재정 금융, 산업 고용 등 우리나라의 많은 데이터들을 api 외에도 파일 데이터로 제공해주는 사이트입니다. https://www.data.go.kr/index.do 공공데이터 포털국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datasewww.data.go.kr 제가 필요한 데이터는 기상청_지상(종관, ASOS) 일자료 조회서비스입니다.https://www.data.go.kr/tcs/dss/selectApiDataDeta..

Projects/ClimaML 2024.11.04

[Postgresql] Linux(Ubuntu)에서 설치

리눅스에서는 apt 패키지 관리자를 통해 PostgrSQL을 설치할 수 있습니다. 1. 터미널에서 PostgreSQL을 설치합니다.sudo apt updatesudo apt install postgresql postgresql-contrib 2. PostgreSQL 설치가 완료되면 서비스가 자동으로 시작되며, 확인하기 위해서는 다음의 명령어를 입력합니다.sudo systemctl status postgresql상태 출력 예시active (running): PostgreSQL 서비스가 정상적으로 실행 중.inactive (dead): 서비스가 실행되지 않음.failed: 서비스가 오류로 인해 중단됨. 3. PostgreSQL에 접속합니다.sudo -i -u postgrespsqlsudo -i -u post..

Projects/ClimaML 2024.11.03

[Airflow] XCom 사용하기

Airflow에서는 DAG 내의 여러 Task 간에 데이터를 주고받을 수 있도록 XCom(Cross Communication) 기능을 제공합니다. XCom은 작은 크기의 데이터를 공유하기 위한 용도로 설계되었으며, Task 간에 값을 전달하거나 처리 결과를 공유하는 데 유용합니다. 주로 1GB 미만의 데이터에 적합하며, 대용량 데이터는 AWS S3, HDFS 등의 외부 솔루션을 통해 관리하는 것이 좋습니다.XCom이란?XCom은 DAG 내에서 Task 간에 데이터를 주고받기 위한 기술로, Task의 중간 결과를 다른 Task의 입력으로 사용할 수 있게 해줍니다. XCom에 저장된 데이터는 Airflow의 메타DB의 xcom 테이블에 저장되며, 이를 통해 여러 Task 간에 값을 전달할 수 있습니다.XCo..

MLOps/Airflow 2024.11.03

[Airflow] Macro 변수 사용

Airflow에서는 매크로 변수(macros)를 사용해 DAG 실행 시점에 필요한 날짜 연산을 동적으로 수행할 수 있습니다. 매크로 변수는 Airflow의 템플릿 엔진(Jinja)을 통해 작업에 필요한 시간 계산을 간편하게 해주는 유용한 도구입니다. 매크로 변수를 사용하면 복잡한 날짜 계산이 필요한 작업도 쉽게 설정할 수 있으며, 데이터 처리 주기에 맞춰 시작일과 종료일을 유연하게 설정할 수 있습니다.매크로 변수란?Airflow의 매크로 변수는 템플릿에서 다양한 날짜 연산을 지원하는 도구로, Python의 datetime 및 dateutil 라이브러리에 익숙하다면 더욱 효과적으로 사용할 수 있습니다. 주요 매크로 모듈은 다음과 같습니다:macros.datetime: 날짜와 시간 처리를 위한 모듈macro..

MLOps/Airflow 2024.11.03

[Airflow] Jinja 템플릿 활용

Airflow에서는 DAG 작성 시 Jinja 템플릿을 통해 특정 파라미터에 동적으로 값을 할당할 수 있습니다. Jinja는 주로 웹 프레임워크에서 HTML 템플릿 렌더링에 사용되는 엔진이지만, Airflow에서는 SQL, Bash 스크립트 등 다양한 작업에서 파라미터 값 설정을 유연하게 해주는 역할을 합니다. 이 글에서는 Jinja 템플릿이 무엇인지, Airflow에서 어떤 식으로 활용되는지 구체적으로 알아보겠습니다.Jinja 템플릿이란?Jinja 템플릿은 문서에서 특정 양식으로 작성된 값을 런타임에 실제 값으로 치환해주는 처리 엔진입니다. Python 기반의 여러 프레임워크에서 지원되며, 대표적으로 Flask나 Django에서 HTML 템플릿을 화면에 렌더링할 때 사용됩니다. Airflow에서는 SQ..

MLOps/Airflow 2024.11.03

[Airflow] op_args와 op_kwargs 사용하기

Airflow는 데이터 파이프라인 작업을 DAG(Directed Acyclic Graph)로 정의하여 작업 순서를 지정할 수 있습니다. 이때 PythonOperator를 통해 Python 함수를 task로 사용할 수 있는데, 이 함수에 인자를 전달할 때 op_args와 op_kwargs 파라미터를 사용합니다.op_args: 위치 인자 전달op_args는 위치 기반 인자(positional arguments)를 전달하기 위한 리스트 형태의 파라미터입니다. 이를 통해 함수에 순서대로 값을 전달할 수 있습니다. 예시def my_task_with_args(arg1, *args): print(f"arg1: {arg1}") print(f"Additional args: {args}") PythonOp..

MLOps/Airflow 2024.11.03

[Python] 함수 파라미터 *args와 **kwargs

* (unpacking operator, 언패킹 연산자)의 역할*과 **은 단순히 변수 이름 앞에 붙는 기호가 아닌, 언패킹 연산자로 작동합니다. * : 위치 인자를 튜플로 모아줍니다.** : 키워드 인자를 딕셔너리로 모아줍니다.1. *args: 여러 개의 위치 인자 받기*args는 함수에 여러 개의 위치 인자를 넘길 때 사용합니다. *args로 받은 인자들은 튜플에 저장되며, 순서대로 접근할 수 있습니다.*args에서 'args'는 관례일 뿐 다른 이름을 사용해도 됩니다.def add_numbers(*numbers): result = 0 for num in numbers: result += num return resultprint(add_numbers(1, 2, 3)) #출력 6pr..

[Airflow] @task 데코레이터 사용하기

Airflow에서는 파이썬 함수를 간단히 데코레이터를 통해 task로 변환할 수 있는 @task 데코레이터를 제공합니다. 이를 통해 PythonOperator를 직접 정의하는 것보다 효율적이고 간결하게 DAG 내의 task를 작성할 수 있습니다.데코레이터(Decorator)란?데코레이터는 함수를 '감싸서' 기능을 추가하는 파이썬 기능입니다. 함수를 인자로 전달하거나 함수 내부에 함수를 정의하는 것이 가능하기 때문에, 함수를 쉽게 확장할 수 있습니다. @데코레이터명으로 사용하며, Airflow에서는 이를 활용해 task를 정의합니다. Airflow에서의 @task 데코레이터 활용하기Airflow의 @task 데코레이터를 사용하면, 파이썬 함수 정의만으로 손쉽게 task를 생성할 수 있습니다. 이는 Airf..

MLOps/Airflow 2024.10.31