고객 미팅 직전, 주간 현황판이 텅 비었다
오후 4시 40분, 프로젝트 담당자가 고객 검토를 앞두고 Notion 대시보드를 열었다. ‘이번 주 완료 예정’ 카드가 비어 있었다. 몇 분 전 팀원이 납품 데이터베이스에 새 행을 넣고 담당자를 바꾼 직후였다. “수식이 고장 났어요.” 누군가는 말했고, 다른 팀원은 발표 자료를 열어 둔 채 수식 편집기로 마우스를 옮겼다.
나는 먼저 편집을 멈추자고 했다. 결과가 빈칸인 이유는 여러 가지일 수 있다. 수식이 일부 조건에서 빈 문자열을 돌려주도록 설계됐을 수도 있고, 참조하는 속성에 값이 없거나, 필드 이름이 바뀌었거나, 데이터베이스 뷰가 설명에 필요한 행을 숨겼을 수도 있다. 빈 결과만 보고 계산 오류라고 단정하면 원인을 찾을 단서를 지워 버릴 수 있다.
Notion 공식 수식 안내에 따르면 수식은 데이터베이스 속성, 연산자와 함수 등을 조합해 행별 결과를 만든다. 함수 empty()는 값이 비어 있는지 확인하지만, Notion은 숫자 0, 빈 문자열, 빈 목록도 이 함수에서 빈 값으로 취급한다. 대시보드에서 0이 ‘미완료 없음’을 의미하는데 수식이 empty()를 사용한다면, 정상적인 0과 입력 누락이 같은 상태처럼 보일 수 있다.
대시보드 대신 원본 행부터 따라가기
먼저 카드가 아니라 원본 데이터베이스를 연다. 이번 주에 표시되어야 할 행 하나를 찾고, 실제로 존재하는지, 담당자와 상태가 채워져 있는지, 날짜가 의도한 범위에 들어가는지 확인한다. 그다음 그 행의 수식 속성을 본다. Notion 수식 편집기는 행에서 열면 결과 미리보기를 보여 줄 수 있어, 행 단위 결과와 대시보드 표시 문제를 나누는 데 도움이 된다.
수식에서 참조하는 속성 이름도 하나씩 확인한다. 필드가 이름 변경·교체되었거나 새 행에서만 비어 있을 수 있다. 조건이 여러 개인 수식은 조건 하나가 맞지 않아도 빈 문자열을 반환하는 경로로 갈 수 있다. 수식을 바깥에서 안쪽으로 읽으면서 첫 조건이 무엇을 검사하는지, 각 분기가 어떤 값을 돌려주는지 적어 보자. 정상인 행과 비어 있는 행을 비교하되, 이 단계에서는 데이터를 수정하지 않는다.
특히 empty()가 무엇을 뜻하는지 확인한다. Notion 공식 함수 문서에서는 empty(0)도 참으로 처리된다고 설명한다. 즉 0이 정상값인 업무에서 empty() 하나만으로 입력 누락을 가르면 안 된다. 빈 입력, 명시적인 0, 아직 입력하지 않은 값을 각각 화면에서 어떻게 보여 줄지 먼저 정한다. 그 다음 대표 행을 하나씩 만들어 각 상태의 결과를 시험한다. 급한 마음에 운영 데이터베이스에 추측한 수식을 바로 붙여 넣지 말자.
| 보이는 증상 | 먼저 확인할 곳 | 안전한 다음 단계 |
|---|---|---|
| 특정 행만 빈칸 | 그 행이 참조하는 속성 | 정상 행과 입력값을 비교 |
| 새 행만 결과가 없음 | 기본값과 필수 입력 | 시험 행에 속성을 하나씩 채워 확인 |
| 0이 누락처럼 보임 | empty() 조건 | 0이 유효한 값인지 먼저 결정 |
| 원본은 맞는데 카드가 비어 있음 | 뷰 필터와 그룹 | 원본 데이터베이스의 필터 확인 |
| 수식 미리보기는 정상인데 대시보드는 비어 있음 | 연결된 데이터베이스와 뷰 | 카드가 의도한 뷰를 읽는지 확인 |
행의 결과를 확인한 뒤에는 대시보드 카드나 연결된 데이터베이스 뷰를 살펴본다. 카드가 올바른 데이터베이스와 뷰를 가리키는지, 필터·그룹·날짜 범위·숨김 속성이 어떤지 확인한다. 수식은 정상적으로 계산되어도 필터가 해당 행을 감추면 화면에는 아무것도 나타나지 않는다. 반대로 행은 보이지만 카드가 다른 속성을 요약하고 있을 수도 있다.
원인을 고치고 정상 버전을 보존하기
여러 행에 영향을 주는 수식이라면 시험용 행을 만들거나 안전한 복사본에서 먼저 확인한다. 결과가 기대되는 세 경우를 적어 둔다. 필수 입력이 없는 경우, 값이 0인 경우, 일반 값이 있는 경우다. 각 경우가 구분되어 보이는지 검증한다. 목표는 무조건 빈칸을 없애는 게 아니라 팀이 필요한 의미를 유지하는 것이다. 담당자가 빠진 상태를 숫자 0으로 바꾸면 화면은 채워져 보여도 미완료 작업을 감출 수 있다.
속성 이름이 바뀌었다면 수식이 의도한 속성을 참조하는지 고치고, 결과 형식도 확인한다. 특정 상태에서는 일부러 빈 문자열을 반환하도록 만든 수식이라면 그 조건이 아직 팀 규칙과 맞는지 살핀다. 원본 행 자체가 덜 채워졌다면 값을 입력할지, 업무 절차에서 필수로 받을지, ‘대기’로 표시할지 결정한다. 서로 다른 문제를 수식 하나로 덮어씌우면 안 된다.
집계 카드라면 뷰가 세려는 행을 포함하는지, 집계가 올바른 속성에 적용되는지 확인한다. 알려진 행 몇 개를 기준으로 시험하고, 고객 미팅 전에 뷰 전체도 다시 훑는다. 수식이 자동화나 다른 데이터베이스 속성에 연결되어 있다면 그 후속 사용처도 확인한다. 눈에 보이는 카드 하나를 바꾸더라도 다른 곳의 표시가 바뀔 수 있으니 기존 수식을 복사해 두고 수정 내용을 기록한다.
계속 예상과 다르면 ‘빈칸’이라는 단어만 보고 추측하지 말고 Notion 수식 편집기의 안내와 공식 오류 도움말을 참조한다. 공식 문서는 편집기에서 사용 가능한 속성·함수와 행별 미리보기를 살펴보는 방법, 빈 값이 수식이나 자동화에 영향을 주는 경우를 안내한다. 정확한 속성 이름과 행의 값을 비교하고, 기록이 사라졌다고 단정하지 않는다.
그날 미팅에 필요했던 것은 영리한 수식 교체가 아니었다. 새 행의 담당자 상태가 기존 행과 달랐고, 대시보드 뷰는 담당자가 배정된 작업만 보여 주고 있었다. 팀은 원본 레코드를 확인하고 담당자 상태를 눈에 보이게 한 뒤, 기존 수식은 유지한 채 뷰 조건을 검토했다. 발표는 막판 데이터 변경 없이 시작됐다. 조용한 빈칸은 계산 오류가 아니라 아직 합의하지 않은 업무 규칙을 드러내고 있었다.
자주 묻는 질문
Notion 수식 결과가 빈칸이면 오류인가요?
항상 그런 것은 아닙니다. 수식이 일부 조건에서 빈 문자열을 반환하거나, 참조 속성이 비어 있거나, 현재 뷰가 해당 행을 숨길 수 있습니다. 원본 행과 미리보기를 먼저 확인하세요.
empty()는 왜 0을 빈 값으로 보나요?
Notion 수식 함수 안내에 따르면 0, "", []는 empty()에서 빈 값으로 취급됩니다. 0이 의미 있는 업무라면 그 동작을 고려해 조건을 설계하고 시험하세요.
실제 데이터베이스에서 바로 수식을 고쳐도 되나요?
여러 행이나 자동화에 영향이 있다면 안전한 복사본에서 사례를 먼저 시험하세요. 기존 수식을 보존하면 수정 내용을 검토하거나 되돌리기 쉽습니다.
자세한 내용은 Notion 공식 수식 안내, 수식 문법과 함수, 일반적인 수식 오류를 참고하세요.
한눈에 정리 원본 행, 빈 값 처리, 대시보드 뷰를 확인한 뒤 수식을 수정한다. 복사본에서 빈 값·0·일반 값을 각각 시험한다.