Formulas 2.0: 기존 설정으로 새롭게 개선된 Notion 수식을 사용하는 방법
Notion 수식을 사용해 본 적 있는 분이라면 어떤 부분이 바뀌었는지 궁금하실 텐데요. 이 가이드에서 새롭게 변경된 수식은 무엇이고, 수식 파워 유저들의 기존 작업에는 어떤 영향이 있는지 자세하게 설명해 드릴게요.
- 새로워진 수식 기능
- 다양한 활용법
- 수식을 업데이트하고 여러 데이터 출력 이용하기
- 속성에서 워크스페이스 정보 불러오기
- let으로 나만의 변수 생성하기
- 관계형 데이터베이스의 참조 속성(롤업이 필요없어요!)
- 기존 함수에 대한 모든 변경 내용 확인하기
새로워진 수식 기능
(1) 사용자가 좀 더 쉽게 수식을 작성하고, (2) 보다 심플하고 직관적인 Notion 특유의 수식 출력을 도출하며, (3) 수식 언어가 더욱더 구체적인 요청을 수행할 수 있도록 Notion 수식 기능이 대폭 개선되었습니다.
기존 수식은 어떻게 되나요?
이 가이드에서 수식 기능이 어떻게 변경되었는지 살펴보고, 기존 수식 사용자를 위한 다양한 활용법을 알려드릴게요. 수식 자체를 처음 사용하는 경우 초보자를 위한 가이드에서 수식으로 데이터베이스 활용성을 더욱 확장하는 법에 대해 먼저 알아보세요.
그럼, 수식 2.0 버전에 새로 추가된 기능을 소개해 드릴게요.
더 간편해진 수식 작성과 편집 — 편집기에서 Tab이나 Space 키 등을 이용해 수식 줄바꿈도 할 수 있고, 오류도 좀 더 쉽게 포착할 수 있게 되었습니다. 수식을 작성할 때 데이터베이스 안에 여러 줄 편집이 가능한 새로운 확장형 편집기가 나타납니다. 긴 수식을 보고 편집하기가 더욱 쉬워졌죠. 또한, 이제부터 타입 체크가 실행되며 체크 중 발견된 오류는 편집기에서 바로 강조해 보여주기 때문에 구문을 쉽게 수정하고 수식이 정상적으로 작동하는지 확인할 수 있어요.
다양한 데이터 출력 유형 지원 — 문자열, 숫자, 체크박스(부울)만 출력으로 지원했던 수식 기능이 이제 페이지, 날짜, 사람, 리스트까지 지원합니다.
다양한 데이터 활용도 향상 — 수식 기능이 업그레이드되어 이제 멤버의 이메일과 이름 등의 정보뿐만 아니라 관계형 데이터베이스의 속성에도 액세스할 수 있습니다.
새로운 수식 언어
다양한 활용법
수식을 업데이트하고 여러 데이터 출력 이용하기
지금까지는 수식에서 여러 데이터 유형을 문자열로만 사용해야 했는데요, 새로 개선된 버전의 수식에서는 더 많은 유형의 데이터 출력값을 산출할 수 있습니다.
기존에는 호환성과 안정성을 위해 롤업, 사람, 파일, 다중 선택 속성을 참조하는 기존의 모든 수식은 문자열로 변환되었습니다.
예를 들어, 이전에는 prop("Person")
이 사람의 이름을 문자열로 반환하는 수식이었지만, 이제는 prop("Person").map(currentValue.format()).join(",")
이 동일한 작업을 수행합니다.Formulas 2.0에서는 prop("Person")
이 쉼표로 구분된 문자열이 아닌 사람 리스트를 반환하기 때문입니다. 새 버전에서도 기존 수식의 값이 변동 없이 유지될 수 있도록 "사람" 리스트의 각 항목은 쉼표로 구분되는 문자열로 변환됩니다.
다양한 데이터 유형을 이용하고 싶다면 변환 언어를 지워주면 됩니다. 위의 예에서는 prop("Person")
만 쓰면 되는 것이죠. 이 경우, 일반 텍스트가 아닌 사람 유형의 리스트가 반환됩니다.
동적 속성 멘션
속성에서 워크스페이스 정보 불러오기
이제 별도의 속성을 만들지 않고도 내 데이터베이스에 태그된 사람의 이름과 이메일 등 워크스페이스 레벨의 정보나 관계형 데이터베이스에 액세스할 수 있습니다.
예를 들어, "생성자" 속성을 사용하고 "이름"을 prop("Created By").name()
로, "이메일"을 prop("Created By").email()
로 참조하면 사용자의 이름과 이메일 등의 데이터를 반환할 수 있습니다.
이를 통해 대규모 데이터베이스 내의 다양한 속성을 간소화하면서도 내게 필요한 정보를 더 쉽고 빠르게 검색할 수 있게 됩니다.
수식 마침표 지원
let으로 나만의 변수 생성하기
이제 수식으로 변수를 생성할 수 있어요! 기존의 Javascript와 마찬가지로 let
을 이용해 첫 번째 인수로 이름을, 두 번째 인수로 값을 입력하여 변수를 만들 수 있습니다. 세 번째 인수로 새로 생성한 변수를 사용해 수식의 나머지 부분을 작성하세요.
예를 들어, 여러 속성의 합을 모두 더한 총비용을 구하는 수식을 작성한다고 할 때, 각 속성의 합을 구한 뒤 이를 일일이 다시 더해주는 작업은 거의 단순노동에 가까운 일이에요.
이때, let(SalesTax, (prop("Subtotal")*0.099), prop("Subtotal") + SalesTax)
와 같은 변수를 만들어 보세요.SalesTax
를 입력할 때마다 소계 x 세율로 사전 정의된 값이 산출될 거예요.
변수는 언제 사용하는 건가요?
let
활용이 익숙해졌다면 lets
를 이용해 다양한 변수를 한 번에 할당할 수도 있어요.
예를 들어, lets(a, "Hello", b, "world", a + " " + b)
와 같이 2개의 변수를 조합할 수 있습니다.
관계형 데이터베이스의 참조 속성(롤업이 필요없어요!)
이제 관계형 데이터베이스에서 나에게 필요한 정확한 정보를 찾아낼 수 있습니다. 더 이상 관련 속성을 참조할 롤업을 따로 만들지 않아도 되죠! 관계형 데이터베이스가 정보의 표시 방식을 편집하고 수정할 수 있는 강력한 수식 기능과 만나 기존의 롤업보다 한층 업그레이드되었기 때문입니다.
예를 들어, 작업 데이터베이스에 관계된 프로젝트 데이터베이스가 있다면, 작업 완료율을 기준으로 "✅ 완료"
, "⚠️ 진행 중"
, "❌ 시작 전"
등을 표시할 일이 자주 생기죠.
이전에는 작업 완료율을 표시하기 위해서는 롤업을 상성하고 그 다음 수식을 작성해 "✅ 완료"
, "⚠️ 진행 중"
, "❌ 시작 전"
을 반환하도록 해야 했습니다.
새로운 버전의 수식에서는 이 작업들을 통합해 "롤업 값" 자체를 변수로 정의할 수 있어요.
우선,
map()
,filter()
, andlength()
함수로 완료된 작업의 수를 계산해 주세요.
prop("Tasks").map(current.prop("Status")).filter(current == "Done").length()
2. 그 다음, percentComplete
이라는 변수로 롤업 값을 정의하세요. 완료된 작업의 수 나누기 전체 작업 수에 100을 곱하면 되겠죠. 그리고 이제 새 값에 함수를 적용하면 됩니다.
let(
percentComplete,
prop("Tasks").map(current.prop("Status")).filter(current == "Done").length()
/ prop("Tasks").map(current.prop("Status")).length() * 100),
/* 여기에 수식의 나머지 부분을 작성하세요 */
)
이 예시에서는 최종 수식이 아래와 같이 만들어질 거예요.
let(percentComplete, round(prop("Tasks").map(current.prop("Status")).filter(current =="Done").length()/ prop("Tasks").map(current.prop("Status")).length() * 100),
ifs(percentComplete == 100, "✅ 완료", percentComplete > 0, "⚠️ 진행 중 (" + percentComplete + ")%","❌ 시작 전"))
기존 함수에 대한 모든 변경 내용 확인하기
아래 토글을 이용해 특정 함수에 대한 변경 내용을 확인하세요. 기존 수식은 자동으로 변환됩니다.
속성 참조 업데이트
수학 함수 변경
날짜 함수 업데이트
수학 함수 업데이트
체크박스(부울) 함수 업데이트
match()
, style()
등의 함수도 새롭게 추가되었으니 여기에서 전체 목록을 확인해 보세요.
설명되지 않은 부분이 있나요?