Skip to main content
노트북은 셀이 페이지에 표시되는 순서가 아니라 변수 의존성에 따라 셀을 실행합니다. 셀 B가 셀 A에서 정의된 변수를 조회하면 셀 B는 셀 A에 의존합니다. 이때 셀 A는 셀 B의 상위이고, 셀 B는 셀 A의 하위입니다. 상위 셀이 실행되면 노트북은 하위 셀을 다시 실행하여 해당 출력이 최신 값을 반영하도록 할 수 있습니다. 셀이 자동으로 실행되는지 여부는 노트북의 런타임 설정에 따라 달라집니다. 노트북은 정의와 레퍼런스를 추적하여 의존성을 확인합니다.
  • 정의는 변수, 함수, 클래스, 임포트한 이름과 같이 셀이 생성하는 전역 이름입니다.
  • 레퍼런스는 셀이 다른 셀에서 읽어 오는 전역 이름입니다.
자세한 내용은 marimo의 How marimo runs cells를 참조하세요.

오래된 및 차단됨 셀

노트북은 각 셀의 상태를 추적하여 해당 셀을 실행해야 하는지 확인합니다. 주요 셀 상태는 오래된차단됨입니다.

오래된 셀

셀이 한 번도 실행되지 않았거나 최신 코드 또는 입력으로 실행되지 않았다면 그 셀은 오래된(stale) 상태입니다. 현재 코드와 입력으로 셀을 실행하고 나면 더 이상 오래된 상태가 아닙니다. 다음과 같은 상황에서 셀이 오래된 상태가 됩니다.
  • 셀의 코드를 편집한 경우
  • 노트북이 lazy 모드일 때 상위 셀이 실행된 경우. 이 모드에서는 노트북이 하위 셀을 자동으로 실행하지 않고 오래된 상태로 표시합니다.
  • lazy 모듈 자동 다시 로드가 활성화된 상태에서 셀이 사용하는 Python 모듈이 변경된 경우
오래된 셀을 실행하면 출력이 업데이트됩니다. 상위 셀이 오래된 상태라면 노트북이 해당 셀부터 먼저 실행합니다. 오래된 셀을 한 번에 모두 실행할 수도 있습니다.

차단된 셀

셀 자체 또는 해당 셀의 상위 셀 중 하나가 비활성화되어 있으면 그 셀은 차단됨 상태가 됩니다. 차단된 셀은 입력이 변경되어도 자동으로 실행되지 않습니다. 셀의 차단을 해제하려면 해당 셀이 의존하는 비활성화된 셀을 다시 활성화하세요. 그러면 노트북이 오래되어 출력 업데이트가 필요한 하위 셀을 실행할 수 있습니다. 자세한 방법은 셀 비활성화 또는 활성화를 참조하세요.

셀 삭제

셀을 삭제하면 해당 셀에서 정의한 전역 변수도 노트북에서 함께 삭제됩니다. 런타임 설정에 따라 노트북은 삭제된 변수를 참조하는 셀을 다시 실행하거나, 무효화하거나, 오래된 상태로 표시합니다.

각 전역 이름은 한 번만 정의하세요

각 전역 이름은 하나의 셀에서만 정의하세요. 두 개의 셀이 같은 전역 이름을 정의하면, 노트북은 하위 셀이 참조할 단일 정보 출처를 확인할 수 없습니다. 이 제한은 변수, 함수, 클래스, 임포트한 패키지 이름에 모두 적용됩니다. 임시 변수의 경우 변수 이름 앞에 밑줄 하나를 접두사로 붙이면 해당 셀의 로컬 변수가 됩니다. 함수 내부에 임시 변수를 정의할 수도 있습니다.

셀 간 변형(mutation) 피하기

여러 셀에서 사용하는 객체는 변형하지 마세요. 노트북은 객체 변형을 추적하지 않으므로, 객체를 변형해도 해당 객체에 의존하는 셀이 오래된 상태로 표시되지 않습니다. 예를 들어 어떤 셀에서 다른 셀에 정의된 DataFrame에 컬럼을 추가한다고 가정해 보겠습니다. 이때 해당 DataFrame을 참조하는 셀은 자동으로 다시 실행되지 않습니다. 노트북 상태를 일관되게 유지하려면 새 객체를 만들어 새 변수에 할당하세요. 객체를 반드시 변형해야 한다면, 해당 객체를 정의한 셀에서 변형하세요. 자세한 내용은 Variable mutations are not tracked를 참조하세요.

변수 및 의존성 검사

변수 보기

Variables explorer를 사용하면 정의된 변수와 그 유형, 선언된 위치, 참조되는 위치를 확인할 수 있습니다.
의존 관계에 있는 노트북 셀 간에 흐르는 변수
셀의 기호와 셀 간 연결에 대해 자세히 알아보려면 다음을 참조하세요.

미니맵에서 셀 관계 보기

Dependencies 패널을 사용해 셀 간의 관계를 확인하세요:
  1. 사이드바에서 Explore dependencies()를 선택하세요.
  2. MINIMAP을 선택하세요.

의존성 그래프 보기

Graph view를 사용하여 셀 의존성을 방향성 비순환 그래프(DAG)로 시각화하세요.
  1. 사이드바에서 Explore dependencies()를 선택합니다.
  2. GRAPH를 선택합니다.
화면을 이동하거나 확대/축소하고 노드를 재배치하면서 셀 간의 관계를 살펴보세요.