NEWS
home

[스타트업 초기 운영 체계 #7] Notion으로 자동으로 계산되는 연차·휴가 관리 시스템 만들기(2024)

업로드일
2024/02/08
구분
기타
작성자
1 more property
이전에 Notion으로 휴가 신청·승인·관리 시스템을 만드는 방법을 작성한 적이 있다.
다만, 이전에는 노션의 한정적인 기능으로 인해 휴가 신청·승인시스템에만 집중하였고, 무제한 연차에만 적용 가능하다는 한계가 있었다. [스타트업 초기 운영 체계 셋업 #4] 휴가 신청·관리·승인 시스템 만들기
이번에는 Notion에 새로 생긴 기능을 활용하여(그냥 내가 몰랐을 수도 있을듯..)아래와 같은 기능을 가진 시스템으로 업그레이드 해보려고 한다! 휴가 발생일은 입사일 기준이다.
휴가 신청·승인·관리는 저번과 동일하며, 검은색으로 된 부분이 이번에 새롭게 추가할 기능이다.
1.
휴가 신청·승인 기능: 휴가 신청자가 휴가를 올리면, 관리자가 확인하고 승인
2.
관리자용 휴가 관리 페이지: 모든 멤버들의 휴가 사용 리스트를 확인하고 관리할 수 있음
3.
입사일에 따른 휴가 발생일 자동 계산: 입사일을 입력하면 해당 멤버의 휴가 발생일 자동 계산
4.
입사일 기준 연차생성일~소멸일: 입사일 기준으로 연차생성일~소멸일 구간 자동 설정
5.
사용 연차: 입사일 기준 연차생성일~소멸일 구간에 쓴 연차만 자동 계산
6.
잔여 연차: 발생연차에서 사용연차를 뺀 잔여연차일 자동 계산
요 시스템은 초기 단계에 모든 체계를 갖추기 어려운 스타트업에게 추천하며, 규모가 커지면 별도의 HR 솔루션을 사용하는 것을 추천드린다~! 아직 크파에서도 사용한지 3개월 밖에 되지 않았는데 틀린 부분이 있을 수 있기에 계속해서 업데이트 할 예정이다.

신청·승인 기본 세팅하기!

이제 본격적으로 시스템을 만들기 위해 세 개의 테이블을 만들어 주어야 한다.

[테이블 1. 휴가 및 경조사 종류 ]

내부 휴가 및 경조사 제도를 정리해준다. 연차 소진이 되는 항목인지, 어느 정도 되는지를 추가하고, 연차 소진이 되지 않는 항목에 대해서도 부재일을 명확하게 작성해둔다.

[테이블 2. 휴가 신청폼]

멤버들이 휴가를 신청 하는 테이블이다. 크파의 경우 아래의 규칙대로 휴가 신청을 올리고 있다.
휴가 신청 프로세스
1.
휴가 사용자: ‘휴가·재택근무 신청’에 신청폼 작성하기
2.
승인자: 승인완료에 휴가 신청자를 멘션(휴가가 승인 됐다는 것을 알리기 위함)
위의 테이블에 휴가 신청을 올리면, ‘승인 완료’에 해당 멤버를 멘션해서 승인하기 전에는 아래와 같이 보인다.
휴가를 연속으로 쓰는 경우가 있어 연속 휴가 일수를 모두 더해주는 ‘휴가일’ 컬럼을 추가하였다. 모든 세팅 후에는, ‘연차소비’는 테이블에서 속성을 숨겨주고, 휴가일만 확인하면 된다.
1.
사용자: relation 기능으로 아래 3.멤버별 누적 휴가 사용 리스트 테이블을 연동 한다.
⇒ 누적 테이블에 멤버별로 사용한 휴가 리스트가 자동으로 그룹핑
2.
휴가 종류: relation 기능으로 위 1. 휴가 및 경조사 종류을 연동한다.
3.
연차: rollup 기능으로 relation 해둔 ‘휴가 종류’ 컬럼에서 연차소진 항목을 가져온다.
⇒ 테이블에 ‘휴가 종류’를 추가하면 해당 항목이 연차가 소진 유무가 자동으로 업데이트
4.
소진일: rollup 기능으로 relation 해둔 ‘휴가 종류’ 컬럼에서 연차소진일 항목을 가져온다.
⇒ 테이블에 ‘휴가 종류’를 추가하면 해당 항목의 연차 소진일이 자동으로 업데이트
5.
연차소진: formula 기능으로 아래 수식을 추가하고 총 연차소진일을 계산해준다
⇒ 휴가를 하루이상 사용하는 경우가 있어 필요
#아래는 휴가 관리 틀을 만들때 서치해서 찾은 수식인데, 어디서 봤는지 기억이 안나 출처를 못썼다 ㅠㅠ if(join(map(prop("연차소비"), format(current)), ",") == "X", 0, (dateBetween(dateEnd(prop("일자")), dateStart(prop("일자")), "days") + 1) * prop("소진일"))
JavaScript
복사

[테이블 3. 멤버별 누적 휴가 사용 리스트] update

멤버별로 근속년수에 따른 발생휴가, 사용연차, 잔여연차를 한 번에 관리하는 테이블이다.
기존에는 다른 테이블에 있는 데이터를 갖고오려면 ‘relation’ 기능을 사용해야 했는데, 수식에 새로운 기능이 추가 되어 동일한 기능을 하면서 조건에 맞는 데이터만을 갖고올 수 있도록 업그레이드 되었다.
그리고 1년 이상 사용해본 결과 relation은 데이터가 많아지면 어느 순간부터 휴가 사용 누적테이블에 업데이트가 안되는 단점이 있었는데, 요 문제를 해결하게 되어서 아주 만족스럽다
1.
휴가 리스트: 위 2. 휴가 신청폼에서 ‘사용자’컬럼을 연동 해두었다면, 휴가리스트 컬럼이 자동으로 생성 된다.
2.
수식들: formula 기능을 활용하여 각 컬럼에 목적에 맞는 수식을 추가해준다
⇒ 한번 수식을 걸어두면 자동으로 업데이트 되도록 세팅하려고 노력했다.
a.
연차생성일~소멸일: 입사일에 따른 연차생성일~소멸일을 관리하기 위함이다. 입사일을 넣어주면 업데이트 되며, 소멸일이 지나면 그 다음 연차 관리 구간으로 바뀌게 된다.
예) 2024년 2월 8일 입사 시, 연차 관리 기간이 2024년 2월 8일~2025년 2월 7일인데, 2025년 2월 8일이 되면 자동으로 2025년 2월 8일~2026년 2월 7일로 바뀌게 됨
dateRange(dateAdd(prop("입사일"), prop("근속년수"), "years"), dateSubtract(dateAdd(prop("입사일"), prop("근속년수")+1, "years"),1,"days"))
JavaScript
복사
b.
근속년수 및 근속개월: 1년 이상/미만 재직자들의 발생휴가를 관리하기 위해 추가하였다.
#근속년수 dateBetween(now(), prop("입사일"), "years") #근속개월 dateBetween(now(), prop("입사일"), "months")
JavaScript
복사
c.
발생휴가: 1년 이상 재직자들은 근속년수에 따른 발생휴가가 나오도록 하고, 1년 미만의 재직자들은 한 달이 지날 때마다 휴가가 하나씩 추가되도록 하였다.
min(25,if(prop("근속년수")>0, 15+round((prop("근속년수")-1)/2),prop("근속개월")))
JavaScript
복사
d.
사용연차: 위에서 relation으로 연결한 2. 휴가 신청폼에 있는 ‘일자’ 데이터 중, 연차생성일~소멸일 구간에만 포함되는 데이터를 끌어와서 사용한 ‘연차 소진’ 수를 모두 더한 수식이다.
⇒ relation과 유사한 기능이지만 원하는 데이터만 필터링 가능
sum(map(prop("휴가사용리스트").filter(current.prop("일자") >= dateStart(prop("연차생성일~소멸일")) and current.prop("일자") <= dateEnd(prop("연차생성일~소멸일"))),current.prop("연차 소진")))
JavaScript
복사

기타 관리 방법 및 추가 설정

위에서 세 가지 종류의 테이블을 세팅했었는데 현재까지는 아래처럼 관리하는 것이 가장 이상적일 것 같다.
1. 휴가 및 경조사 종류, 3. 멤버별 누적 휴가 사용 리스트테이블은 계속 동일한 테이블로 사용, 2. 휴가 신청폼은 데이터가 많아지면 느려질 수 있기에 매년 새로운 테이블을 만들어서 2년 단위로 관리하는 것이 좋을 듯 하다.
예를 들어, 2024년에는 2023년 입사자들의 휴가도 함께 관리해야 하기에 2023~2024년 테이블로 관리하고, 2025년이 되면 2024~2025년 테이블로 관리하는 식이다. 해당 신청폼을 1,3 테이블에 연동 설정만 다시 하면 끝이다.
나머지 멤버별 권한 설정을 통해 시스템 완성하기, 관리자 페이지 만들기를 끝내야 모든 설정이 완료되는데, 해당 부분은 이전과 동일하기에 이전 글을 참고 부탁드립니다~!
⇒ 크파에서 휴가 제도를 운영하는 방식 |멤버별 권한 설정하기 및 별도 관리자 페이지 만들기
You Create, We Support!
더 큰 꿈을 향해 나아가는 스타트업과 크리에이터의 성공을 위해 세무/회계 서비스를 넘어 CFO 아웃소싱 서비스, 투자 자문 등의 서비스를 제공합니다.
크리에이티브 파트너스 뉴스레터 구독하기 → 카카오톡 크리에이티브 파트너스는 매월 초, 카카오톡 친구 추가를 해주신 분들에게 세무/회계, 크파 관련 소식을 전합니다!