Kedro 노드(Node)

Kedro 노드(Node)

노드(node)는 Kedro 파이프라인을 이루는 기본 실행 단위예요. 입력을 받아 처리하고 출력을 만들어내는 함수이며, 함수에 입력·출력 이름을 명시해서 파이프라인 안에서 데이터 흐름을 정의해요. 노드가 곧 Kedro가 파이프라인을 실행하는 단위예요.

출처: Kedro Nodes

노드 정의

노드는 보통 node() 함수로 만들어요. 함수 하나를 가져와서 입력과 출력을 연결해요.

from kedro.pipeline import node

def normalize(value):
    return value.upper()

normalize_node = node(
    func=normalize,
    inputs="raw_data",
    outputs="normalized_data",
)

여기서 func는 실행할 함수, inputsoutputs는 그 함수가 받고 내보내는 데이터의 이름이에요. 이 이름들은 데이터 카탈로그에 정의된 데이터셋과 연결돼요.

입출력 연결

노드의 inputs·outputs는 데이터셋 이름이자 파이프라인에서의 데이터 흐름 지점이에요. 한 노드의 출력이 다른 노드의 입력으로 이어지면 두 노드가 의존 관계가 생기고, Kedro가 실행 순서를 자동으로 정해요. 필요에 따라 여러 입력을 받거나 여러 출력을 내보내는 노드도 만들 수 있어요.

독립성과 재사용

노드는 함수 하나에 입력·출력 연결만 명시한 형태라 재사용성이 높아요. 같은 처리 로직이라도 입력·출력 데이터셋만 바꿔 다른 곳에서 다시 쓸 수 있어요. 이 구조 덕분에 파이프라인을 조립하기 쉽고 테스트하기도 좋아요.

더 알아보기