세상에서 가장 인기없는 앱 공개 (flask, kotlin)
서버모니터 앱을 만들었습니다. 백엔트, 프론트 앤드, 파이썬, 플라스크(프레임워크)에 대해 관심이 있다면, 코드, 프로젝트 구조 등 모든 것을 오픈 소스로 공개하였으니 참고하세요.
https://youtu.be/6bRb8r5zwXU
https://youtu.be/JiYo7ujaXcg
https://nolgaemi.github.io/index.html
서버 모니터 앱 프로젝트 (세상에서 가장 인기 없는 앱을 만든 이유)
슬라이드 1: 서버모니터 앱 만든 이유
이유1: 최근의 클라우드스크라이크와 같은 상황에 대한 신속한 대처
(이중화à 모니터링으로 신속한 대처)
이유2: Backend/Frontend 이해
(기존: 치킨 파이트 / 병정 놀이 게임 è 모니터링 앱으로 발전(playstore)
Backend server + Backend agent + frontend(android app)
<구조>
이미지 출처: createiv commons license: https://www.google.com/imgres?imgurl=https%3A%2F%2Ffreerangestock.com%2Fsample%2F123658%2Fapps-on-smartphone-.jpg&tbnid=pZYFNkpwHvv1KM&vet=12ahUKEwi7iciTlr6HAxWtXvUHHd6cJsUQMygJegUIARCFAQ..i&imgrefurl=https%3A%2F%2Ffreerangestock.com%2Fphotos%2F124092%2Fapps-on-smartphone-.html&docid=GdF7wL8ZZxa7HM&w=970&h=646&q=android%20app&hl=en&ved=2ahUKEwi7iciTlr6HAxWtXvUHHd6cJsUQMygJegUIARCFAQ
건너뛰어도 되지만 재미있는 이야기 Android Studio download:
슬라이드 2: 프로젝트 개요
소개
서버 모니터 앱 시연
프로젝트 목적: 서버 상태를 실시간으로 모니터링하고 표시
슬라이드 3: 프로젝트 구조
주요 구성 요소(git hub)
에이전트 애플리케이션 (Python 스크립트)
백엔드 서버 (Flask 애플리케이션)
데이터베이스 (SQLite)
안드로이드 애플리케이션 (Kotlin)
슬라이드 4: 에이전트 애플리케이션 구조
에이전트 애플리케이션
Python으로 작성됨
서버 데이터 수집 (CPU, 메모리, 디스크 사용량 등)
HTTP POST 요청을 통해 백엔드 서버로 데이터 전송
슬라이드 5: 백엔드 서버 구조
디렉토리 구조
app.py: Flask 경로 및 SQLAlchemy 모델이 포함된 메인 애플리케이션 파일
config.py: Flask 애플리케이션의 설정 파일
/var/log/: 로그 파일 디렉토리
주요 구성 요소
Flask 애플리케이션
데이터 수신 및 제공을 위한 API 엔드포인트 처리
SQLAlchemy
데이터베이스 상호작용을 위한 ORM
로그 기록
중요한 이벤트와 오류 로그 기록
슬라이드 6: 데이터베이스 구조
SQLAlchemy 모델
AgentData: 서버 데이터를 저장하기 위한 스키마 정의
필드: id, timestamp, server_name, server_ip, network_status, cpu_usage, memory_usage, disk_usage
데이터베이스 설정
config.py에서 설정됨
개발용으로는 SQLite 사용, 배포용으로는 PostgreSQL 사용 가능
슬라이드 7: 데이터 흐름
에이전트 애플리케이션
서버 데이터 수집 (CPU, 메모리, 디스크 사용량 등)
HTTP POST 요청을 통해 백엔드 서버로 데이터 전송
백엔드 서버
데이터를 수신하고 저장
HTTP GET 요청을 통해 안드로이드 앱에 데이터 제공
안드로이드 앱
백엔드에서 데이터 수신
RecyclerView에 데이터 표시
슬라이드 8: 주요 코드 파일
에이전트 애플리케이션: agent.py
백엔드 서버: app.py, config.py, manage.py
안드로이드 애플리케이션: MainActivity.kt, ServerAdapter.kt, Server.kt
슬라이드 9: 프로젝트 시연
실시간 데모 또는 스크린샷
안드로이드 앱 동작 시연
백엔드 로그 또는 데이터베이스 항목 표시
슬라이드 10: 결론
요약
프로젝트 구조 요약
구성 요소 간의 상호작용 강조
미래 개선 사항
가능한 개선 사항 (예: UI 개선, 추가 모니터링 지표)
슬라이드 11: Q&A
질문 및 답변 시간
댓글
댓글 쓰기