안녕하세요, 수월한 노션의 라이언입니다👋
노션 수식 작성이 길어지고 복잡해질수록 유지보수와 가독성이 어려워지는 경험들, 많으실텐데요.
혹시 똑같은 계산을 반복하거나, 복잡한 조건문을 중복해서 쓰고 계시진 않으신가요?
오늘은 이런 문제를 해결해주는 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] 부분이 반복되고 있는 걸 볼 수 있는데요.
이런 수식의 문제는,
- [prop("과제 점수") * 0.3 + prop("참여도") * 0.7]이 두 번 반복되기 때문에 수식이 길어진다.
- [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는 노션 수식 최적화의 핵심 도구입니다. 복잡한 수식을 효율적으로 관리하고 싶은 분들께 꼭 추천드려요.
궁금한 점이나 잘 해결되지 않는 점이 있다면 댓글로 남겨주세요 🙂
'수월한 노션📓 > 📝 노션 기초 가이드' 카테고리의 다른 글
[수월한 노션] 클릭 한 번으로 자동화! 노션 버튼 블록 완전 활용 가이드 (0) | 2025.04.06 |
---|---|
[수월한 노션] 데이터베이스에서 시간만 추출하기 (formatDate / hour & minute) (0) | 2025.03.29 |