Give Mind Give Mind

02 노션 관계형과 롤업 이해하기 왜 정보를 나눴다가 다시 잇는가?

읽는 시간 약 11분

노션 관계형·롤업 이해하기: 왜 정보를 나눴다가 다시 잇는가

노션 관계형(Relation)과 롤업(Rollup)은 노션에서 가장 강력하지만, 동시에 가장 많은 사람이 중도에 포기하는 기능이다. 이유는 분명하다. 기능 사용법만 익히려 하기 때문이다. 버튼을 어디서 누르는지는 5분이면 배우지만, “왜 이걸 써야 하는가”를 모르면 노션 관계형을 만들어놓고도 활용하지 못한다.

이 글은 노션 관계형과 롤업의 클릭 순서를 나열하지 않는다. 대신 이 기능들이 어떤 문제를 풀기 위해 존재하는지, 그 원리를 파고든다. 원리를 이해하면 언제 관계형을 써야 하고 언제 쓰지 말아야 하는지가 명확해진다. 노션 데이터베이스의 속성 개념을 안다는 전제로, 한 단계 더 깊이 들어간다.

관계형이 푸는 문제는 정보의 중복

노션 관계형을 이해하려면 먼저 이것이 없을 때 생기는 문제부터 봐야 한다. 그 문제의 이름은 중복(duplication)이다.

예를 들어보자. 할 일을 관리하는 데이터베이스가 있고, 각 할 일은 특정 프로젝트에 속한다. 관계형을 모른다면, 각 할 일 항목에 ‘프로젝트명’이라는 텍스트 속성을 만들어 프로젝트 이름을 일일이 적을 것이다. ‘웹사이트 리뉴얼’이라는 프로젝트에 할 일이 30개 있다면, ‘웹사이트 리뉴얼’이라는 글자를 30번 입력하게 된다.

여기서 두 가지 문제가 발생한다.

첫째, 오타와 불일치다. 어떤 항목엔 ‘웹사이트 리뉴얼’, 어떤 항목엔 ‘웹사이트리뉴얼’, 또 어떤 항목엔 ‘웹 사이트 리뉴얼’이라고 적힌다. 사람 눈에는 같아 보이지만 노션에게는 전부 다른 값이다. 프로젝트별로 묶어 보려 해도 세 개로 쪼개진다.

둘째, 수정의 재앙이다. 프로젝트 이름을 ‘홈페이지 개편’으로 바꾸기로 했다고 하자. 30개 항목을 하나하나 열어 고쳐야 한다. 100개라면 100번이다.

이 문제의 근본 원인은 하나다. 같은 정보가 여러 곳에 복사되어 있다는 것. 정보 관리 이론에서는 이를 피하기 위해 ‘단일 진실 공급원(single source of truth)’이라는 원칙을 둔다. 하나의 정보는 오직 한 곳에만 존재해야 하고, 나머지는 그것을 참조만 해야 한다는 원칙이다. 노션 관계형은 바로 이 원칙을 노션에서 구현하는 도구다.

관계형의 정체는 복사가 아니라 연결

관계형(Relation)은 한 데이터베이스의 항목을 다른 데이터베이스의 항목과 연결하는 속성이다. 핵심은 ‘복사’가 아니라 ‘연결’이라는 점이다.

앞의 예로 돌아가자. 프로젝트를 관리하는 별도의 ‘프로젝트’ 데이터베이스를 만든다. 여기에 ‘웹사이트 리뉴얼’은 딱 한 번만 존재한다. 그리고 ‘할 일’ 데이터베이스에 프로젝트명을 텍스트로 적는 대신, 노션 관계형 속성을 만들어 ‘프로젝트’ 데이터베이스의 해당 항목을 가리키게 한다.

이렇게 하면 앞의 두 문제가 동시에 사라진다. 프로젝트 이름은 원본에 한 번만 있으므로 오타로 쪼개질 일이 없고, 이름을 바꾸면 원본 하나만 고치면 그것을 참조하는 30개 항목에 자동으로 반영된다. 복사본이 아니라 연결이기 때문이다.

여기서 반드시 알아야 할 성질이 하나 있다. 노션 관계형은 양방향이다. ‘할 일’에서 ‘프로젝트’를 연결하면, 반대로 ‘프로젝트’ 데이터베이스에서도 각 프로젝트에 연결된 할 일들이 자동으로 보인다. 한쪽에서 이으면 다른 쪽에도 통로가 생긴다. 즉 ‘웹사이트 리뉴얼’ 프로젝트를 열면 거기 딸린 할 일 30개가 저절로 나타난다. 이 양방향성이 다음에 설명할 롤업의 전제가 된다.

롤업이 필요한 이유? 연결만으로는 부족하다

노션 관계형으로 두 데이터베이스를 이었다. 그런데 여기서 새로운 욕구가 생긴다. “이 프로젝트에 할 일이 몇 개나 딸려 있지?” “그중 완료된 건 몇 개지?” “이 프로젝트에 걸린 예상 시간을 다 합치면 얼마지?”

관계형은 항목들을 이어주기만 할 뿐, 이어진 항목들의 값을 계산해주지는 않는다. 연결된 할 일 30개가 보이긴 하지만, 그 개수를 세거나 완료 여부를 집계하는 건 다른 기능의 몫이다. 그 기능이 바로 롤업(Rollup)이다.

노션 롤업은 관계형으로 연결된 항목들의 특정 속성값을 끌어와 집계하는 속성이다. 이름 그대로 여러 값을 ‘말아 올려서(roll up)’ 하나의 결과로 요약한다. 프로젝트 데이터베이스에 롤업 속성을 만들어 연결된 할 일의 개수를 세게 하면, 각 프로젝트 옆에 ‘할 일 30개’가 자동으로 표시된다. 할 일이 추가되거나 삭제되면 이 숫자도 즉시 갱신된다.

정리하면 이렇다. 노션 관계형이 다리를 놓고, 롤업이 그 다리를 건너가 값을 가져온다. 둘은 반드시 짝으로 쓰인다. 롤업은 관계형 없이 존재할 수 없다. 롤업을 설정하려면 먼저 “어떤 관계형을 통해” 값을 가져올지 지정해야 하기 때문이다.

롤업의 집계 방법 무엇을 어떻게 말아 올릴까

노션 롤업을 설정할 때는 두 가지를 정해야 한다. 첫째, 연결된 항목의 어떤 속성을 가져올 것인가. 둘째, 그 값들을 어떻게 계산할 것인가. 이 두 번째, 즉 계산 방식(Calculate)이 롤업의 진짜 힘이다. 대표적인 방식은 다음과 같다.

  • 원본 표시(Show original): 계산하지 않고 연결된 값들을 그대로 나열한다. 프로젝트에 걸린 담당자 목록을 그냥 보여주고 싶을 때 쓴다.
  • 개수 세기(Count): 연결된 항목이 몇 개인지 센다. ‘할 일 개수’ 같은 집계에 쓴다. 조건을 걸어 ‘완료된 것만’ 세는 것도 가능하다.
  • 합계(Sum): 숫자 속성의 값을 모두 더한다. 프로젝트에 걸린 예상 시간의 총합, 지출의 총액 등에 쓴다.
  • 평균·최소·최대(Average/Min/Max): 연결된 숫자값의 평균이나 극값을 구한다.
  • 비율(Percent): 특정 조건을 만족하는 항목의 비율을 낸다. ‘완료율’ 같은 지표를 만들 때 강력하다.

여기서 실전 감각이 하나 생긴다. 프로젝트의 ‘진행률’을 자동으로 표시하고 싶다면, 연결된 할 일 중 ‘완료’ 상태인 것의 비율을 롤업으로 계산하면 된다. 할 일을 완료 처리할 때마다 프로젝트의 진행률 막대가 저절로 올라간다. 이것이 손으로 관리하는 진행률과 자동으로 계산되는 진행률의 결정적 차이다.

심화: 노션 롤업의 한계와 우회

여기까지가 기본이라면, 이제 많은 사람이 벽에 부딪히는 지점을 짚는다. 노션 관계형·롤업을 깊이 쓰다 보면 반드시 만나는 두 가지 한계다.

롤업의 롤업은 안 된다

가장 흔한 벽이다. A 데이터베이스가 B를 롤업하고, B가 다시 C를 롤업한다고 하자. 이때 A에서 C의 값까지 한 번에 끌어오고 싶어지지만, 노션 롤업은 다른 롤업 값을 다시 롤업하는 것을 온전히 지원하지 않는다. 계산된 값을 또 계산하려는 시도는 대개 빈 값이나 오류로 이어진다.

이유는 롤업의 작동 방식에 있다. 롤업은 ‘연결된 항목이 원래 가진 속성값’을 가져오도록 설계됐는데, 롤업 자체는 원래 값이 아니라 ‘계산 결과’다. 계산 결과를 다시 계산의 재료로 쓰는 연쇄를 노션은 제한한다. 이 한계를 모르면 “왜 값이 안 나오지” 하며 몇 시간을 허비하게 된다.

우회법은 두 가지다. 하나는 중간 단계에 수식(Formula)을 끼워 넣어 롤업이 아닌 ‘실제 값’으로 한 번 변환한 뒤 다음 단계에서 참조하는 것이다. 다른 하나는 애초에 데이터베이스 구조를 3단이 아니라 2단으로 단순화해 연쇄 자체를 없애는 것이다. 구조를 단순하게 유지하는 편이 대개 더 낫다.

노션 관계형은 만능이 아니다

두 번째 심화 판단은 “이걸 노션 관계형으로 만들어야 하나, 그냥 선택(Select) 속성으로 충분한가”이다. 초보는 관계형을 몰라서 못 쓰지만, 중급자는 관계형을 남용해서 문제를 만든다.

판단 기준은 두 가지다. 첫째, 연결 대상이 그 자체로 관리할 정보를 갖는가. 프로젝트는 시작일, 담당자, 예산 같은 고유 정보를 가지므로 별도 데이터베이스와 관계형이 맞다. 반면 ‘우선순위(높음/중간/낮음)’는 그 자체로 관리할 속성이 없다. 이런 것은 선택 속성으로 충분하며, 관계형으로 만들면 관리 대상만 늘어난다.

둘째, 집계가 필요한가. 연결된 항목들의 개수를 세거나 값을 합쳐야 한다면 관계형+롤업이 필요하다. 단순히 분류만 하면 되고 집계가 필요 없다면 선택 속성이 가볍고 낫다.

한 문장으로 요약하면 이렇다. 연결 대상이 독립된 존재로서 자기 정보를 갖거나, 그 대상들을 집계해야 할 때만 노션 관계형을 쓴다. 그 외에는 선택 속성이 정답이다.

자주 묻는 질문(FAQ)

Q. 노션 관계형과 롤업은 무료 요금제에서도 되나요? 된다. 노션 관계형과 롤업 모두 무료 요금제에서 개수 제한 없이 사용할 수 있다.

Q. 노션 롤업 값이 자꾸 비어 있게 나옵니다. 왜 그런가요? 가장 흔한 원인은 롤업이 참조하는 속성이 다른 롤업이거나 수식 결과인 경우다. 노션은 계산된 값을 다시 롤업하는 것을 제한한다. 원본 속성을 직접 참조하도록 바꾸거나, 중간에 수식으로 값을 확정한 뒤 참조해야 한다.

Q. 노션 관계형을 삭제하면 연결된 데이터도 사라지나요? 관계형 속성을 삭제하면 연결 관계만 끊어질 뿐, 양쪽 데이터베이스의 항목 자체는 삭제되지 않는다. 다만 그 관계형에 의존하던 롤업은 값을 잃는다.

Q. 하나의 항목을 여러 프로젝트에 연결할 수 있나요? 가능하다. 노션 관계형은 기본적으로 다대다(하나가 여럿과, 여럿이 하나와) 연결을 허용한다. 필요하면 설정에서 일대일 관계로 제한할 수도 있다.

정리

노션 관계형·롤업의 본질은 ‘정보의 중복을 없애기 위해 나누고, 나눈 것을 다시 집계하기 위해 잇는’ 것이다. 노션 관계형은 정보를 한 곳에만 두고 나머지는 참조하게 만들어 중복과 수정 지옥을 없애며, 양방향으로 연결된다. 노션 롤업은 그 연결을 타고 건너가 연결된 값들을 개수·합계·비율 등으로 집계한다.

깊이 쓸 때는 두 가지 한계를 기억해야 한다. 롤업의 롤업은 제한되므로 구조를 단순하게 유지하거나 수식으로 우회하고, 관계형은 연결 대상이 고유 정보를 갖거나 집계가 필요할 때만 쓴다. 그 외에는 선택 속성이 더 낫다. 이 판단만 몸에 익히면 노션 관계형·롤업은 더 이상 어려운 기능이 아니라, 노션을 진짜 데이터베이스로 만드는 핵심 도구가 된다.

관련 글에서는 롤업의 우회에 쓰이는 수식(Formula)의 작동 원리를 자세히 다루고, 노션 관계형으로 연결한 두 데이터베이스를 프로젝트 관리 시스템으로 구성하는 실전 설계를 이어서 설명한다.

givemindone

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.