[프로그래머스 코딩테스트/Python] 올바른 괄호 문제풀이
·
Minding's Programming/프로그래머스 코딩테스트
최근 프로그래머스 데이터 엔지니어링 데브코스 지원을 계기로 코딩테스트 문제를 풀어보게 되었는데, CS 공부와 코테 풀이를 워낙 오랫동안 안하다 보니 감조차 못 잡는 느낌이 들었다. (데브코스 테스트 문제는 Lv.1~2 수준이라고 해서 나름 문제 몇 개 풀고 대비도 했는데, 생각보다 너무 어려웠다.) 이대로는 안된다. 오늘부터 하루 1문제씩 풀이를 해보려고 한다. 코딩도 계속 해보고 익숙해져야 느는 법이다. 오늘이 첫 날이기 때문에 간단해보이는 문제부터 시작했다. 문제 설명괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다..
[Airflow] CustomSensor 만들어 활용하기
·
Minding's Programming/Airflow
Sensor는 지난 포스팅에서 알 수 있듯 특정 DAG 또는 task의 실행 여부를 판단하는 역할을 한다. (참고: Airflow의 기본 센서 (BashSensor, FileSensor, PythonSensor) [Airflow] Airflow의 기본 센서 (BashSensor, FileSensor, PythonSensor)Airflow에서의 센서란?(공식문서: https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/sensors.html) 센서는 오퍼레이터의 일종으로 특정 조건을 파악하는 것에 특화된 오퍼레이터라고 할 수 있다. 미minding-deep-learning.tistory.com 이번에는 Custom Sensor를 만들어 활용..
[Airflow] Connection Type 신규 추가하는 방법
·
Minding's Programming/Airflow
외부 서비스를 Airflow를 통해 이용하기 위해서 Hook을 사용하기 위해서는 그에 맞는 Connection이 먼저 등록되어야 한다. 하지만 Airflow에서 Connetion을 등록할 때 기본적으로 제공되는 Connection Type에 자신이 원하는 서비스가 존재하지 않을 수 있다. 그럴 때에는 직접 Connection Type을 추가해주어야 한다.  Connection Type 추가하기 Airflow에서 외부 서비스를 Hook으로 제공해주고 있으나 Connection Type이 없는 경우가 종종 있다. 예를 들어 HDFS와 Hive의 경우 Connection Type에 해당 서비스가 보이지 않는 점을 확인할 수 있다. Connection Type에 노출되는 외부 서비스들은 기본적으로 패키지가 설치..
[Airflow] Postgres Hook bulk_load 문제점, Custom Hook으로 bulk_load() 해보기
·
Minding's Programming/Airflow
이 글은 인프런 강의 'Airflow 마스터 클래스'를 듣고 작성한 글이다. Postgres Hook 이전 포스팅 (2024.07.27 - [Minding's Programming/Knowledge] - [Airflow] Connection과 Hook)에서 살펴보았듯이 Hook은 여러 외부 서비스를 이용할 때 개인정보를 코드에 기입할 필요없이 편리하게 이용하게 해주는 Airflow의 기능 중 하나다. 그 중 bulk_load는 탭으로 나뉘어진 파일을 DB table에 업로드할 수 있도록하게 해주는 메서드인데, 공식문서에 따르면 아래와 같은 형식을 파라미터 인자값으로 받는다. (공식 문서: https://airflow.apache.org/docs/apache-airflow-providers-postgres..
[Airflow] Connection과 Hook
·
Minding's Programming/Airflow
지난 포스팅에서 Docker를 통해 custom postgresDB 연결을 위한 컨테이너를 만들고 해당 DB에 연결하는 것까지 실습해보았다. ( Postgres 컨테이너 추가해 DB 접속하기 글 링크 ) [Airflow/Docker] Postgres 컨테이너 추가해 DB 접속하기docker-compose.yaml 파일 수정해 Postgres 컨테이너 추가하기 먼저 docker-compose.yaml 파일을 열어 services 항목에 아래 내용을 추가한다.services postgres_custom: image: postgres:13 environment: POSTGRES_USER: minding POSTGRES_minding-deep-learning.tistory.com 이제 연결한 PostgresDB..
[Airflow/Docker] Postgres 컨테이너 추가해 DB 접속하기
·
Minding's Programming/Airflow
docker-compose.yaml 파일 수정해 Postgres 컨테이너 추가하기 먼저 docker-compose.yaml 파일을 열어 services 항목에 아래 내용을 추가한다.services postgres_custom: image: postgres:13 environment: POSTGRES_USER: minding POSTGRES_PASSWORD: minding POSTGRES_DB: minding TZ: Asia/Seoul volumes: - postgres-custom-db-volume:/var/lib/postgresql/data ports: - 5432:5432 # 외부에서 접속할 수 있도록 포트 노출 또한 pos..
[Airflow/Docker] Docker-compose.yaml 파일 해석
·
Minding's Programming/Airflow
Docker Compose? Docker Compose는 1개 이상의 도커 컨테이너를 생성할 때 사용하는 스크립트 하나를 뜻하며, 컨테이너들의 설정을 관리(컨테이너 실행 순서, 컨테이너 네트워크 등)할 수 있도록 해주는 Docker의 기능 중 하나다. 스크립트는 docker-compose.yaml 이라는 이름의 파일에 컨테이너들의 설정 내용을 입력하면 되고, Docker Compose 서비스를 시작하기 위해서는 yaml 파일이 있는 디렉토리에서 아래 명령어를 입력하면 실행된다. (Docker 서비스가 설치되어 있다는 가정 하에)sudo docker compose up  docker-compose.yaml 파일 해석 yaml 파일은 json이나 xml과 같이 key, value로 구성되며 계층적인 구조를 ..
[Airflow] Custom Operator 개발해보기 (BaseOperator)
·
Minding's Programming/Airflow
Airflow는 오퍼레이터를 직접 만들어 사용할 수 있도록 클래스를 제공해주고 있다. 이런 활용성이 Airflow의 가장 큰 장점이라고 할 수 있는 만큼, BaseOperator를 활용한 Custom Operator를 개발에 대해 공부해보고자 한다. BaseOperator 상속 시 재정의할 메서드 위에서 말했듯이 Custom Operator를 만들기 위해 Airflow는 BaseOperator라는 클래스를 제공해주고 있다.BaseOperator를 상속(Overriding)받을 때는 아래의 두 가지 메서드를 재정의해야 한다.def __init__ (객체 생성자 함수): 커스텀 오퍼레이터에 들어갈 파라미터 등을 설정def execute(self, context) : __init__ 생성자로 객체 얻은 후 e..