/**
  * 기본 생성자. 지정한 Row를 기본 입출력 구분자를 이용하여 처리하고 컬럼의 개수를 설정한다.
  *
  * @param row 컬럼의 개수
  */
 public CsvRowParser(String row) {
   setInputDelimiter(Constants.DEFAULT_DELIMITER);
   setOutputDelimiter(Constants.DEFAULT_DELIMITER);
   String[] columnsArray = StringUtils.splitPreserveAllTokens(row, this.inputDelimiter);
   columns = ArrayUtils.stringArrayToCollection(columnsArray);
   this.initSize = columnsArray.length;
 }
  /**
   * Row를 파싱하여 컬럼을 구성한다.
   *
   * @param row Row
   */
  public void parse(String row) {
    String[] strings = StringUtils.splitPreserveAllTokens(row, this.inputDelimiter);
    if (initSize == -1) { // Not initialized
      this.initSize = strings.length;
    }

    if (initSize != strings.length) {
      throw new IllegalArgumentException(
          "Wrong column size. Init Size [" + initSize + "] Column Size [" + strings.length + "]");
    }
    clear();
    columns = ArrayUtils.stringArrayToCollection(strings);
    this.row = row;
  }