근무관리체계 개발일지 [1] - 문제상황

최원빈·2022년 10월 17일
2
post-thumbnail

21년 7월인 지금 난 일병 4호봉..
군번이 잘 풀려 꽤나 일찍 상황병(당직근무) 근무를 서게 됐다.

정말정말정말 당직근무를 서고싶었는데, 이유는 당직근무자는 오후 3시부터 다음날 오전 8시까지 컴퓨터를 만지며 작업한다는거...!!!

선임분들께 인수인계받기론 남는 시간동안은 공부를 하거나 TV를 봐도 신경을 안쓴다고들 하시니 이 시간동안 너무 개발을 하고싶었다.

총 17시간인데, 물론 당직근무동안 맡은 임무도 수행해야하니 실제로 남는 시간은 12시간정도 되는 것 같았다. (5시간은 회의파일 만들고.. 순찰가고..)


아무튼 목표는 지난번에 언급했던 근무표 자동화.
모든 대대원의 모든 근무를 자동화하는 것이 목표이다.
이름도 미리 지었다. 근무 관리 체계. Work Management System이다.
군대에선 대부분의 프로그램에 System이나 체계라는 용어를 붙이더라.

그렇지만 처음부터 큰 프로젝트를 만들기엔 익숙하지 않은 점이 많았다.
메모장 수준의 에디터밖에 없는 개발환경과,
프레임워크는 고사하고 라이브러리도 사용할 수 없는 외부와 단절된 인트라넷 환경.

이 환경에 적용할 필요가 있어보여 비슷하지만 작은 규모의 프로젝트부터 먼저 만들어보고 있다.

모든 인원 모든 근무가 아닌, 당직근무자와 당직근무에 대해서만 자동화 프로그램을 만들고있다.

여기로 코드를 옮기지 못하는 환경이 아쉽지만(물리적으로 옮기면 범죄), 고민한 점들과 공부해서 사용한 이론들을 정리해두려 한다.


문제상황

1. 당직근무는 날짜별로 사이클을 다르게 돌림(겹침방지)

이미지의 퀄리티가 조금 많이 떨어지만...
6명의 당직근무자가 있다고 하면, 일요일(빨강)당직을 A->B->C->...->F 순으로 돌리고,
월요일(주황)을 B->C->...->A 순으로 돌리는 느낌이다.
사이클대로 만 간다면 다들 저대로만 근무를 서도 되는건데..

2. 하지만 공휴일이 있다.

공휴일이나 전투휴무가 들어가면, 그날은 주말로 취급해야한다.
위의 표에서 2번째 화요일이 빨간날인 경우를 보자.

이렇게되면, 앞의 빨간 근무는 당겨져야하고, 노란 근무들은 하나씩 밀려야한다.

근무가 하나 당겨졌더니 모든 근무가 일열로 세워졌다.

이러면 근무자들은 일일히 서로의 근무를 바꿔줘야한다...

3. 휴일 전날은 평일근무와 다르다.

밤을 샌 뒤, 다음 날 완전휴식(근무취침)을 보장받는 당직근무인만큼, 휴일 전날 근무는 다른 평일근무와 다른 취급을 해야한다.

4. 이걸 일일히 수작업으로 표작업을 하고있다.

당직을 선 지 얼마 되지 않았지만, 이 작업을 전부 분대장님이 맡아서 매주 중대장님께 올려주고계셨다.


지금까지 파악한 문제는 이정도. 첫 목표는 어떤 문제를 해결해야 하는지 정의하는 정도니, 앞으로 당직을 서면서 솔루션을 작성해볼 것이다.

profile
FrontEnd Developer

0개의 댓글