출퇴근 기록 관리 시스템 토이 프로젝트

자동차보안연구소에서 신규 입사자가 실무에 들어가기 앞서 개발 전문성을 키우고자 "출퇴근 기록 관리 시스템"을 개발하는 토이 프로젝트를 진행하였습니다!

# 출퇴근 기록 관리 시스템

아우토크립트에서 사무실을 출입하기 위해서 필요한 것은 바로바로 사원 카드!

이 사원 카드를 태그를 해야 사무실 출입을 할 수 있습니다. 하지만 현재는 카드를 정말 출입용으로만 사용을 하고 있는데요.

태그를 할 때 출퇴근 기록까지 저장이 된다면 얼마나 좋을까요?

그래서 이번에 V2X 연구소 신규 입사자가 출퇴근 관리 시스템을 만들어서 발표를 진행했습니다!

# 필요한 기능들

출퇴근 관리 시스템에서는 어떤 기능들과 어떤 서비스들이 필요할까요?

필요한 기능들을 나열해보면:

  1. 출퇴근 기록을 확인할 수 있는 클라이언트 (웹사이트)
  2. 카드 태깅 시뮬레이터 (웹사이트)
  3. 백엔드 서버
  4. 데이터 베이스

그렇다면 개발 과정은 어떻게 될까요?

# 개발

먼저 클라이언트 개발 소개 입니다

클라이언트

Next.js 와 Typescript로 구현이 되었습니다

  • Admin 관리 페이지

Admin 관리 페이지에서는 다음과 같은 기능들을 제공합니다

  1. 카드에 사원을 등록
  2. 사원 번호로 특정 사원의 출퇴근 기록을 조회
  3. 사원의 출퇴근 기록을 생성/수정/삭제
  • 일반사원

일반 사원 페이지에서는 *자기 자신의 출퇴근 기록 조회*만 가능합니다.

카드 태깅 시뮬레이터

Next.js 와 Javascript로 구현 되었습니다

카드 태깅 시뮬레이터를 구현하게 된 계기는 본 프로젝트에서 실제로 카드를 RFID리더기가 있는 단말기를 사용하지 못하였기 때문입니다.

카드 태깅 시뮬레이터에서는 두 가지를 할 수 있습니다.

  1. *랜덤 버튼*: 랜덤으로 카드 번호와 오늘 중 랜덤 시간이 (마치 태그한 것 처럼) 백엔드 서버로 날아가게 됩니다.
  2. *수정 버튼*: 임의적으로 직접 카드 번호와 오늘 중 특정 태그 시간을 지정하여 백엔드 서버로 날아가게 할 수 있습니다.

백엔드 서버와 데이터베이스

본 프로젝트를 진행한 신규 입사자는 C++ 개발자인데요! 실무에 들어가기에 앞서 C++와 더욱 친해지고 전문성을 높이기 위해서 *백엔드 서버*를 C++을 사용하여 구축하였습니다!

바로 Oat++ 라는 C++ 웹 프레임 워크를 사용하여 백엔드 서버를 구현하였습니다.

데이터베이스는 Sqlite3을 썼는데요. 로컬에 DB파일을 만들어서 사용하였습니다.

기능 시연

그렇다면 이 시스템이 어떻게 작동하는 지 살펴볼까요?

우선, 카드 태깅 시뮬레이터에서 시작하겠습니다.

아래에 있는 수정 버튼을 누르고 원하는 카드 번호와 원하는 시간을 입력하고 태그 버튼을 누르면...

이렇게 관리자 대시보드에 카드 등록 요청이 뜨게 됩니다.

이 등록 요청을 누르게 되면,

사원을 이름으로 검색하고, 검색된 사원을 클릭하면 카드에 사원 번호를 맵핑(등록)을 하게 됩니다.

관리자는 사원 번호로 특정 사원의 출퇴근 기록도 볼 수가 있습니다.

이런 식으로 조회/수정/삭제가 가능합니다. 그렇다면 일반 사원은 어떨까요?

보시는 바와 같이 자신의 출퇴근 기록을 조회할 수 있습니다.

만약 일반 사원이 퇴근을 늦게 했다면 어떨까요?

이렇게 초과근무까지 잘 나오는 것을 확인할 수 있습니다.


이렇게 신규 입사자의 토이 프로젝트, 출퇴근 기록 관리 시스템을 살펴보았는데요! 어떠셨나요? 신규 입사자가 조금 더 자신감을 얻어서 아우토크립트와 함께 더욱 더 발전하였으면 좋겠습니다.