Notion으로 Routine만들기
노션은 데이타베이스를 기반으로 하고 마치 엑셀에서 처럼 코딩을 이용하여 원하는 것을 구현할 수 있다. 그런데 엑셀과 같은 스프레드시트와 노션의 가장 큰 차이점은 노션에서는 데이타를 선택하는 것이 아니라 열(필드)를 선택하여 함수를 적용한다는 것이다. 아래와 같은 기본자료 데이타베이스를 만들고 루틴을 코딩하여보자. 코딩을 할 때 기본적으로 알아야 할 함수를 소개하면 1) 각 열의 값을 가져올 때는 prop("열 이름") 을 사용한다. 2) 조건문 if(조건,참,거짓) if(prop(“합”)>90,true,false) //체크박스 생성 3) slice : 지정한 위치의 텍스트만 가져오는 함수 slice(“notion”,2)=tion slice(“notion”,2,5)=tio 4) ceil, floor, round :올림, 내림, 반올림함수 ceil(2.3)=3 floor(2.3)=2 round(5.5)=6 5) format, toNumber(텍스트 또는 숫자로 변경하는 함수) format(value) : 모든 인수를 텍스트로 변환 후 출력 toNumber(value) : 모든 인수를 숫자로 변환 후 출력 특히 체크박스를 숫자로 변환하면 체크되어 있을 경우 1, 그렇지 않을 경우 0으로 가져온다. 아래 그림과 같은 데이터베이스 테이블을 만들고 필드명을 선택하여 수식의 속성으로 변환하고 수식편집으로 들어가면 상단에 입력창이 나오고 그곳에 수식을 입력하면 된다. 위의 그림에서 필드명 '합'을 클릭하여 수식편집으로 가면 아래 내용을 확인할 수 있다. round((if(prop("일어나기") <= 7000, 1, 0) + if(prop("운동하기") >= 30, 1, prop("운동하기") / 30) + if(prop("책읽기") >= 30, 1, prop("책읽기") / 30) + if(prop("복습") >= 60, 1, prop("복습") / 60) + toNumber(prop("점심"))) * 100 / 5) // 위 내용은 각각의 항목을 반올림함수와 조건문을 이용하여 조건에 맞게 합산한 것이다. 특히 점심식사 체크박스를 toNumber함수로 불러오면 체크되어 있을 경우 1, 그렇지 않을 경우 0으로 가져온다. 그리고 이 합산값을 이용하여 합산 결과를 진행상황으로 보여주는 부분이다. if(prop("합") / 100 >= 1, "■■■■■■■■■■ 100%", format(slice("■■■■■■■■■■", 0, floor(prop("합") / 10)) + format(slice("□□□□□□□□□□", 0, ceil(10 - prop("합") / 10)) + " " + format(round(prop("합"))) + "%"))) 위 코드는 조건문을 이용하여 합을 100으로 나눈값이 1이상이면 100%가 나타나게 하고, 그렇지 않으면 그 값을 slice함수를 이용하여 진행률로 나타내게 하는 내용이다. 특히 문자열의 속찬네모와 속빈네모를 이어붙여서 진행률의 표현이 가능하다.