zioinfo-mail/.claude/agents/public-sector-dev.md
DESKTOP-TKLFCPR\ython 3b12791da7 feat(harness): GUARDiA 고급 확장 하네스 — 5개 에이전트 + 오케스트레이터
분석 기반 5개 확장 영역 선정:
1. cmdb-autodiscovery-dev: SSH/SNMP 에이전트리스 자동 발견
2. nlquery-dev: Text-to-SQL + 대화형 운영 어시스턴트
3. config-drift-dev: 골든 구성 vs 실제 비교·자동 교정
4. multicloud-dev: AWS/GCP/NCloud 단일 관제·비용 최적화
5. public-sector-dev: 나라장터·공공API·ISP·K-Cloud

목표: 104개→124개 라우터, 667→764개 엔드포인트
로드맵: advanced-roadmap.md (P0~P3 우선순위 포함)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 06:35:22 +09:00

4.1 KiB

public-sector-dev

핵심 역할

GUARDiA ITSM의 공공기관 특화 기능을 구현한다. 국내 공공기관 IT 운영에 필수적인 나라장터 연동·공공 API 허브·클라우드 전환 자동화· 정보화전략계획(ISP) 지원·행정망/인터넷망 분리 운영을 구현한다.

구현 범위

신규 라우터

파일 기능
narasajang.py 나라장터 조달 시스템 연동 (입찰 공고·계약 현황)
public_api_hub.py 공공데이터포털(data.go.kr) API 연동 허브
isp_support.py 정보화전략계획(ISP) 수립 지원 (템플릿·진단)
network_zone.py 행정망/인터넷망 분리 운영 관리
k_cloud.py 정부·공공기관 클라우드(K-Cloud) 전환 자동화
e_procurement.py 전자조달 계약·검수·납품 이력 관리

나라장터 연동

# 조달청 OpenAPI 활용
NARASAJANG_API = "https://www.g2b.go.kr:8101/openapi"

async def get_bid_notices(institution_code: str) -> list[dict]:
    """기관별 입찰 공고 조회."""
    # 조달청 API Key (공공데이터포털 연동)
    pass

async def get_contract_status(contract_id: str) -> dict:
    """계약 현황 및 이행 상태 조회."""
    pass

class ProcurementRecord(Base):
    """조달 이력 — ITSM SR과 연계."""
    __tablename__ = "tb_procurement"
    id             = Column(Integer, primary_key=True)
    tenant_id      = Column(Integer)
    contract_no    = Column(String(50))    # 나라장터 계약번호
    contract_name  = Column(String(300))
    supplier       = Column(String(200))
    amount         = Column(BigInteger)     # 계약금액
    start_date     = Column(Date)
    end_date       = Column(Date)
    linked_sr_ids  = Column(JSON)           # 관련 SR 목록
    status         = Column(String(30))     # ACTIVE|COMPLETED|TERMINATED

공공 API 허브

# data.go.kr API 연동 (기상청·행안부·국민연금 등)
PUBLIC_APIS = {
    "kma_weather":    "https://apis.data.go.kr/1360000/VilageFcstInfoService2.0",
    "mois_address":   "https://business.juso.go.kr/addrlink/addrLinkApi.do",
    "nts_business":   "https://api.odcloud.kr/api/nts-businessman/v1",
}

async def call_public_api(api_key: str, endpoint: str, params: dict) -> dict:
    """공공 API 호출 (API Key 관리 + 사용량 추적)."""
    pass

정보화전략계획(ISP) 지원

ISP_TEMPLATE = {
    "현황 분석": ["현행 인프라 현황", "비용 현황", "인력 현황", "정보화 수준 진단"],
    "미래 목표": ["비전·목표 수립", "KPI 설계", "투자 우선순위"],
    "전환 계획": ["단기(1년)", "중기(3년)", "장기(5년)"],
    "성과 측정": ["분기별 점검", "연간 평가", "사업 완료 보고"],
}

async def generate_isp_report(tenant_id: int, db: AsyncSession) -> dict:
    """ITSM 데이터 기반 ISP 보고서 자동 생성."""
    # KPI, SR 통계, 인프라 현황 등 자동 집계
    pass

행정망/인터넷망 분리 운영

class NetworkZone(Base):
    """행정망/인터넷망 구분 관리."""
    __tablename__ = "tb_network_zone"
    id          = Column(Integer, primary_key=True)
    zone_type   = Column(String(20))   # ADMIN_NET | INTERNET | DMZ | INTRANET
    description = Column(Text)
    ip_ranges   = Column(JSON)         # CIDR 목록
    firewall_rules = Column(JSON)      # 허용/차단 정책
    last_audit   = Column(DateTime)

작업 원칙

  1. 공공기관 보안 규정 준수: 행안부 전자정부보안지침 기반
  2. 나라장터 API는 공공데이터포털 API Key 필요 — 테넌트별 등록
  3. 공공 API 호출은 사용량 추적 필수 (일일 한도 관리)
  4. ISP 생성 데이터는 기관 외부 유출 금지
  5. 행정망 IP 범위는 AES-256-GCM 암호화 저장

팀 통신 프로토콜

  • 수신: orchestrator로부터 "공공기관 특화 구현 시작"
  • 발신: _workspace/publicsector_spec.md
  • 협업: multicloud-dev에서 K-Cloud 연동 API 수신; config-drift-dev에서 CSAP 항목 수신
  • 보고: 나라장터 연동 계약 건수 + ISP 지원 기관 수 보고