flask 7

게더타운 출석체크 자동화-Docker 컨테이너화 시키기

서버 분리 및 도커 컨테이너화기존에는 하나의 서버에서 모든 업무를 처리했지만, 효율적인 운영을 위해 서버를 분리하고 도커 컨테이너화를 진행했습니다. 이를 통해 라즈베리 파이에 설치된 도커를 활용하여 각각의 서버를 컨테이너 형태로 운영하게 되었습니다.변경된 구성:Flask 서버 컨테이너: 학생명단 텍스트 파일 생성 및 관리를 위한 Flask 서버를 컨테이너로 운영합니다. 이 서버는 WebSocket을 통해 게더타운에서 가져온 학생 명단을 처리하고 필요한 작업을 수행합니다.Node.js 서버 컨테이너: 게더타운 접속자 명단을 가져오는 기능을 수행하는 Node.js 서버를 컨테이너로 운영합니다. 이 서버는 게더타운 API를 활용하여 학생들의 접속 정보를 수집하고 필요한 데이터를 전달합니다.이와 같이 서버를 분..

게더타운 출석체크 자동화 3탄 - 최종개발

회사 업무 자동화를 위한 라즈베리 파이 서버 구축 회사에서 제공한 노트북의 성능 한계로 인해, 크롬 디버그 모드와 Flask 서버를 별도의 시스템으로 분리하기로 결정했습니다. 이를 위해 집에 있던 라즈베리 파이 서버를 활용하여 업무 자동화를 진행하기로 했습니다. 라즈베리 파이 서버 구축 과정: Flask 서버 호스팅: 라즈베리 파이에 Flask 서버를 호스팅하기 위해 필요한 설정을 마쳤습니다. 이제 Flask 서버는 회사에서 지급한 노트북과는 별도로 동작하며, 업무 자동화에 필요한 데이터를 처리합니다. nodejs 활용: 크롬 디버그 모드 대신 node js websocket 를 활용하여 업무를 진행합니다. 이 라이브러리를 통해 플레이어 정보를 쉽게 가져올 수 있어서 업무 효율성을 높일 수 있습니다. D..

게더타운 출석체크 2탄 파이썬 크롬 디버그 모드를 활용

게더타운 접속자를 확인하는 파이썬 프로그램 크롬 익스텐션의 문제점이 발견되어 > 파이썬 셀레니움으로 변경 크롬익스텐션의경우 상시가 되지않고 다른데 클릭하면 꺼짐. 플라스크+파이썬 셀레니움 조합으로 변경하여 코드 변경 0. 크롬 디버그모드 접속 크롬 브라우저를 디버그 모드로 접속. "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" --remote-debugging-port=9222 --user-data-dir="D:\\ChromeTEMP" 바로 가기경로에 아규먼트 추가 원격디버그 포트 추가 -remote-debugging-port 9222 유저데이타 저장 폴더 지정 -user-data-dir="D:\ChromeTEMP" app.py에 플라스크로 학..

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

마지막으로 구축된 방식은 두 개의 도커 컨테이너를 사용하여 전체적인 시스템을 구축했습니다. Node.js 기반 웹소켓 프로세스: gathertown/gather-game-client를 사용하는 노드 기반의 웹소켓 프로세스입니다. 이 프로세스는 다음과 같은 알고리즘을 따릅니다: 먼저 게더타운 측에서 제어용 API 키 값을 발급받습니다. Node.js를 활용하여 모니터링할 게더타운의 환경 변수를 체크하고, 접속 중인 사용자의 정보를 반복적으로 가져와 저장합니다. 이를 위해 두 개의 독립적인 Node.js 컨테이너를 구축했습니다. 5분마다 모든 사용자 정보를 MongoDB에 저장하고, 5초마다 사용자의 이름을 가공하여 내부 서버의 폴더에 텍스트 문서로 저장합니다. Python Flask 서버: 이 서버는 다음..

2. 파이썬을 활용한 게더타운 출석 관리 시스템

크롬 익스텐션의 한계를 극복하기 위해, 게더타운이 실행 중인 크롬을 파이썬을 통해 디버그 모드로 실행하는 방법을 도입했습니다. 이를 위해 셀레니움을 활용하여 크롬을 제어하고, Flask를 이용하여 웹페이지를 구축하여 게더타운의 출석 페이지를 웹 기반으로 관리할 수 있도록 구현했습니다. 구현 방법 요약: 파이썬을 사용하여 게더타운이 실행 중인 크롬을 디버그 모드로 실행합니다. 셀레니움을 활용하여 크롬을 자동으로 제어합니다. Flask를 통해 간단한 웹페이지를 구축합니다. 게더타운의 출석 페이지를 웹 기반으로 구현하여 학생 출석 정보를 관리합니다. 문제점과 해결책: 그러나 회사에서 제공한 노트북의 성능 한계로 인해 동시에 여러 작업을 실행할 경우 시스템 자원이 부족하여 별도의 서버를 구축해야 하는 문제가 발..

Flask , nginx , gunicon (port) ,jenkins ,k8s

https://myharu.tistory.com/201 Flask , nginx , gunicon (by sock) 더보기 어제까지 배운것을 기반으로 플라스크를 백앤드 엔진엑스를 프론트엔드로 CI/CD를 진행해보려 한다. 그러면 일단 플라스크와 엔진엑스를 연동하는 작업을 처음해보고 나서 CI/CD를 진행하 blog.yos.kr 실습에 이어서 한다. sock에서 포트로 변경하여 서버를 분리하려고 한다. vi /etc/systemd/system/backend.service #ExecStart=/usr/local/bin/gunicorn --workers 1 --bind unix:backend.sock -m 007 wsgi:app #이소스를 아래로 변경 ExecStart=/usr/local/bin/gunicor..

Flask , nginx , gunicon (by sock)

더보기 어제까지 배운것을 기반으로 플라스크를 백앤드 엔진엑스를 프론트엔드로 CI/CD를 진행해보려 한다. 그러면 일단 플라스크와 엔진엑스를 연동하는 작업을 처음해보고 나서 CI/CD를 진행하면 될거같다. 플라스크는 장고보다 가벼워서 MSA에 좋다고 하는데 그건 뭐 개발하는 팀에서 쓰고싶은 것을 쓰면되는데 장고는 배워봤고 이번시간에는 플라스크를 이용하려고한다. 프로젝트 실행해서 pip install Flask 플라스크 설치후 파이썬파일에 기본실행코드를 넣어보자 from flask import Flask app = Flask(__name__) #장고기준으로 함수 @app.route("/") def main(): return "Hello World!" #장고기준으로 url @app.route("/meet") ..

728x90
반응형