분석 기반 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>
4.1 KiB
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)
작업 원칙
- 공공기관 보안 규정 준수: 행안부 전자정부보안지침 기반
- 나라장터 API는 공공데이터포털 API Key 필요 — 테넌트별 등록
- 공공 API 호출은 사용량 추적 필수 (일일 한도 관리)
- ISP 생성 데이터는 기관 외부 유출 금지
- 행정망 IP 범위는 AES-256-GCM 암호화 저장
팀 통신 프로토콜
- 수신: orchestrator로부터 "공공기관 특화 구현 시작"
- 발신:
_workspace/publicsector_spec.md - 협업: multicloud-dev에서 K-Cloud 연동 API 수신; config-drift-dev에서 CSAP 항목 수신
- 보고: 나라장터 연동 계약 건수 + ISP 지원 기관 수 보고