private int parseArguements(String[] args, Job job) throws Exception {
		////////////////////////////////////////
		// 옵션 목록을 구성하고 검증한다.
		////////////////////////////////////////

		Options options = getOptions();
		HelpFormatter formatter = new HelpFormatter();
		if (args.length == 0) {
			formatter.printHelp("hadoop jar <JAR> " + getClass().getName(), options, true);
			return -1;
		}

		// 커맨드 라인을 파싱한다.
		CommandLineParser parser = new BasicParser();
		CommandLine cmd = parser.parse(options, args);

		// 파라미터를 검증한다.
		for (String[] requiredOption : requiredOptions) {
			if (!cmd.hasOption(requiredOption[0])) {
				formatter.printHelp("hadoop jar <JAR> " + getClass().getName(), options, true);
				return -1;
			}
		}

		////////////////////////////////////////
		// 파라미터를 Hadoop Configuration에 추가한다
		////////////////////////////////////////

		if (cmd.hasOption("i")) {
			FileInputFormat.addInputPaths(job, cmd.getOptionValue("i"));
		}

		if (cmd.hasOption("o")) {
			FileOutputFormat.setOutputPath(job, new Path(cmd.getOptionValue("o")));
		}

		if (cmd.hasOption("d")) {
			job.getConfiguration().set("delimiter", cmd.getOptionValue("d"));
		}

		// 옵션을 지정한 경우 출력 경로를 삭제한다.
		if (cmd.hasOption("od")) {
			if (HdfsUtils.isExist(cmd.getOptionValue("o"))) {
				HdfsUtils.deleteFromHdfs(cmd.getOptionValue("o"));
			}
		}

		return 0;
	}