더북(TheBook)
# ============================================================
#                      gRPC Server Runner
# ============================================================

def serve(port: int = 50056):
    """
    gRPC 서버를 시작하는 함수
    
    Args:
        port: 서버가 리스닝할 포트 번호 (기본값: 50056)
    """
    # ThreadPoolExecutor를 사용하여 최대 10개의 워커 스레드로 요청 처리
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
    
    # RemediationServiceServicer 인스턴스를 서버에 등록
    agents_pb2_grpc.add_RemediationServiceServicer_to_server(
        RemediationServiceServicer(), server
    )
    
    # IPv6 모든 인터페이스([::])에 지정된 포트로 바인딩 
    server.add_insecure_port(f"[::]:{port}")
    
    # 서버 시작 로그 출력
    print(f"[RemediationService] gRPC server listening on port {port}")
    
    # 서버 시작
    server.start()
    
    # 서버가 종료될 때까지 대기 
    server.wait_for_termination()