Skip to content

Latest commit

 

History

History
37 lines (21 loc) · 2.53 KB

File metadata and controls

37 lines (21 loc) · 2.53 KB

상태: 이 문서는 현재 구현을 기술한다.

아키텍처

구성 요소

세 개의 역할이 있다.

  • Host — 프로젝트 등록(Projects), 검사 신청서 접수, 검사 결과서 저장을 담당하는 중앙 서비스.
  • Worker — 실제 실행 환경(개발 머신 등)에서 에이전트를 구동해 검사를 수행하는 실행 노드. 다른 실행 환경으로 확장될 수 있으나, 지금은 웹/서버 지원만 구현하며 그 확장을 위한 추상화 레이어를 미리 만들지 않는다(D-05).
  • Console — Host API의 클라이언트인 관리자 UI. 별도의 특권 경로를 갖지 않는다.

연결 방향

Worker가 Host에 접속한다(pull). Host가 Worker에 직접 접속하지 않는다. 이 방향 덕분에 방화벽 뒤 사내망에 있는 실행 환경도 문제없이 연결된다. Worker 전용 엔드포인트(claim/report/fail)는 공유 키 기반 인증으로 보호된다 — 설정은 README 참고.

데이터 소유권

소스 코드, 실행 로그, 스크린샷 등 검사 중 생성되는 원본 데이터는 Worker(실행 환경 로컬)에 남는다. Host는 검사 결과서(판정·요약·근거 텍스트)만 수신하고 저장한다. Host에 원본 코드가 집중되지 않는다.

핵심 산출물 모델

  • 검사 신청서(입력) — 매 검사 실행마다 제출하는 가벼운 요청. 무엇을 검사할지에 대한 트리거다.
  • 프로젝트 선언 — 목적·비전·범위·경계에 대한 선언. Host의 Projects 엔티티에 등록되며, 신청서보다 훨씬 드물게 바뀐다. 대상 리포 안에는 아무것도 두지 않는다(비침습성) — 대상 리포에 어떤 파일도 없이 Momos가 작동할 수 있다.
  • 검사 결과서(출력) — 실행 결과와 근거 있는 지적을 담은 리포트.

통합 방식

대부분의 액션은 API로 이뤄진다. Console도 그 API의 클라이언트일 뿐이다. Momos는 개별 이슈를 자체적으로 추적하지 않으며, 후속 조치가 필요한 지적은 docket 또는 GitHub Issues로 넘긴다.

에이전트 실행

Worker의 에이전트는 정적 분석, 스크립트, 전통적 테스트 도구, Computer Use(화면을 보고 직접 조작하는 능력)를 상황에 맞게 오케스트레이션한다. 도구 호출은 MCP(Model Context Protocol) 표준을 따른다.

라이선스와 공개 경계

momos는 AGPL-3.0으로 공개된다. 코드베이스는 단일하며, 별도의 비공개 확장 리포는 (지금은) 두지 않는다.