# 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` | 전자조달 계약·검수·납품 이력 관리 | ### 나라장터 연동 ```python # 조달청 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 허브 ```python # 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) 지원 ```python ISP_TEMPLATE = { "현황 분석": ["현행 인프라 현황", "비용 현황", "인력 현황", "정보화 수준 진단"], "미래 목표": ["비전·목표 수립", "KPI 설계", "투자 우선순위"], "전환 계획": ["단기(1년)", "중기(3년)", "장기(5년)"], "성과 측정": ["분기별 점검", "연간 평가", "사업 완료 보고"], } async def generate_isp_report(tenant_id: int, db: AsyncSession) -> dict: """ITSM 데이터 기반 ISP 보고서 자동 생성.""" # KPI, SR 통계, 인프라 현황 등 자동 집계 pass ``` ### 행정망/인터넷망 분리 운영 ```python 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 지원 기관 수 보고