본문 바로가기

수월한 노션📓/📝 노션 기초 가이드

[수월한 노션] 노션 수식, let과 lets로 깔끔하게 정리하는 법

안녕하세요, 수월한 노션의 라이언입니다👋


노션 수식 작성이 길어지고 복잡해질수록 유지보수와 가독성이 어려워지는 경험들, 많으실텐데요.

혹시 똑같은 계산을 반복하거나, 복잡한 조건문을 중복해서 쓰고 계시진 않으신가요?

 

오늘은 이런 문제를 해결해주는 let / lets 함수의 기본 사용법과 심화 활용법을 소개해드릴게요.


🧠 let / lets 함수란?

let과 lets 함수는 복잡한 수식이나 조건을 하나의 변수로 선언하여 동일한 수식이 반복되는 걸 줄여주는 함수에요.

반복이 줄어들기 때문에 수식의 가독성이 높아지고, 유지보수가 용이해진답니다.

함수 설명 예시
let() 하나의 변수를 선언하여 계산

let(
  변수, 변수에 할당할 값/조건/수식,
  변수를 활용한 계산
)
let(
  x, 3,
  x + 2
)
※ 결과: 5
lets() 여러 개의 변수를 동시에 선언하여 계산

lets(
  변수1, 변수1에 할당할 값/조건/수식,
  변수2, 변수2에 할당할 값/조건/수식,
  (...),
  변수들을 활용한 계산
)
lets(
  x, 3,
  y, 2,
  x * y
)
※ 결과: 6

🌱기본 사용법

✅ let 함수 (변수 1개)

let 함수는 변수를 하나만 생성할 수 있는 함수예요. 그래서 사실 저는 let보다는 lets를 더 많이 사용하고 있어요.
(굳이 하위호환 함수를 쓸 필요가...😓)

😐 let 함수를 쓰기 전

round(prop("과제 점수") * 0.3 + prop("참여도") * 0.7)
+
if(round(prop("과제 점수") * 0.3 + prop("참여도") * 0.7) > 80, 10, 0)

위에서는 [prop("과제 점수") * 0.3 + prop("참여도") * 0.7] 부분이 반복되고 있는 걸 볼 수 있는데요.

 

이런 수식의 문제는,

  1. [prop("과제 점수") * 0.3 + prop("참여도") * 0.7]이 두 번 반복되기 때문에 수식이 길어진다.
  2. [prop("과제 점수") * 0.3 + prop("참여도") * 0.7]이 정확히 무엇인지 알기 어렵다.

이 두 가지 문제점이 let 함수로 쉽게 해결됩니다.

😄 let 함수를 쓴 후

let(
  score, round(prop("과제 점수") * 0.3 + prop("참여도") * 0.7),
  score + if(score > 80, 10, 0)
)

이전 함수에서 반복되던 [prop("과제 점수") * 0.3 + prop("참여도") * 0.7] 부분을 score라는 변수로 선언하니,

score가 80점을 넘는 경우 10점의 가산점을 주고, 그렇지 않은 경우에는 0점이라는 수식이 명확하게 보이네요.

⚠️ 변수명은 알아보기 쉽게 설정하세요!
변수명을 a, b처럼 축약하지 말고, 의미 있는 이름(score, status)으로 지정하세요. 나중에 수식을 수정하거나 개선할 때 더 빠르게 수정하고 바꿀 수 있어요.

✅lets 함수 예시 (변수 2개 이상)

lets 함수는 변수를 여러 개 생성할 수 있는 함수예요.
저는 수식이 정말 간단하지 않은 한, 항상 lets()를 사용하여 각 값/수식/조건을 변수로 선언해두고 사용한답니다.

😐 lets 함수를 쓰기 전

if(length(prop("제목")) > 10, 40, 0)
+ if(contains(prop("태그"), "SEO"), 30, 0)
+ if(prop("완료") == true, 30, 0))

지금 수식은 한 줄 한 줄 읽어가며 해석을 해야하는데요. 특히 이 수식처럼 여러가지 조건이 섞인 경우라면 더욱 복잡해질 수밖에 없죠.

 

이때 lets 함수를 사용한다면 조금 더 수식을 편하게 이해하고 사용할 수 있게 됩니다. 😆

 

😄 lets 함수를 쓴 후

lets(
  isLongTitle, length(prop("제목")) > 10,
  hasSEO, contains(prop("태그"), "SEO"),
  isComplete, prop("완료") == true,
  if(isLongTitle, 40, 0) + if(hasSEO, 30, 0) + if(isComplete, 30, 0)
)

제목이 10글자를 넘는 부분을 isLongTitle로, "SEO"라는 태그를 포함했는지 여부를 hasSEO로, 완료되었는지를 isComplete로, 각각을 구체적인 변수로 선언해두니 if 부분의 수식이 더 명쾌하게 읽히네요.

 

이렇게 lets 함수로 변수를 만들어두면 나중에 수식 또는 기준을 바꿔야 할 경우에도 특정 변수만 수정하면 되기 때문에 유지보수가 훨씬 편리해집니다.

💡 Tip
lets를 이용해 수식을 작성할 땐 한 줄로 작성하기보다 변수 하나당 한 줄씩, Shift + Enter로 구분해두세요.
추후 유지보수가 훨씬 수월해진답니다.

🚀 심화 사용법

위 기본 사용법을 충분히 익히셨다면, 아래 심화 사용법을 확인해보세요. 노션 수식 활용이 더욱 용이해진답니다.😀

조건을 변수로 선언해 중첩 조건 간소화

수식이 복잡해지는 건 주로 여러 개의 중첩된 if 조건문을 사용할 때인데요. 이때 lets로 특정 조건을 변수화하면 복잡한 조건문이 더욱 간결하고 명확해져요.

😐 Before

if(prop("상태") == "완료" or prop("상태") == "보류", "종결", "진행 중")

😄 After

lets(
  isDone, prop("상태") == "완료" or prop("상태") == "보류",
  if(isDone, "종결", "진행 중")
)

 


✅ 마무리

let, lets는 노션 수식 최적화의 핵심 도구입니다. 복잡한 수식을 효율적으로 관리하고 싶은 분들께 꼭 추천드려요.

 

궁금한 점이나 잘 해결되지 않는 점이 있다면 댓글로 남겨주세요 🙂