커넥션 (Connections)

커넥션 (Connections)

Airflow는 다른 시스템으로 데이터를 보내거나, 다른 시스템에서 데이터를 가져오는 일을 자주 해요. 그래서 외부 시스템과 통신할 때 쓰는 자격 정보(credential)를 안전하게 담아 두는 커넥션(Connection)이라는 개념을 일급 시민으로 다룬답니다.

커넥션이란 사실상 여러 개의 파라미터 묶음이에요. 사용자 이름, 비밀번호, 호스트 이름 같은 값들과 함께, 어떤 시스템에 연결하는지 알려 주는 타입(type), 그리고 그 커넥션을 가리키는 고유한 이름인 conn_id가 함께 들어 있죠.

커넥션은 UI나 CLI로 관리할 수 있어요. 생성·편집·관리 방법이 더 궁금하다면 Managing Connections 문서를 보면 됩니다. 커넥션을 저장하는 방식이나 백엔드도 자유롭게 바꿀 수 있는 옵션을 제공해요.

커넥션은 내 코드에서 직접 쓸 수도 있고, 훅(Hook)을 통해 쓰거나 템플릿에서 쓸 수도 있어요:

echo {{ conn.<conn_id>.host }}

훅 (Hooks)

훅은 외부 플랫폼에 붙는 고수준 인터페이스예요. 상대 API를 직접 호출하거나 특수 라이브러리를 쓰는 저수준 코드를 짜지 않고도 그 플랫폼과 빠르고 쉽게 대화할 수 있게 해 주죠. 그리고 연산자(Operator)를 만들 때 그 바탕이 되는 재료로 쓰이기도 해요.

훅은 커넥션을 가져다 자격 정보를 모으고, 대부분 기본 conn_id를 갖고 있어요. 예를 들어 PostgresHook은 아무것도 전달하지 않으면 postgres_default라는 conn_id를 가진 커넥션을 자동으로 찾아요.

Airflow 훅의 전체 목록은 Airflow의 API 문서에서 확인할 수 있습니다.

커스텀 커넥션 (Custom connections)

Airflow는 커스텀 커넥션 타입을 정의하는 것도 허용해요. 이를 자세히 설명하는 곳이 바로 **프로바이더(Providers)**예요. 프로바이더는 나만의 커넥션을 정의할 수 있게 해 주고, 커뮤니티에서 관리하는 많은 프로바이더도 각자의 커스텀 커넥션 타입을 정의해 두고 있답니다.

Apache Airflow 커뮤니티가 관리하는 프로바이더가 제공하는 전체 커넥션 목록은 Connections 문서에서 확인할 수 있습니다.