목록2024/05 (22)
코딜기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FYGlR/btsHHk3SyCo/rVT1yk8bzP08j9H26vm3IK/img.png)
Python 데코레이터란?함수나 메서드에 적용되어, 해당 함수나 메서드의 기능을 확장하거나 변경하는 역할을 합니다.데코레이터는 일반적으로 @기호와 함께 사용되며, 함수 또는 메서드 위에 위치합니다.기존에 있는 함수에 새로운 기능을 추가하고 싶다면?아래 로직은 get_data 함수 실행 전과 후에 print문을 추가하기 위한 로직입니다.아래와 같은 방식을 사용한다면 수정할 함수를 찾아 직접 수정을 해줘야 합니다.예를 들어 100개의 함수에 똑같은 print문을 추가하고 싶다면 100개의 함수를 하나하나 수정해줘야 합니다.데코레이터 사용데코레이터를 사용한다면 @기호 하나로 복잡한 코드를 간소화시킬 수 있습니다. 아래와 같은 방식을 사용한다면 수정할 함수를 찾아 직접 수정을 해줄 필요가 없습니다.여러 개의 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dQQ15k/btsHHtd75IK/EuCnuykkGdxOykLNJ7wBs0/img.png)
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 확장자를 붙입니다.쉘 스크립트는 왜 사용할까요?쉘 명령어를 이용하여 복잡한 로직을 처리하는 경우 사용합니다.쉘 명령어 재사용을 위해 사용합니다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b7CRIx/btsHqJH853l/ZMcyYpdGf5qh0MF3TnrUX0/img.png)
AMI(Amazon Machine Image)란?AMI(Amazon Machine Image)는 인스턴스를 생성하기 위한 이미지입니다.기존의 사용했던 인스턴스의 환경(운영 체제(OS), 애플리케이션 서버, 애플리케이션, 구성 설정, 라이브러리 등)을 그대로 이미지로 캡처해서 새로운 인스턴스를 만들 수 있습니다.이를 통해 사용자는 특정 환경이 미리 구성된 인스턴스를 쉽고 빠르게 시작할 수 있습니다.AMI의 용도1. 인스턴스 복제AMI를 사용하면 기존의 사용했던 EC2 인스턴스 환경을 그대로 복제하여 새로운 인스턴스를 생성할 수 있습니다.이는 다양한 환경(개발, 테스트, 프로덕션)에서의 일관된 설정을 유지하는 데 매우 유용합니다.2. 백업 및 복구인스턴스의 현재 상태를 AMI로 캡처하여 백업으로 사용할 수 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wX3hg/btsHpMsfghY/RkPgeyL4JZeV0YQTamvTuk/img.png)
Airflow.cfg란?airflow.cfg는 Airflow의 실행, 스케줄링, 로깅, 보안 및 통합 등 여러 기능을 설정하는 데 사용됩니다.Airflow 설치 시 기본적으로 생성되는 일반 텍스트 기반의 구성 파일로, INI 포맷을 사용하여 다양한 설정을 선언적으로 정의할 수 있습니다.실행 방식, 스케줄링 매개변수, 데이터베이스 접속 정보, 로깅, 메일 설정 등을 수정할 수 있습니다.파일은 여러 섹션으로 구분되어 있으며, 각 섹션은 Airflow의 특정 기능이나 구성 요소에 관한 설정을 담고 있습니다.Airflow 인스턴스를 업그레이드하거나 변경할 때 주의 깊게 관리해야 합니다.실수로 중요한 설정을 변경하거나 잘못 구성하면 Airflow의 성능이 저하되거나 예기치 않은 동작을 할 수 있습니다.주요 섹션과..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bWFwY0/btsHos12Ryc/ijy8ZxkHlk4fAb3AUBMXRk/img.png)
이 포스팅의 과정을 진행하기 전에 EC2 가상환경 구성을 먼저 하시는 것을 추천드립니다.가상 환경에 Airflow 패키지 설치1. Airflow 패키지 설치에 앞서 MySQL 클라이언트를 사용하기 위해 필요한 패키지를 설치해 줍니다.sudo apt install default-libmysqlclient-dev -ysudo apt install python3.8-dev -y2. 설치가 완료되었으면 아래 명령어를 통해 Airflow 패키지 설치를 해줍니다.간단하게 명령어 설명을 하자면, [ ] 안에 들어간 것들이 Airflow에 필요한 패키지들입니다.패키지들을 따로따로 설치하게 되면 사용하는 Airflow의 버전과 Constraints에 맞는 버전이 다르게 설치되어, Airflow가 정상적으로 작동하지 않..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bDdQ66/btsHnqKwoMk/iKN8x5eefrTGR6aEBuKov1/img.png)
EC2의 가상환경자세한 개념은 파이썬 가상환경 설정 게시물에서 확인할 수 있습니다.EC2 가상환경 설치가 필요합니다.EC2에 가상환경 활성화하기아래 명령어를 통해 python용 가상환경을 env라는 디렉터리에 생성해 줍니다.가상환경을 만들 프로젝트 폴더 경로 안에 들어가서 생성해 줘야 작업별로 가상환경을 독립시킬 수 있습니다.이 포스팅에서는 활성화하는 방법을 공유하는 것이 목표이기 때문에 따로 독립시키지 않고 진행하겠습니다.virtualenv env아래 명령어를 통해 가상환경을 활성화 및 비활성화를 할 수 있습니다.가상환경을 설치한 폴더로 이동한 후 진행하셔야 합니다.정상적으로 활성화가 되었다면 사진과 같이 커맨드 라인 맨 앞에 (env) 표시가 생긴 것을 확인할 수 있습니다.# 가상환경 활성화하기sou..