저희 회사는 작은 스타트업이라, 연차를 관리할 사람이 따로 없어요.
그래서 그런 걸 좋아하는 제가 노션으로 연차대장을 만들어서 써왔답니다.
정확하게 근로기준법 기준으로 제작되었고, 한 번 만들어두면 크게 손대지 않아도 돼요.
내용이 조금 복잡한데 설명을 열심히 쓰기는 귀찮아서 약간 알아듣기 어려우실 수도 있어요... 힘내서 해보아요!
* 수식이 많아요. (이 색으로 배경을 칠한 게 수식이에요.) 혹시 테이블 항목들의 이름을 변경하신다면, 수식의 props 안에 들어가는 항목 이름도 변경해주셔야 합니다.
테이블이 두 개 필요합니다. 저는 이름을 각각 연차 현황, 휴가 사용 리스트로 정했습니다.
1. 연차 현황 테이블
연차 현황부터 봅시다.
연차 현황에 들어가는 항목은 다음과 같습니다.
- 이름
- 입사일 : Date type으로 넣어줍니다.
- 지급연차 : (prop("근속연수") > 0) ? floor(15 + (prop("근속연수") - 1) / 2) : dateBetween(now(), prop("입사일"), "months")
근로기준법에 의거한 연차를 계산해주는 수식입니다. 근속연수가 1년 이상이면 (15+(근속연수-1))/2 값을 내림합니다. 이러면 만 1년, 2년 = 15개, 만 3년, 4년 = 16개, 만 5년, 6년 = 17개 ... 식으로 연간 연차가 계산됩니다. 근속연수가 1년 미만이면 입사일과 현재일자 사이에 몇 달이 있는지 계산해서 해당 달의 갯수만큼 연차를 부여합니다.
- 사용함 : Rollup으로 휴가 사용 리스트의 당해년도 사용 개수를 가져옵니다. 계산은 합계(sum)를 선택합니다.
- 남은연차 : prop("지급연차") + prop("추가연차") - prop("결근포함월") - prop("사용함")
사용하거나 사용 예정인 연차를 제외한 가용 연차 갯수입니다.
- 결근포함월 : 1년 미만 근무자가 결근월이 있을 때에 작성합니다. 근로기준법상, 1년 미만 근무자는 1개월을 만근하여야 1개월+1일째에 1개의 연차휴가가 생성됩니다. 다르게 말해, 결근이 있는 달에는 연차휴가가 생성되지 않습니다. 여기에 입력하면 남은 연차에서 해당 값을 제해서 연산합니다.
- 추가연차 : 만 1년 이상 2년 미만 근무자가 만 1년 근무 이전에 생성된 연차를 사용하지 않았다면, 해당 연차의 유효기간을 체크하여 추가연차란에 수기로 작성해주어야 합니다. 저의 경우, 만 1년 이전에 7개를 덜 사용했어서, 7을 입력했습니다. 만 2년이 되는 시점에는 해당 란을 공란으로 만들어주어야 합니다.
- 확인 : 휴가 사용 리스트와 Relation합니다. 휴가 사용 리스트의 연차 체크에서 사용자 본인의 이름을 클릭한 항목들이 쌓입니다.
- 근속연수 : dateBetween(now(), prop("입사일"), "years") 오늘 날짜와 입사일을 비교하여 계산합니다.
2. 휴가 사용 리스트 테이블
이번에는 휴가 사용 리스트입니다.
- 이름
- 종류 : multi-select type입니다. 연차, 반차, 반반차 등을 선택할 수 있습니다. 회사에서 반차/반반차를 지원하지 않는다면, 해당하는 내용의 타입만 만드시면 됩니다.
- 당해년도 사용 개수 : (prop("datebetween") >= 0) ? prop("사용일수") : 0 datebetween이 0 이상이면(연차 생성/사용 기간 내에 사용했으면 = 이번해에 생성된 연차를 사용한 내역이면) 사용일수를 반환하고, 아니라면 0을 반환합니다.
- 사용일수 : dateBetween(end(prop("일자")), start(prop("일자")), "days") + 1 - toNumber(contains(prop("종류"), "반차")) / 2 - toNumber(contains(prop("종류"), "반반차")) / 4 - toNumber(contains(prop("종류"), "시차")) / 8 * 7 종류가 연차면 일자의 시작일-종료일 간의 날짜 수를 1로 쳐서 계산하고, 반차면 0.5, 반반차면 0.75, 시차면 0.875를 빼 사용일수를 계산합니다. (더하지 않고 빼는 이유는, 일단 날짜를 선택하면 1로 시작하기 때문입니다.)
- 연차 체크 : 연차 현황과 Relation합니다. 설정하고 연차 사용자 본인의 이름을 클릭하면 사용일수가 count됩니다. (연차 사용 시 필수로 선택해주어야 합니다.)
- 일자 : 사용일을 체크해줍니다. 연차를 여러 주에 걸쳐서 사용하는 경우, 휴일은 제외하고 여러 기간으로 나누어 업로드해야 합니다. 예를 들어, 주말 휴무인 사람이 수~화 일주일간 사용했다면, 수~금, 월~화로 나누어 업로드해야 합니다. Date 타입으로, 종료일 토글을 ON해야 합니다.
- 신청일, 최종수정일, 편집 : 기능이 없고 자동 생성되는 데이터입니다. 확인용으로 넣어두었습니다.
- 입사날짜 : Rollup으로 연차 현황 테이블의 입사일을 가져옵니다. 계산은 최근 날짜(latest date)를 선택합니다.
- datebetween : dateBetween(end(prop("일자")), dateAdd(prop("입사날짜"), prop("근속연수"), "years"), "days") 설명은 당해년도 사용 개수를 확인하세요.
- 근속연수 : Rollup으로 연차 현황 테이블의 근속연수를 가져옵니다. 계산은 합계(sum)를 선택합니다.
*. Relation, Rollup 설정 방법
Relation은 다음 gif와 같이 새 속성을 추가하고 관계형을 선택한 뒤 데이터베이스를 선택하여 추가하면 됩니다!
Rollup은 다음 gif와 같이 새 속성을 추가하고 롤업을 선택한 뒤 Relation으로 연결한 테이블에서 속성을 가져오고 계산 방식을 선택하면 됩니다.
내용은 많고 설명은 부족하지만... 개발자시거나 노션 데이터베이스에 익숙한 분이시라면 감이 오실거예요! 혹시 감이 안오신다면 댓글을 달아주세요! 방법을 더 연구해볼게요.
그럼 여기까지 읽어주셔서 감사하고, 제 글이 도움이 되었기를 바래요! 다음에 더 유용한 정보로 뵈어요!

'👩💻 Dev > 🧚♀️ LowCode' 카테고리의 다른 글
Google Workspace로 연차 관리하기 (Forms, Sheets, Calendar 활용) (4) | 2021.12.15 |
---|
댓글