public static void CreateMaterial(JOB job)
        {
            #region BFS로 Routing
            { /* BFS하기 전에 초기화 */
                queue.Clear();
                isFound   = false;
                MAXOFMIN  = EnumClass.MINNUM;
                lastRoute = null;
            }
            // Start Vertex를 queue에 집어넣는다.
            queue.Enqueue(new Tuple <String, Route>(job.source, new Route(job.source)));

            Console.WriteLine("BFS 시작");
            Console.WriteLine("");

            BFS(job.terminal);
            #endregion BFS로 Routing

            #region Routing 결과
            Console.WriteLine("");
            Console.WriteLine("MaxOfMin(최소유량 중 최대값) = {0}", MAXOFMIN);
            Console.Write("가장 한가한 경로 : ");
            lastRoute.printRoute();
            #endregion Routing 결과

            #region 물류 객체 생성
            Material newMaterial;
            switch (job.MaterialType)
            {
            case MATERIAL_TYPE.DEFAULT_MATERIAL:
                newMaterial = new DefaultMaterial(lastRoute);
                break;

            default:
                newMaterial = new DefaultMaterial(lastRoute);
                break;
            }
            #endregion 물류 객체 생성

            #region Routing경로 사용
            Console.WriteLine("");
            Console.WriteLine("경로 사용..");
            try
            {
                lastRoute.useRoute(g);
            }
            catch (RouteException re)
            {
                Console.WriteLine(re.Message);
            }
            finally
            {
                Console.WriteLine("경로 사용 완료!");
                Console.WriteLine("----------------------");

                Console.WriteLine("경로 설정된 후의 Graph");
                Console.WriteLine("");
                g.printGraph();
            }

            #endregion Routing경로 사용
        }