# 리스트 관련 함수 - current

[예제로 익히는 노션 - 노션 강의 - 러기의 책상](https://slashpage.com/leogi-desk/5r398nmnrvdqzmvwje7y)

---

**데이터베이스 속성 > 수식 > 리스트 관련 함수 > current**

---

### current가 뭐지?

current는 노션에서 수식을 입력할 때 수식 목록에는 나오지 않는 형태의 값입니다. 직관적으로 설명하자면 수식에서 **현재 사용하고 있는 값**이죠. 보통 리스트(목록)에 있는 값에 특정한 조건을 부여해주기 위해서 사용됩니다.

_※ 잠깐! 노션의 속성에서 리스트가 될 수 있는 항목은 대표적으로 관계형 속성과 롤업 속성이 있습니다._

filter라는 함수를 예를 들어보겠습니다. filter는 리스트의 항목에서 부여한 조건이 참인 값을 모두 반환합니다. 간단한 함수를 봅시다. `filter([1, 2, 3], current > 1)`

위 함수는 "1, 2, 3를 보유하고 있는 리스트에서 1보다 큰 값을 반환한다."라는 의미입니다. 따라서 위 함수는 1보다 큰 숫자인 [2, 3]을 반환하게 됩니다. current는 이처럼 부등호를 사용하여 숫자와 관련된 조건을 부여할 수도 있지만, 그 외에도 텍스트, 날짜, 체크박스 등 다양한 형식의 조건을 부여할 수도 있습니다.

그런데 current는 다른 방식으로도 활용할 수 있습니다. 원래는 함수를 사용할 때 관계형 속성으로 연결된 페이지의 다른 속성값을 불러오려면 속성에서 롤업 속성을 추가한 다음, 그 롤업 속성을 수식에서 선택해주어야 하는데요. 만약 리스트와 관련된 함수를 사용할 때에만 롤업 속성의 값이 필요하다면 속성을 추가하는 대신, current를 사용해도 된답니다. 이건 예제에서 좀 더 자세히 알려드릴게요.

### current를 사용할 수 있는 노션 속성 함수

- **리스트 내의 항목 반환**

    - find(list, condition)

        - 조건이 TRUE를 반환하는 리스트의 첫 번째 요소를 반환합니다.

        - `find(["a", "b", "c"], current == "b")` = "b"

    - filter(list, condition) 

        - 조건이 TRUE인 리스트의 값을 반환합니다.

        - `filter([1, 2, 3], current > 1)`  = [2, 3]

- **숫자 반환**

    - findIndex(list, condition)

        - 조건이 TRUE로 평가되는 리스트에서 첫 번째 항목의 인덱스를 반환합니다.

        - `findIndex(["a", "b", "c"], current == "b")`  = 1

    - count(list, condition)

        - 조건이 TRUE인 목록의 요소 수를 반환합니다.

        - 조건이 제공되지 않으면, 총 요소 수(길이()와 동일)를 반환합니다.

- **할일목록(체크박스) 반환**

    - some

    - every

- **리스트를 리스트로 반환**map(list, expression)

    - map(list, expression)

        - 입력 리스트의 모든 항목에 대해 표현식을 호출한 결과로 채워진 리스트로 반환합니다.

        - `map([1, 2, 3], current + 1)`  = [2, 3, 4]

---

### 예제로 알아보기

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/012822_QxGKTZygU9iM7QGmFo?q=80&s=1280x180&t=outside&f=webp)

이 페이지는 제가 노션에서 읽은 책과 영화를 기록하는 곳입니다.([당신의 책갈피](https://slashpage.com/leogi-desk/leogi-readingnote) 템플릿) 상단에는 좋아하는 문장(대사), 하단에는 감상한 작품의 수를 기록해주는 위젯형 보기와 위시리스트와 감상한 작품을 기록하는 보기 등이 있습니다. 상반기에는 영상물을 위주로 보느라 책을 한 권밖에 읽지 않았다는 사실이 매우 충격적입니다. 분발해야겠습니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/013059_3lvojXvxUzMMjf5KST?q=80&s=1280x180&t=outside&f=webp)

암튼, 여기서 중요한 건 그게 아니죠. 원래는 없다가 추가된 항목이 있는데, 바로 오늘의 책 추천 위젯입니다. 데이터베이스를 갤러리 보기로, 썸네일 없이 제목과 버튼만 사용하여 오늘 읽을 컨텐츠를 추천받기 위해 만들어보았습니다.  작동 방식은, 먼저 관계형 속성에 읽을거리 목록을 추가 > 버튼을 누르면 추가된 목록에서 날짜에 따라 랜덤한 책을 추천 >  버튼을 다시 누르면 다른 책을 추천해주는 형태인데요. (자세한 수식이나 만드는 방법 등은 살짝 복잡해서 나중에 <버튼> 강의에서 다뤄보도록 하겠습니다.)

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/020604_5N5PbNY1wt87wWag6F?q=80&s=1280x180&t=outside&f=webp)

추천될 책 목록은 읽기 전, 읽는 중, 다시 읽을 책, 제일 좋아하는 책에 해당하는 태그로 필터를 걸어두었습니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/020412_7uuNlX36ZRfWFFq7Ni?q=80&s=1280x180&t=outside&f=webp)

관계형 속성에 추가된 책은 총 11권입니다. 저는 이 중에서 읽는 중이거나 완독한 책은 제외한 목록을 별도로 표시해두고 싶습니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/020947_C2OJCDZLLZdMJqvLoT?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/020915_SfoqRTVYJ6UdseeHSR?q=80&s=1280x180&t=outside&f=webp)

속성 추가 버튼을 클릭한 다음, 수식 속성을 선택합니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/021110_b9TlRd6XuGOLfkZU65?q=80&s=1280x180&t=outside&f=webp)

그 다음 속성의 이름을 읽기 전이라고 써주고, 아이콘도 바꿔주었습니다. 이제 유형 아래에 있는 수식 편집 버튼을 선택합니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/021324_uy1z5O7KjC59bXDN7H?q=80&s=1280x180&t=outside&f=webp)

이제 사용자의 수식 칸에 커서를 놓고 수식을 입력합니다.

관계형 속성에 추가된 목록에서 우리는 필터를 사용하여 완독 태그 또는 읽는 중 태그가 선택된 도서가 아닌 책만 골라주어야 합니다. 따라서 filter 함수를 사용해야합니다.

▶ `filter(``_list, condition_``)`

필터에서 불러올 리스트는 관계형 속성인 책 바구니입니다.

▶ `filter(prop("책 바구니"), ``_condition_``)`

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/023609_Oad29WXByspTm2e6SN?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/024013_3tcOQwfSbW7GATQ72P?q=80&s=1280x180&t=outside&f=webp)

"완독" 또는 "읽는 중" 태그를 포함하는~이라는 값을 불러오려면 includes 함수를 사용해야합니다. 그런데 우리는 포함하지 않는 값을 불러와야하죠. 그러니 not includes라고 입력해줍니다.

그런데 여기서 문제가 발생합니다. includes 함수는 현재 filter 함수 안에 들어간 함수라서 current를 입력하면 아래 함수 목록에서 current가 뜨지 않습니다. 엔터를 눌러도 마찬가지입니다.(원래 정상적으로 함수를 입력하면 아래에 뜨는 함수 목록에서 선택할 수 있으므로 엔터를 치면 자동으로 해당 함수가 선택됩니다.)

이럴 때 해결 방법은 간단합니다. 온점"."을 입력하면 정상적으로 current 값을 불러옵니다. 그러면 왼쪽과 같이 책 바구니의 원본 데이터베이스인 책 데이터베이스의 속성을 선택할 수 있게 됩니다. 우리는 태그를 불러와야하므로 태그 속성을 선택해줍니다.

▶ `filter(prop("책바구니"), 
not includes(current.prop("태그"),``_search_``)`

태그에서 검색해줄 단어인 "완독"을 입력한 다음 괄호를 닫아줍니다. 우리는 두 개의 필터를 사용할 것이므로 and 함수를 사용해야합니다. and를 입력한 다음 엔터를 치지 말고 앞에 있던 not includes 함수를 복사한 뒤 붙여넣습니다. 그리고 "완독" 대신에 "읽는 중"을 입력해줍니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/022151_ZtVCv6HAcmmE695DMY?q=80&s=1280x180&t=outside&f=webp)

완성된 수식입니다.

▶ `filter(prop("책 바구니"),not includes(current.prop("태그"),"완독")and not includes(current.prop("태그"),"읽는 중"))`

해당 수식으로 불러온 값이 속성에서 어떻게 보여지는지 확인해보겠습니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/025009_pLVPX0nju6WRnS7351?q=80&s=1280x180&t=outside&f=webp)

완독과 읽는 중인 도서를 제외한 7권의 책이 수식에 나타나는 것을 확인할 수 있습니다.

만약 수식을 고치다가 아래와 같이 current로 불러온 속성이 해제되면 current 뒤에 있는 온점을 지웠다가 다시 입력하면 정상적으로 속성을 불러옵니다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250801/024053_1BRk1KJTQDAfmAU98k?q=80&s=1280x180&t=outside&f=webp)

주의할 점은, current로 불러오는 속성 중 파일과 미디어는 표시되지 않는다는 것입니다. 따라서, 만약 파일과 미디어에 넣은 썸네일을 불러오려면 롤업속성을 추가하여 파일과 미디어 속성을 선택해야 합니다.

---

current까지 쓸 정도라면 아마 다른 수식들 사용도 어렵지 않을 거예요. 궁금한 점이 있다면 댓글 남겨주세요!

[이 글이 마음에 들었다면 후원해주세요!](https://ko-fi.com/leogi)

For the site tree, see the [root Markdown](https://slashpage.com/leogi-desk.md).
