본문으로 이동
Kim Jongwon
← Aegis-Pi 프로젝트로 돌아가기

제출 자료 근거 대조 — 2026-09-08

이 문서는 이력서·포트폴리오·웹에 사용한 주장과 공개 코드/기록을 연결한다. 교육·개인 프로젝트의 구현 검증이며 고객 운영 실적을 뜻하지 않는다. 과거 설계 기록은 원문을 유지하고, 현재 코드와 다른 부분을 아래에서 구분한다.

검토한 버전

저장소검토 commit
팀 통합 코드841cd678c016d1409eafb23933432d13447714d8
개인 담당 코드a15286afd4bfe6bb12fcc732a5ef194cde8813ca
팀 WikiWiki git 8c97ba6e973f2eedac089dd830af72e85cc02248

Aegis의 2026.05–2026.06 구현·발표 표기는 5월 작업 분담/구현 ADR부터 6월 통합 및 6월 29일 최종 발표까지 공개 기록으로 확인되는 활동 구간이다. 전체 사전 기획 시작일을 새로 단정하지 않는다.

Aegis: 초기 기록과 현재 계약

항목제출물에서 사용하는 표현근거/한계
개인 역할Data/Dashboard VPC Terraform, Streams→Redis notifier, FastAPI·React작업 분담 ADR. DataProcessor·GraphAggregator5m·Slack dispatcher는 팀원 구현
테스트 환경Raspberry Pi 기반 A와 VM 기반 B/C, 2인 교육 팀시스템 구조. 실제 3개 고객 공장 운영으로 표현하지 않음
장애 관측48h TTL, 약 116,000건 상주, Query 50+ pages트러블슈팅 #42. 동일 조건 전후 측정값이 아님
임시 cap의 한계최신 500건 제한으로 오래된 위험 신호 누락조회 ADR. 장기 집계로 전환한 이유
현재 HTTP API10m 기본 250, 1h 기본 2,000; 6/12/24h 집계router. 내부 helper의 기본 500과 구분
집계 범위6/12/24h source 최대 72/144/288, 출력 최대 72DynamoDB 조회/재집계 코드. 완전한 구간 데이터가 있을 때의 버킷 수; 실제 반환 수는 데이터 유무에 좌우됨
TTLraw 2h 목표/설정과 마지막 문서화된 운영 48h 구분read model. 현재 배포 환경의 TTL을 새로 관측한 것은 아님
개선 수치지연·오류율·읽기 용량 개선 폭 미측정초기 ADR의 93%는 항목 수 추정 산식. <2초 및 무재발 서술은 동일 부하 실행 로그가 없어 제출 성능 성과로 사용하지 않음

Safety Score는 낮을수록 위험하다. 원본의 모든 이벤트 순서를 집계로 복원할 수는 없으나, 평균뿐 아니라 최솟값·최댓값을 유지해 위험 신호를 평균으로만 덮지 않는 계약을 사용한다.

제출 전 재실행한 테스트

실행일: 2026-09-08. 팀 통합 코드 위 commit의 기존 test_history.py를 수정 없이 실행했다. 새 성과 수치를 만들기 위한 신규 테스트가 아니다.

python3 -m venv ../test-venv
../test-venv/bin/python -m pip install \
  -r apps/dashboard-backend/requirements.txt \
  -r apps/dashboard-backend/requirements-dev.txt
../test-venv/bin/python -m pytest -q apps/dashboard-backend/tests/test_history.py

실행 환경: Python 3.12, 테스트 fixture의 모의 AWS(moto) 및 SQLite. 결과: 38 passed, 3 warnings in 24.65s. 경고는 AnyIO alias와 FastAPI startup hook의 deprecation이다. 실제 AWS 호출이나 부하 테스트 결과가 아니다. 의존성의 향후 버전 변경에 따라 재실행 결과/시간은 달라질 수 있다.

검사입력과 기대 결과
결측 처리빈 버킷과 유효 표본 75개를 합칠 때 빈 값을 0점으로 평균내지 않고 평균 94 유지
12h 재집계5분 버킷 2개를 10분으로 합침. 표본 97+97=194, 위험 및 온도 극값 보존
24h 재집계출력 간격 20분
원본/집계 분리1h 원본 조회에 GRAPH#5M 항목이 섞이지 않음

테스트 원문, fixture.

설계 선택과 남는 제약

사례당시 선택 이유남는 제약 / 원문
Aegis APIWebSocket 연결과 RDS·Redis 연결 풀 때문에 Lambda 초안을 Fargate로 변경task·ALB·NAT 상시 비용, 단일 AZ 의존. Fargate ADR
Aegis VPCdashboard에서 EKS/Argo 관리 API를 직접 조회하지 않고 데이터 저장소를 통해 연결데이터 계약·IAM 조율 필요. Dashboard ADR
Stock 실행별도 브로커 없이 Kubernetes Job별 격리·TTL 적용Pod 생성 비용, 세밀한 우선순위·속도 제어 필요. Stock ADR
AWS 504 진단worker SG 연결 누락과 EC2→ClusterIP 라우팅 문제를 구분; PoC에서 NodePort 적용node IP 의존을 운영 대안으로 승격하지 않음. 트러블슈팅
GKE Pending제한된 2개 노드에서 maxSurge 0·maxUnavailable 1 선택rollout 중 가용 replica가 일시 1개. 트러블슈팅

Stock의 2026-03-04 E2E 기록은 단일 요청의 상태 전이와 MySQL 저장을 보여 준다. 이 기록의 짧은 타임스탬프 차이를 처리속도 성과로 사용하지 않는다. Job 생성 이후 Worker 중단·deadline·결과 저장 실패의 모든 복구 경로를 검증했다는 뜻도 아니다.

Stock은 CI가 manifest PR을 만들고 수동 merge 후 Argo CD가 동기화한다. GKE 사례에서는 이미지 tag를 manifest에 수동 반영했다. 두 사례를 동일한 자동 배포 수준으로 표현하지 않는다.