근무관리체계 개발일지 [5] - 메인 프로젝트 세팅

최원빈·2022년 10월 18일
0

3개월정도 소모해서 내가 만드려던 프로젝트보다 작은 규모의 프로젝트를 성공적으로 완성했다.

한가지 근무, 한정된 인원에 대해서 근무표를 자동화하는데 성공했으므로,
이제부터는 정말 모든 근무와 대대 전 병력에 대한 근무를 자동화시키겠다는 목표로 달릴 것이다.

근무를 날짜별로 만들어주고, 특정 날짜까지 고정하는 시스템은 그대로 활용할 것이다.


이번 프로젝트의 문제상황을 살펴보자.

  1. 병사들은 간부님들께서 직접 눈으로 보고 짜는 근무에 불만들이 있다.
  2. 간부님들도 사람인지라, 당연히 완벽한 근무를 짤 수 없다.
  3. 누구는 근무를 많이 들어가고, 적게 들어가는 문제가 생긴다.
  4. 하지만 여태 근무자가 들어갔던 근무에 대한 객관적인 통계가 없으니 따질 수 없다.
    있다고 하더라도, 그걸 쉽게 말할 수 없다.
  5. 소대마다 이 근무표를 매일 매일 상당한 시간을 써가며 관리한다.
  6. 간부님이 직접 작성하셔야 하기에, 변경에 대한 통계 처리도 직접 관리해야한다.
  7. 가끔 급하게 근무를 대신 서야할 때가 있는데, 이에 대한 통계 처리가 부족하다.

개인이 근무에 많이 들어간다고 느껴져도, 이는 확실한 통계가 아니라 따질 수 없고,
간부님들은 눈으로 보면서 근무를 짜다보니 분명히 실수가 나온다.

이 문제점들은 근무표를 자동으로 짜준다면 해결할 수 있는 문제들이라고 생각한다.

근무표를 자동으로 짜고, 병사들은 해당 데이터를 옮겨서 병사들 공용 PC에서 통계를 확인할 수 있다면???

불만이 있는 억울한 병사들의 오해와 한을 풀어줄 수 있다.

실제로 많이 들어갔다면 알고리즘에 따라서 줄여달라 요청하지 않아도 앞으로 덜 들어갈거고,
실제로 많이 들어갔던게 아니라면, 납득할 수 있다.

매번 근무 만들고 바꾸랴 고생하시는 간부님들과 정보작전병사, 정보작전장교님 등등 여러 명의 불필요하고 과하다고 생각이 드는 노동을 줄일 수 있다.

나의 공부 겸 노력으로 수십명이 편해진다면 너무 재밌을 것 같다. 의미있는 일을 했다는 자부심도 있을 것이고.


좀 길게 걸리더라도, 아직 전역까지 많이 남았으니 고려해야 할 상황부터 분석해가며 개발을 시작할 것이다.

이전에 만들었던 소규모 프로젝트, 당직근무만 대상으로 하던 프로젝트와 다르게 신경써야할 부분들이 있다.

1. 대대 -> 중대 -> 소대 순으로 병력들의 소속이 존재한다.
소속끼리 정렬해서 보여주어야 공지하기 좋을 것이다.

2. 각 분대별 인원의 수가 유동적이다.
인원의 수가 유동적이기에, 근무 비율이나 횟수도 유동적으로 측정되어야한다.
또한 인원의 추가, 수정, 삭제도 가능하게끔 관리해야한다.

3. 근무의 종류가 다양하다.
근무가 한가지뿐이던 이전관 다르게, 총 6개의 근무를 관리해야 한다.
탄약고, 위병소, CCTV, 불침번, 당직병, 상황병인데, 근무의 종류 또한 변경될 수 있다.
자유도가 높은 프로그램을 만들어야 오래 쓸 수 있으니, 근무의 개수를 유동적으로 관리할 수 있게끔 설계해야한다.

4. 몇몇 근무는 주간과 야간이 구분된다.
주간 탄약고근무와 야간 탄약고근무는 다르고, 불침번은 주간이 없다.
시간대가 다르기에 같은 근무더라도 일정에 따라 나누되, 비슷하게 표현할 수 있는 방법을 생각해야겠다.

5. 한 타임의 근무마다 필요한 인원도, 타임도 근무마다 다르다
불침번은 한타임에 1명이, 탄약고는 2명이 들어가고,
어떤 근무는 1번초부터 5번초까지 있고, 어떤 근무는 1번초부터 3번초까지 등, 몇번초 근무인지도 고려해야 한다.
우리 대대는 A중대가 불침번 1~2번초를, B중대가 3~4번초를 서는 느낌으로 번초로도 근무를 구분해야했다.

근무를 구현하는데 있어 자유도가 매우 중요하다는 생각이 든다.

6. 명확하고 객관적인 통계를 보여주어야 한다.
여기서 객관적인 통계라는 것은, 같은 근무를 서는 사람끼리의 비교가 필요하다는 말이다.
중대가 달라서, 소대가 달라서 다른 근무를 서는데 비교해봤자일 것이다.
그러면서도, 한눈에 구분할 수 있을 정도로 UI를 구상해야겠다.

7. 근무를 병사가 함부로 바꿀 수 없고, 바꿔서도 안된다.
누가 어떤 근무를 서는지는 병사의 권한이 아니다.
엄밀히 명령을 받아서 근무를 서는 것이다.
병사가 통계를 확인할 수 있어야 하니, 간부님의 컴퓨터에서 데이터를 관리하고, 병사 컴퓨터에서 내려받아 볼 수 있게끔
MVC패턴 느낌으로 관리를 해야한다 ㅋㅋㅋ

그러기 위해서는 데이터의 공유 방식이 필요하지만, 서버는 없으니 기존의 근무표를 공유하는 방법(메일)으로 쉽게 넘길 수 있게끔 복사/파일화만 구현하면 될 것 같다.


꽤 긴 시간을 써서 문제상황과 고려해야할 점들을 적어내려봤는데, 이를 토대로 데이터 구조 설계를 들어갈 것이다.
짤막하게 UI도 만들면서..

이런 흔한 데이터 테이블이겠지만, 고정선 지정, 자동 근무 세팅, 휴일 등록, 인원 수정, 근무의 종류 수정, 근무별 횟수, 필요인원 등 고려할 점들이 많다보니 잘 할 수 있을까 싶다.

그래도 시간이 많으니 하나하나 해결해가며 만들어봐야지.

전역까진 9개월정도 남았으니깐 ㅋㅋ

profile
FrontEnd Developer

0개의 댓글