← 학습 카테고리

Learn

Airflow

151개 모듈 · 현재 52번째

Airflow 모듈 52/151 airflow-learn-52

커넥션과 훅 (Connections & Hooks)

Apache Airflow Official Documentation (in-repo snapshot) — Apache Software Foundation authoring-and-scheduling/connections.rst - Connections & Hooks, Hooks, Custom connections (전체, 52줄)

이 모듈을 다 읽으면

  • Connection 개념이 무엇을 저장하고 왜 필요한지 설명할 수 있다
  • Hook과 Connection의 관계, 기본 conn_id 동작 방식을 설명할 수 있다
  • 커스텀 커넥션 타입이 어떻게 확장되는지 설명할 수 있다

Airflow의 Connection은 외부 시스템 연동에 필요한 자격증명과 접속 정보를 conn_id로 식별해 저장하는 일급 개념이며, Hook은 이 Connection을 이용해 외부 플랫폼과 통신하는 고수준 인터페이스다. Operator는 대개 Hook을 감싸 구현되고, Provider 패키지는 자신만의 커스텀 Connection 타입을 정의할 수 있다.

Connection이란 무엇인가

Connection은 username, password, hostname 등 접속에 필요한 파라미터와 연결 대상 시스템의 타입, 그리고 conn_id라는 고유 이름으로 구성된 자격증명 묶음이다.

Connection은 UI나 CLI로 생성·수정·관리할 수 있고, Jinja 템플릿에서도 `conn.<conn_id>.host` 같은 형태로 직접 접근할 수 있다. 저장소(백엔드) 자체도 커스터마이즈할 수 있어, 예를 들어 외부 Secrets 매니저와 연동하는 백엔드로 교체할 수 있다.

핵심 포인트

  • Connection은 username, password, hostname 등 접속 파라미터와 시스템 타입, conn_id로 구성된다
  • UI, CLI, Jinja 템플릿(`conn.<conn_id>.host` 형태) 등 여러 경로로 접근할 수 있다
  • 커넥션 저장소(백엔드)는 커스터마이즈 가능하다 (예: 외부 Secrets 백엔드 연동)

Hook과 기본 conn_id

Hook은 외부 플랫폼의 저수준 API 코드를 직접 다루지 않고도 빠르게 통신할 수 있게 해주는 고수준 인터페이스이며, Operator를 구성하는 빌딩 블록으로 자주 쓰인다.

Hook은 Connection과 통합되어 자격증명을 가져오며, 다수의 Hook은 기본 conn_id를 갖는다. 예를 들어 PostgresHook은 별도로 conn_id를 넘기지 않으면 자동으로 `postgres_default`라는 이름의 Connection을 찾는다.

핵심 포인트

  • Hook은 외부 플랫폼과 통신하는 고수준 인터페이스이며 Operator를 구성하는 빌딩 블록으로 자주 쓰인다
  • 많은 Hook은 기본 conn_id를 갖는다 (예: PostgresHook은 명시하지 않으면 postgres_default를 찾는다)

커스텀 커넥션 타입

Airflow는 커스텀 Connection 타입 정의를 허용하며, 이는 Provider 패키지를 통해 이뤄진다. Provider는 누구나 자신만의 커넥션 타입을 정의할 수 있고, 커뮤니티가 관리하는 다수의 공식 Provider들도 각자 커스텀 커넥션 타입을 정의해 배포한다.

커뮤니티가 관리하는 Provider들이 제공하는 전체 커넥션 목록은 공식 문서의 core-extensions/connections 페이지에 정리되어 있다.

핵심 포인트

  • Provider 패키지가 자체적으로 커스텀 Connection 타입을 정의할 수 있다
  • 커뮤니티가 관리하는 Provider들이 제공하는 전체 커넥션 목록은 공식 문서의 core-extensions/connections에 정리되어 있다