개인프로젝트/자동화

3. 업무 자동화를 위한 최종 구축 방식

해아's 2024. 4. 9. 12:00

마지막으로 구축된 방식은 두 개의 도커 컨테이너를 사용하여 전체적인 시스템을 구축했습니다.

  1. Node.js 기반 웹소켓 프로세스: gathertown/gather-game-client를 사용하는 노드 기반의 웹소켓 프로세스입니다. 이 프로세스는 다음과 같은 알고리즘을 따릅니다:
    • 먼저 게더타운 측에서 제어용 API 키 값을 발급받습니다.
    • Node.js를 활용하여 모니터링할 게더타운의 환경 변수를 체크하고, 접속 중인 사용자의 정보를 반복적으로 가져와 저장합니다.
    • 이를 위해 두 개의 독립적인 Node.js 컨테이너를 구축했습니다.
    • 5분마다 모든 사용자 정보를 MongoDB에 저장하고, 5초마다 사용자의 이름을 가공하여 내부 서버의 폴더에 텍스트 문서로 저장합니다.
  2. Python Flask 서버: 이 서버는 다음과 같은 기능을 구현했습니다:
    • 로그인 페이지를 구현하고, 로그인은 회사 서버와 연동하여 특정 사용자만 접속할 수 있도록 설정했습니다.
    • 특정 사용자로 로그인하면 회사 서버 DB에 접속하여 해당 기수의 학생들을 조회하고 바둑판 형식으로 출력했습니다.
    • 각 학생 정보 박스에는 출석 시간, 외출 시간, 복귀 시간, 퇴실 시간 등의 정보를 출력했습니다.
    • 학생 정보는 실시간으로 가져오지 않고, 회사 서버에서 가져오기 버튼을 누르면 회사 서버에서 학생 출석 정보를 가져와서 출력합니다.
    • 또한 Node.js 서버에서 저장된 텍스트 파일을 읽어와 학생 정보 박스의 배경색을 변경하는 기능을 구현했습니다.
    • 학생이 게더타운에서 호출을 사용하면 해당 학생 정보 박스가 깜빡이도록 설정하여 빠른 대응이 가능하도록 했습니다.
728x90
반응형