앞의 포스트에서 봤던 노션의 구조, 블록은 사실 다른 메모 어플리케이션에서도 지원을 하는 내용들다.
노션이 조금 더 완성도 있게, 더 많이 지원해주는 부분이 있지만, 사실 이 블록들보다 노션이 힘을 쓰고 있는 부분은 데이터베이스다.
"데이터베이스? 그거 백엔드에서 다루는 거잖아."
데이터베이스라고 하면 개발자의 전유물같은 느낌으로 받아들여지는데, 최근에는 개발자로 많은 분야의 사람들이 활동하게 되면서 그런 감각이 조금 사라진 것 같다.
사실 데이터베이스라는 것 자체가 개발자가 많이 쓰지만 개발자를 위한 것 보다는 데이터를 효율적으로 다루기 위해 나온 것이라고 보는게 더 맞을 거다.
그것을 개발자가 사용하는 것 뿐이다.
그런 감각, 그런 개념으로 접근하게 되면 노션에서 데이터베이스를 사용하는 것은 문서 데이터를 효율적으로 다루기 위함일 것이다.
그리고 실제로 이를 사용하면 문서를 효율적이고 체계적으로 다룰 수 있게 된다.
"조금 어려워 보이는 걸?"
DB 수업을 처음 들었을 때는 굉장히 어려웠고, 따라가기 힘든 개념들이 있었는데 노션에서 사용하는 DB는 그만큼 어렵지 않다.
저희가 DB를 처음부터 설계하고 사용하는 것이 아니라 노션에서 제공하는 기본적인 DB 템플릿을 저희의 필요에 맞게 꾸미는 것이기 때문이다.
사실 말로 계속 해봐야 직접 보는 것 만큼 다가오지 않을 테니 일단 보면서 생각해보자.
데이터베이스 훝어보기
우선 데이터베이스를 하나 만들고 시작해보자.
가장 먼저 데이터베이스를 생성할 때 인라인과 전체 페이지의 두 가지 옵션이 존재한다.
인라인은 현재 페이지에 데이터베이스 블록을 넣는 것이고, 전체 페이지는 현재 페이지의 하위 페이지에 데이터베이스 페이지를 만드는 것이다.
우리는 데이터베이스를 현재 페이지에서 보고 싶으니 인라인으로 선택해주면 된다.
만약 전체 페이지로 만들었다고 해도 현재 페이지에서 못보는 것은 아니니 걱정하지 않아도 된다.
(이에 대한 내용은 뒤의 데이터베이스 보기에서 나온다.)
데이터베이스를 만들고 나면 이름과 태그 항목과 함께 빈 아이템 3개를 준다.
노션에서 기본적으로 제공하는 것은 이 3가지이며, 이 중 이름 칸을 빼고는 나머지는 자유롭게 다른 형식으로 바꿀 수 있다.
태그의 경우 이메일이라던가 숫자의 형식으로 바꿀 수 있지만, 이름은 다른 형식으로 바꿀 수 없다. ▼
노션에서 제공하는 데이터베이스는 실제 개발에서 사용하는 데이터베이스의 개념을 상당히 많이 사용한다.
PK, attribute, view, relation 등등… 많은 개념들을 사용하지만, 이를 굉장히 쉽게 사용할 수 있게 해주는 노션만의 데이터베이스 특성이 있다.
바로 ‘Key가 없다’ 와 ‘데이터베이스 아이템은 모두 페이지다’ 이다.
Key가 없다
원래 알던 데이터베이스라면 Primary Key와 같이 데이터를 식별할 수 있는 Key가 존재한다.
물론 노션 시스템 내부적으로는 Key가 있을 것이지만, 사용자의 입장에서는 Key는 없는 존재다.
PK로 사용되는 속성도 없고, 고정된 이름 속성만 존재하기에 데이터베이스 항목이 이렇게 존재할 수 있다. ▼
데이터베이스 아이템은 모두 페이지
데이터베이스에 어떤 정보를 담을지는 데이터베이스 설계자가 정하는 부분이다.
노션의 경우 데이터베이스가 기본적으로 페이지 데이터를 담도록 설정해놓았다.
데이터베이스 아이템을 만들었을 때 나오는 빈 페이지는 사용해도, 안해도 그만이긴 하지만 페이지 자체는 생성된다.
페이지를 사용하게 데이터베이스를 꾸며도 좋고, 사용하지 않고 속성값만 가지게끔 데이터베이스를 꾸며도 좋다.
이런 두가지 특징으로 사용자가 데이터베이스를 더 쉽게 사용할 수 있도록 도와준다.
다음으로 데이터베이스 속성에 대해서 보도록 하겠다.
데이터베이스의 속성
속성, 애트리뷰트, 어떤 것으로 불러도 괜찮지만 앞에서 봤듯이 노션의 데이터베이스는 Key가 딱히 없다.
그래서 기존의 관계형 데이터베이스 지식과 비교하면 헷갈릴 수 있다.
다행인것은 속성을 속성 자체로 생각하면 쉽다는 것이다.
‘해당 아이템이 이런 속성을 가진다’ 정도로 생각하고 사용하면 굉장히 쉽게 사용할 수 있다.
속성 종류와 사용
노션 데이터베이스에서 기본적으로 제공하는 속성들은 20종 정도 된다. ▼
하지만 이 중에서 수식, 관계형, 롤업 정도의 속성을 제외하면 직관적인 내용들이기에 필요한 속성을 사용하면 된다. ▼
속성 사용에 대해서는 노션 실습에서 다루도록 하겠다.
데이터베이스의 보기
데이터베이스는 데이터를 효율적으로 저장하고 관리함에 초점을 맞춘다.
하지만 열심히 저장한 데이터를 제대로, 그리고 필요에 맞게 볼 수 없다면 데이터를 저장한 이유가 없다.
그런 이유로 전통적인 관계형 데이터베이스는 View라는 것을 제공하는데, 노션에서도 보기라는 것으로 비슷하게 제공해준다.
먼저 어떤 보기가 있는 지 본다.
데이터베이스 명령어를 입력하면 총 6가지 보기가 나온다.
각 보기의 모습은 아래와 같다.
각 보기들은 데이터베이스의 특성에 맞게 바꿔주면 효율적으로 사용할 수 있다.
표와 리스트의 경우엔 보여줌의 차이가 크지 않지만, 캘린더와 타임라인, 보드, 캘린더의 경우에는 데이터베이스의 아이템들을 굉장히 효율적으로 보여줄 수 있다.
무엇을 사용해야 올바른지에 대한 정답은 없다.
자신이 최선이라고 생각한 설계에 맞게 보기를 선택하면 된다.
그러나 보기는 DB의 View가 아니다
아래는 데이터베이스의 뷰를 설명하는 글이다.
뷰는 일종의 테이블로서 이에 속해있는 행들이 실제 DB에 저장되지 않고 뷰 정의(View Definition)를 이용하여 필요한 대로 계산됩니다.
쉽게 말하면 휘발적인 임시 DB 테이블입니다.
전통적인 관계형 데이터베이스의 뷰는 복제본과 같기에 원본이 수정되지 않다.
하지만 노션의 보기는 이와는 조금 다르다.
사용자의 필요에 맞게 데이터베이스의 항목을 보여주지만, 복제본과 같은 개념이 아닌 동기화 블록과 같은 개념이라 보기의 데이터를 수정하면 원본이 수정된다.
그래서 노션의 DB를 조작할 때는 조심해야한다.
데이터의 조작이 곧 원본을 수정하는 것과 같기 때문이다.
‘데이터베이스 잠금이라는게 있던데, 이거 쓰면 되는거 아닌가?’
아쉽게도 해당 기능은 데이터베이스의 아이템에 대한 잠금이 아니라, 속성에 대한 잠금이다.
잠금을 걸어도 여전히 데이터베이스에는 접근할 수 있고 아이템 생성도 가능하다.
그러니 협업을 할 때에는 별도의 권한을 통해 관리하거나, 업데이트 로그를 통해 불순한 움직임을 보이는지 감시할 필요가 있다.
데이터베이스 필터와 정렬
앞에서 봤던 보기는 데이터를 정제해주지는 않다.
데이터를 정제하기 보다는 다른 형식, 레이아웃으로 보여준다.
원하는 유형의 데이터를 보여주거나 데이터의 순서를 정할 때는 필터와 정렬을 사용해야한다.
필터와 정렬 모두 데이터베이스의 속성을 기준으로 한다.
정렬
데이터베이스의 상단부에 정렬버튼을 누르면, 데이터베이스 속성들의 목록이 나온다. ▼
여기서 속성을 추가하여, 정렬의 기준을 정할 수 있다. ▼
다른 속성에 대한 기준을 추가하여 두번째 기준도 정할 수 있다. ▼
필터
필터도 정렬과 같은 방법으로 설정할 수 있다. ▼
각 속성의 값들로 기준을 정할 수 있다. ▼
그러나 정렬과 다른 점은 고급 필터가 있다는 것이다.
고급 필터
고급 필터도 설정은 기본 필터와 같다. ▼
하지만 다른 점은 조금 더 세부적으로 필터를 걸 수 있다는 것이다. ▼
여러 개의 필터를 걸어 원하는 값만 골라서 볼 수 있다. ▼
필터와 정렬에 대한 자세한 내용은 페이지 구성에서 다루겠다.
템플릿
데이터베이스는 템플릿 기능을 제공한다.
이전에 봤던 버튼 블록과 기능이 거의 같다고 보면 된다.
데이터베이스 오른쪽 위에 새로 만들기의 토글을 열면 새 템플릿을 생성하는 버튼이 있다. ▼
이를 누르면 템플릿 편집 페이지가 나타나며, 이 페이지에서 원하는 페이지 레이아웃을 설정하면 된다. ▼
템플릿 제작이 끝나고 다시 토글을 열면 고라니 템플릿이 있다.
왼쪽의 메뉴 버튼을 열면 기본으로 설정할 수 도 있다. ▼
템플릿 설정이 끝난 후 템플릿을 이용하여 페이지를 만들면 아까 설정한 페이지를 자동으로 만들어 보여준다. ▼
이렇게 템플릿을 만들어 데이터베이스 아이템들을 효율적으로 생성할 수 있다.
마치며
사실 데이터베이스의 기능은 앞에서 이야기한 것의 몇배는 많이 남아있다.
하지만 기능에 대해 하나씩 설명하게 되면 글과 강의가 굉장히 늘어지기 때문에 이후의 데이터베이스 기능들은 실습을 통해 하나씩 배워보는 것으로 하겠다.
'NOTION' 카테고리의 다른 글
5. 데이터베이스 속성 심화 (2) | 2024.03.13 |
---|---|
[노션강의] 3. 블록 소개 (0) | 2024.02.27 |
[노션 강의] 2. 노션의 기본 구조와 사용 (0) | 2024.02.23 |
[노션 강의] 1. 노션이란? (0) | 2024.02.21 |