노션 Formula 2.0: map(), filter(), flat() 함수를 활용한 중첩 배열 데이터 가공
노션 데이터베이스를 스마트하게 만드는 함수 활용법
노션의 Formula 2.0 업데이트는 데이터베이스 관리의 판도를 완전히 바꾸어 놓았습니다. 이전 버전에서는 단순히 텍스트를 연결하거나 숫자를 계산하는 수준에 머물렀다면, 이제는 프로그래밍 언어에서나 가능했던 복잡한 데이터 배열 가공이 가능해졌습니다. 특히 map, filter, flat 함수는 여러 개의 항목이 얽혀 있는 중첩 배열 데이터를 자유자재로 다룰 수 있게 해주는 핵심 도구입니다. 이 함수들을 제대로 이해하면 노션을 단순한 메모장이 아니라 강력한 생산성 도구로 진화시킬 수 있습니다.
데이터 가공의 핵심 함수 세 가지 이해하기
노션에서 배열(Array)이란 여러 개의 값이 모여 있는 데이터 덩어리를 의미합니다. 관계형 데이터베이스를 사용하다 보면 ‘태그’나 ‘연결된 페이지’처럼 여러 값이 한 칸에 담기는 경우가 많은데, 이때 이 세 가지 함수가 빛을 발합니다.
- map 함수: 배열 안에 있는 각각의 요소에 동일한 규칙을 적용하여 새로운 배열을 만듭니다. 예를 들어, 사람 이름이 담긴 배열에서 이름 뒤에 ‘님’을 붙여 새로운 목록을 뽑아낼 때 사용합니다.
- filter 함수: 배열 중에서 특정 조건에 맞는 데이터만 골라냅니다. ‘완료된 할 일’만 골라내거나 ‘특정 카테고리’에 해당하는 데이터만 추출할 때 필수적입니다.
- flat 함수: 중첩된 배열을 한 단계 풀어줍니다. 배열 안에 배열이 들어있는 복잡한 구조를 평평하게 펴서 다루기 쉬운 상태로 만듭니다.
실생활에서 활용하는 데이터 가공 시나리오
이 함수들은 구체적으로 어떤 상황에서 도움이 될까요? 가장 흔한 사례는 ‘프로젝트 관리’와 ‘가계부 관리’입니다.
프로젝트와 태스크의 연결
프로젝트 데이터베이스와 태스크 데이터베이스가 연결되어 있다고 가정해 봅시다. 프로젝트 하나에는 수십 개의 태스크가 있습니다. 이때 ‘완료되지 않은 태스크의 개수’를 프로젝트 페이지에서 바로 확인하고 싶다면 어떻게 해야 할까요? 바로 map과 filter를 조합해야 합니다.
prop("태스크").filter(current.prop("상태") != "완료").length()와 같은 공식을 사용하면, 수많은 태스크 중에서 상태가 완료가 아닌 것만 골라내고 그 개수를 즉시 계산할 수 있습니다.
가계부의 카테고리별 합계
여러 항목이 섞여 있는 지출 내역에서 특정 카테고리의 합계만 뽑아내거나, 월별로 지출된 항목들의 총액을 계산할 때도 유용합니다. 특히 여러 개의 태그가 달린 지출 건들을 정제하여 보고서 형태로 보여줄 때 map 함수를 통해 깔끔한 텍스트로 변환하면 가독성이 비약적으로 상승합니다.
함수 조합의 마법 map filter flat 활용 팁
하나의 함수만 사용할 때보다 이들을 조합할 때 진정한 위력이 나타납니다. 전문가들은 보통 filter → map → join의 순서로 데이터를 가공하는 것을 추천합니다.
- 단계 1: filter로 불필요한 데이터를 제거합니다. (예: 마감 기한이 지난 항목 제외)
- 단계 2: map으로 원하는 속성만 추출합니다. (예: 태스크 이름만 가져오기)
- 단계 3: flat으로 배열을 평탄화합니다. (예: 관계형 데이터에서 가져온 중첩 배열을 단일 배열로 변환)
- 단계 4: join으로 쉼표나 줄바꿈을 넣어 보기 좋게 만듭니다.
예를 들어, prop("팀원").map(current.prop("이름")).join(", ") 공식을 사용하면 관계형으로 연결된 팀원들의 이름을 쉼표로 구분된 깔끔한 텍스트로 변환할 수 있습니다. 이는 보고서를 만들 때 매우 유용합니다.
흔한 오해와 사실 관계
오해: 함수를 많이 쓰면 노션이 느려진다?
사실입니다. 하지만 Formula 2.0은 이전보다 훨씬 효율적으로 설계되었습니다. 수천 개의 행이 있는 데이터베이스에서 지나치게 복잡한 함수를 사용하면 로딩 속도가 저하될 수 있습니다. 중요한 데이터에만 함수를 적용하고, 불필요한 계산은 자동화 도구(Make, Zapier 등)로 넘기는 전략이 필요합니다.
오해: 코딩을 몰라도 사용할 수 있나?
물론입니다. 노션의 공식 창은 직관적인 인터페이스를 제공합니다. 프로그래밍 언어의 문법과 유사하지만, 노션은 친절한 자동 완성 기능을 제공하므로 하나씩 따라 해보는 것만으로도 충분히 익힐 수 있습니다.
전문가의 조언: 데이터 구조 설계가 먼저다
많은 사용자가 함수부터 고민하지만, 사실 가장 중요한 것은 데이터베이스의 설계입니다. 함수는 데이터를 가공하는 도구일 뿐, 데이터베이스의 구조가 엉망이면 아무리 좋은 함수를 써도 원하는 결과를 얻기 어렵습니다.
데이터베이스를 만들 때는 ‘이 데이터가 왜 필요한가?’, ‘어떤 속성이 중복되는가?’를 먼저 고민하세요. 관계형 데이터베이스를 최소화하고 필요한 경우에만 연결하는 습관을 들이면, 나중에 Formula를 작성할 때 훨씬 수월해집니다. 또한, 복잡한 공식은 한 번에 작성하지 말고 메모장에 단계별로 작성하여 오류를 줄이는 것이 좋습니다.
자주 묻는 질문과 답변
Q: 배열이 무엇인지 이해하기 어렵습니다. 쉬운 예시가 있을까요?
배열은 ‘장바구니’라고 생각하면 됩니다. 장바구니에 사과, 배, 포도가 담겨 있다면 이것이 하나의 배열입니다. map은 장바구니 속의 과일들에 각각 가격표를 붙이는 것이고, filter는 장바구니에서 ‘상한 과일’만 골라내는 것입니다.
Q: flat 함수는 어떤 상황에서 꼭 필요한가요?
관계형 데이터베이스를 통해 데이터를 가져오면 종종 배열 안에 또 배열이 들어있는 구조(중첩 배열)가 됩니다. 이 상태에서는 데이터를 계산하거나 정렬하기 어렵기 때문에 flat 함수를 사용해 구조를 단순화해야 합니다.
Q: 함수 오류가 발생하면 어떻게 해결하나요?
노션 공식 편집기는 오류가 발생한 지점을 빨간색으로 표시해 줍니다. 주로 괄호의 개수가 맞지 않거나, 숫자와 텍스트를 잘못 더했을 때 오류가 납니다. ‘type mismatch’ 오류가 뜬다면 데이터 형식을 확인해 보세요. 텍스트를 숫자로 바꾸려면 toNumber() 함수가 필요합니다.
비용 효율적인 활용 방법
노션의 유료 플랜을 사용하지 않아도 이 함수들은 모두 무료로 사용할 수 있습니다. 외부 자동화 툴을 유료로 결제하기 전에, 노션 내부에서 Formula로 해결할 수 있는 부분이 있는지 먼저 확인해 보세요. 예를 들어, 매달 지출 합계를 자동으로 계산해 주는 서비스를 구독하는 대신, Formula를 활용해 데이터베이스 내에서 직접 계산하면 연간 수십만 원의 비용을 절감할 수 있습니다.
또한, 잘 만들어진 Formula는 재사용이 가능합니다. 한 번 작성한 공식은 복사해서 메모장에 저장해 두거나, 템플릿으로 만들어 두면 다른 데이터베이스에도 그대로 적용할 수 있어 생산성을 극대화할 수 있습니다.
효율적인 데이터 정리를 위한 체크리스트
- 데이터베이스의 각 속성이 올바른 유형(텍스트, 숫자, 관계형 등)으로 설정되어 있는가?
- map, filter, flat 함수를 사용하기 전에 데이터 구조가 중첩되어 있는지 확인했는가?
- 공식이 너무 길다면 중간에 변수(let 함수 활용)를 사용하여 가독성을 높였는가?
- 결과값이 의도한 대로 나오는지 소량의 데이터로 먼저 테스트했는가?
노션 Formula 2.0은 단순히 기능을 나열하는 것을 넘어, 나만의 업무 프로세스를 최적화하는 도구입니다. 처음에는 함수가 낯설고 어렵게 느껴질 수 있지만, map, filter, flat 세 가지만 마스터해도 노션을 다루는 수준이 완전히 달라질 것입니다. 오늘 당장 사용 중인 데이터베이스에 작은 변화를 시도해 보세요. 작은 공식 하나가 당신의 업무 시간을 획기적으로 줄여줄 것입니다.
댓글 0
첫 댓글을 남겨보세요.