목록분류 전체보기 (76)
코딜기
가변 파라미터란?Java에서 메서드를 호출할 때 파라미터 입력을 유연하게 해주는 파라미터입니다.매서드 호출 시 전달되는 인자의 개수를 동적으로 변경할 수 있습니다.콤마로 나열되어 들어오는 여러 개의 값을 배열로 묶어서 내부로 전달합니다.가변 파라미터는 반드시 메서드의 마지막 파라미터여야 합니다.즉, 다른 파라미터가 있으면, 가변 파라미터는 마지막에 와야 합니다.콤마로 나열하기 때문에 맨 뒤가 아니면 끝이 어디인지 모르기 때문입니다.가변 파라미터 사용static int calcNumberTotal(int... nums) { int total = 0; for(int i : nums) { total += i; } return total;}입력받은 숫자의 누적 합을 구하는 메서드를 만들었고, 매개변수로 i..
Airflow Jinja 템플릿이란?파이썬에서 Jinja 템플릿을 사용하는 것과 비슷하게 Jinja 템플릿을 사용해서 간단하게 데이터를 넘겨줄 수 있습니다.오퍼레이터 파라미터 입력 시 중괄호 2개를 이용하면 Airflow에서 기본적으로 제공하는 변수들을 치환된 값으로 입력할 수 있습니다. (ex: 수행 날짜, DAG_ID)모든 오퍼레이터, 모든 파라미터에 Template 변수 적용이 가능한 것은 아니기 때문에 Airflow 문서에서 어떤 파라미터에 Template 변수 적용 가능한지 확인이 필요합니다.https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/index.html가장 많이 사용하는 Airflow 템플릿 변수dat..
Python Jinja 템플릿이란?문서(파일)에서 특정 양식으로 작성된 값을 런타임시 실제 값으로 치환해 주는 처리 엔진입니다.템플릿 엔진은 여러 솔루션이 존재하며 그중 Jinja 템플릿은 파이썬 언어에서 사용하는 엔진입니다.파이썬 기반 웹 프레임워크인 Flask, Django, Airflow에서 주로 사용됩니다.Jinja 템플릿 사용하기아래와 같이 템플릿을 만들어주면, 만든 양식에 맞게 호출하여 간단하게 사용할 수 있습니다.
Task Decorator란?파이썬에서 데코레이터를 사용하는 것과 비슷하게 데코레이터를 사용해서 간단하게 Task를 만들 수 있습니다.데코레이터를 사용하면 PythonOperator를 import 할 필요가 없습니다.실행시키는 코드(py_task1 >> py_task2)를 작성할 필요가 없습니다.Task Decorator 사용코드 자체가 간결해진 것을 확인할 수 있습니다.
Email Operator란?이메일을 전송하는 오퍼레이터입니다.이메일 전송을 위해 사전 세팅 작업이 필요합니다.구글 메일 서버를 사용하기 때문에 G-mail에서 사전 세팅 작업이 필요합니다.Docker-compose.yaml 파일의 environment 항목 세팅 작업이 필요합니다.G-mail 세팅1. 사용할 G-mail 계정에 로그인을 한 후 G-mail에서 몇 가지 세팅을 해줍니다.G-mail → 설정 → 모든 설정 보기 → 전달 및 POP/IMAP → IMAP 사용 경로로 이동해 줍니다.2. 구글 계정관리에서 몇 가지 추가 세팅을 해줍니다.구글 계정관리 → 보안 → 2단계 인증 → 앱비밀번호 세팅 경로로 이동해 줍니다.※ 발급된 앱 비밀번호 토큰은 꼭 저장해서 잃어버리지 않게 해야 합니다.Docke..
Git Branch란?Git에서 브랜치(branch)는 코드의 특정 버전 시점을 가리키는 포인터와 같은 것입니다.Branch가 필요한 이유복잡한 프로젝트를 진행할 때 다양한 기능을 동시에 개발하거나 버그를 수정하고, 이를 관리하기 위해 브랜치가 필요합니다.병렬 개발각 브랜치는 독립적인 작업 공간이므로, 여러 사람이 동시에 다른 작업을 진행할 수 있습니다.버전 관리각 브랜치는 특정 버전의 코드를 가리킵니다. 이를 통해 과거의 어떤 시점으로도 쉽게 돌아갈 수 있습니다.안정성'main' 브랜치에서는 항상 안정적인 버전의 코드를 유지하고, 다른 브랜치에서는 새로운 기능 추가 및 수정을 할 수 있습니다.병합과 충돌 관리브랜치 간의 변경 사항을 병합하는 과정에서 발생할 수 있는 충돌을 더 쉽게 관리할 수 있습니다...
Python 데코레이터란?함수나 메서드에 적용되어, 해당 함수나 메서드의 기능을 확장하거나 변경하는 역할을 합니다.데코레이터는 일반적으로 @기호와 함께 사용되며, 함수 또는 메서드 위에 위치합니다.기존에 있는 함수에 새로운 기능을 추가하고 싶다면?아래 로직은 get_data 함수 실행 전과 후에 print문을 추가하기 위한 로직입니다.아래와 같은 방식을 사용한다면 수정할 함수를 찾아 직접 수정을 해줘야 합니다.예를 들어 100개의 함수에 똑같은 print문을 추가하고 싶다면 100개의 함수를 하나하나 수정해줘야 합니다.데코레이터 사용데코레이터를 사용한다면 @기호 하나로 복잡한 코드를 간소화시킬 수 있습니다. 아래와 같은 방식을 사용한다면 수정할 함수를 찾아 직접 수정을 해줄 필요가 없습니다.여러 개의 ..
Airflow에서 외부 파일을 읽기 위한 docker compose yaml 수정Airflow의 Worker 컨테이너는 기본적으로 외부 파일을 인식할 수 없습니다.컨테이너 안에 파일을 만들어주면 컨테이너 재시작 시 파일이 사라집니다. docker compose yaml 파일의 volume 부분을 수정하여 worker 컨테이너가 외부 파일을 읽을 수 있도록 설정해 줍니다.즉, 로컬의 폴더와 airflow의 폴더를 연동시키는 방식이라고 생각하시면 이해하기 편합니다.docker compose yaml 수정방법은 아래 부분을 로컬의 plugins 경로로 바꿔주면 됩니다.${AIRFLOW_PROJ_DIR:-.}은 도커 초기화한 경로이고, 따로 폴더를 수정 및 생성하지 않았다면 아래와 같이 설정해 주시면 됩니다.※..
쉘 스크립트(Shell Script)란?Unix/Linux Shell 명령을 이용하여 만들어지고, 인터프리터에 의해 한 줄씩 처리되는 파일을 말합니다.Echo, mkdir, cd, cp, tar, touch 등의 기본적인 쉘 명령어를 입력하여 작성하며 변수를 입력받거나 For 문, if 문 그리고 함수도 사용 가능합니다.확장자가 없어도 동작하지만 주로 파일명에 .sh 확장자를 붙입니다.쉘 스크립트는 왜 사용할까요?쉘 명령어를 이용하여 복잡한 로직을 처리하는 경우 사용합니다.쉘 명령어 재사용을 위해 사용합니다.
AMI(Amazon Machine Image)란?AMI(Amazon Machine Image)는 인스턴스를 생성하기 위한 이미지입니다.기존의 사용했던 인스턴스의 환경(운영 체제(OS), 애플리케이션 서버, 애플리케이션, 구성 설정, 라이브러리 등)을 그대로 이미지로 캡처해서 새로운 인스턴스를 만들 수 있습니다.이를 통해 사용자는 특정 환경이 미리 구성된 인스턴스를 쉽고 빠르게 시작할 수 있습니다.AMI의 용도1. 인스턴스 복제AMI를 사용하면 기존의 사용했던 EC2 인스턴스 환경을 그대로 복제하여 새로운 인스턴스를 생성할 수 있습니다.이는 다양한 환경(개발, 테스트, 프로덕션)에서의 일관된 설정을 유지하는 데 매우 유용합니다.2. 백업 및 복구인스턴스의 현재 상태를 AMI로 캡처하여 백업으로 사용할 수 ..