> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# output_format_* 포맷 설정

> output_format_*로 생성된 그룹의 ClickHouse 포맷 설정입니다.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>유형</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>기본값</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          재시작 없이 변경 가능
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

이 설정은 [소스](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h)에서 자동으로 생성됩니다.

<div id="output_format_always_write_decimal_point_in_float_and_decimal">
  ## output\_format\_always\_write\_decimal\_point\_in\_float\_and\_decimal
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "값이 정수이더라도, 텍스트 형식의 부동소수점 및 Decimal 숫자에 항상 소수점을 출력하는 새로운 설정입니다."}]}]} />

값이 정수이더라도, 텍스트 형식의 부동소수점 및 Decimal 숫자에 항상 소수점을 출력합니다. 예를 들어 `1` 대신 `1.`을 출력합니다.

기본적으로 비활성화되어 있습니다.

<div id="output_format_arrow_compression_method">
  ## output\_format\_arrow\_compression\_method
</div>

<SettingsInfoBlock type="ArrowCompression" default_value="lz4_frame" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "기본적으로 Arrow 출력 형식에 lz4 압축을 사용합니다"}]}]} />

Arrow 출력 형식의 압축 방식입니다. 지원되는 코덱은 lz4\_frame, zstd, none (비압축)입니다.

<div id="output_format_arrow_date_as_uint16">
  ## output\_format\_arrow\_date\_as\_uint16
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "기본적으로 Date 값을 일반 UInt16이 아닌 Arrow DATE32로 씁니다(다시 읽으면 Date32로 읽힘)."}]}]} />

Date 값을 32비트 Arrow DATE32 유형으로 변환하는 대신(다시 읽으면 Date32로 읽힘), 일반 16비트 숫자로 씁니다(다시 읽으면 UInt16으로 읽힘).

<div id="output_format_arrow_fixed_string_as_fixed_byte_array">
  ## output\_format\_arrow\_fixed\_string\_as\_fixed\_byte\_array
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "기본적으로 FixedString에 Binary 대신 Arrow FIXED_SIZE_BINARY 타입 사용"}]}]} />

FixedString 컬럼에는 Binary 대신 Arrow FIXED\_SIZE\_BINARY 타입을 사용합니다.

<div id="output_format_arrow_low_cardinality_as_dictionary">
  ## output\_format\_arrow\_low\_cardinality\_as\_dictionary
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

LowCardinality 유형을 딕셔너리 Arrow 유형으로 출력할 수 있게 합니다

<div id="output_format_arrow_string_as_string">
  ## output\_format\_arrow\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "ClickHouse는 일반적으로 UTF-8로 사용되는 String 데이터 타입에서 임의의 바이너리 데이터를 허용합니다. Parquet\/ORC\/Arrow의 String은 UTF-8만 지원합니다. 따라서 ClickHouse String 데이터 타입에 Arrow의 어떤 데이터 타입을 사용할지(String 또는 Binary) 선택할 수 있습니다. Binary가 더 정확하고 호환성도 높지만, 대부분의 경우 기본값으로 String을 사용하면 사용자 기대에 더 잘 부합합니다."}]}]} />

String 컬럼에 Binary 대신 Arrow String 타입 사용

<div id="output_format_arrow_unsupported_types_as_binary">
  ## output\_format\_arrow\_unsupported\_types\_as\_binary
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "지원되지 않는 CH 타입을 UNKNOWN_TYPE 예외 대신 arrow 바이너리로 변환하는 새로운 설정입니다."}]}]} />

변환할 수 없는 출력 타입을 원시 바이너리 데이터로 처리합니다. false이면 이러한 타입에서 UNKNOWN\_TYPE 예외가 발생합니다.

<div id="output_format_arrow_use_64_bit_indexes_for_dictionary">
  ## output\_format\_arrow\_use\_64\_bit\_indexes\_for\_dictionary
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "Arrow 딕셔너리에서 64비트 인덱스 유형 사용을 허용합니다"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "0"},{"label": "Arrow 딕셔너리에서 64비트 인덱스 유형 사용을 허용합니다"}]}]} />

Arrow 형식의 딕셔너리 인덱스에는 항상 64비트 정수를 사용합니다

<div id="output_format_arrow_use_native_writer">
  ## output\_format\_arrow\_use\_native\_writer
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "Apache Arrow 라이브러리 기반 writer 대신 Arrow 및 ArrowStream 포맷에 ClickHouse 네이티브 writer를 사용하기 위한 새로운 설정입니다."}]}]} />

Apache Arrow 라이브러리 기반 writer 대신 Arrow 및 ArrowStream 포맷에 ClickHouse 네이티브 writer를 사용합니다.

<div id="output_format_arrow_use_signed_indexes_for_dictionary">
  ## output\_format\_arrow\_use\_signed\_indexes\_for\_dictionary
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "권장 사항에 따라 기본적으로 Arrow 딕셔너리에 부호 있는 인덱스 유형을 사용합니다"}]}]} />

Arrow 형식에서 딕셔너리 인덱스에 부호 있는 정수를 사용합니다

<div id="output_format_avro_codec">
  ## output\_format\_avro\_codec
</div>

출력에 사용하는 압축 코덱입니다. 가능한 값은 'null', 'deflate', 'snappy', 'zstd'입니다.

<div id="output_format_avro_confluent_subject">
  ## output\_format\_avro\_confluent\_subject
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": ""},{"label": "AvroConfluent 출력 작성 시 Confluent 스키마 레지스트리에서 스키마 등록에 사용할 subject name을 지정하는 새로운 설정입니다."}]}]} />

AvroConfluent 출력 형식의 경우: Confluent 스키마 레지스트리에서 스키마가 등록될 subject name입니다. AvroConfluent 출력 작성 시 필요합니다.

<div id="output_format_avro_rows_in_file">
  ## output\_format\_avro\_rows\_in\_file
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

파일당 최대 행 수(스토리지에서 허용하는 경우)

<div id="output_format_avro_string_column_pattern">
  ## output\_format\_avro\_string\_column\_pattern
</div>

Avro format: AVRO string으로 선택할 String 컬럼을 지정하는 정규식입니다.

<div id="output_format_avro_sync_interval">
  ## output\_format\_avro\_sync\_interval
</div>

<SettingsInfoBlock type="UInt64" default_value="16384" />

바이트 단위 동기화 간격입니다.

<div id="output_format_binary_encode_types_in_binary_format">
  ## output\_format\_binary\_encode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "RowBinaryWithNamesAndTypes 출력 형식에서 타입 이름을 바이너리 형식으로 기록할 수 있도록 새로운 설정이 추가되었습니다"}]}]} />

RowBinaryWithNamesAndTypes 출력 형식에서 타입 이름 대신 데이터 타입을 바이너리 형식으로 기록합니다

<div id="output_format_binary_write_json_as_string">
  ## output\_format\_binary\_write\_json\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "RowBinary 출력 형식에서 JSON 타입 값을 JSON String 값으로 기록하는 새로운 설정 추가"}]}]} />

RowBinary 출력 형식에서 [JSON](/docs/ko/reference/data-types/newjson) 데이터 타입 값을 JSON [String](/docs/ko/reference/data-types/string) 값으로 기록합니다.

<div id="output_format_bson_string_as_string">
  ## output\_format\_bson\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

String 컬럼에는 Binary 대신 BSON String 유형을 사용합니다.

<div id="output_format_compression_level">
  ## output\_format\_compression\_level
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "3"},{"label": "쿼리 출력의 압축 수준을 변경할 수 있도록 허용"}]}]} />

쿼리 출력이 압축될 때 사용되는 기본 압축 수준입니다. 이 설정은 `SELECT` 쿼리에 `INTO OUTFILE`이 있거나 테이블 함수 `file`, `url`, `hdfs`, `s3`, `azureBlobStorage`에 쓸 때 적용됩니다.

가능한 값: `1`부터 `22`까지

<div id="output_format_compression_zstd_window_log">
  ## output\_format\_compression\_zstd\_window\_log
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "zstd 압축 사용 시 쿼리 출력의 zstd window log를 변경할 수 있습니다"}]}]} />

출력 압축 방식(Compression method)이 `zstd`일 때 사용할 수 있습니다. 값이 `0`보다 크면 이 설정은 압축 윈도우 크기(`2`의 거듭제곱)를 명시적으로 설정하고 zstd 압축의 long-range 모드를 활성화합니다. 이를 통해 더 높은 압축률을 얻는 데 도움이 될 수 있습니다.

가능한 값: 음이 아닌 숫자입니다. 값이 너무 작거나 너무 크면 `zstdlib`이 예외를 발생시킵니다. 일반적으로는 `20`(window size = `1MB`)에서 `30`(window size = `1GB`) 사이의 값을 사용합니다.

<div id="output_format_csv_crlf_end_of_line">
  ## output\_format\_csv\_crlf\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

true로 설정하면 CSV 형식의 줄 끝에 \n 대신 \r\n이 사용됩니다.

<div id="output_format_csv_header_serialize_tuple_into_separate_columns">
  ## output\_format\_csv\_header\_serialize\_tuple\_into\_separate\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "새 설정입니다. output_format_csv_serialize_tuple_into_separate_columns가 활성화되면 이제 CSVWithNames\/CSVWithNamesAndTypes 헤더에서 Tuple 컬럼이 리프 필드로 평탄화되어 헤더의 너비가 데이터와 일치합니다. 이전의 단일 이름 헤더를 복원하려면 false로 설정하십시오."}]}]} />

[output\_format\_csv\_serialize\_tuple\_into\_separate\_columns](/docs/ko/reference/settings/formats/output-format#output_format_csv_serialize_tuple_into_separate_columns)가 활성화되면 `CSVWithNames` 및 `CSVWithNamesAndTypes`의 헤더 행은 각 Tuple 컬럼을 리프 필드(`t.a`, `t.b`와 같은 점 표기 이름과 리프 타입 이름)로 평탄화하므로, 헤더의 컬럼 수가 데이터와 같아집니다. `CustomSeparated*`에서는 `format_custom_escaping_rule = 'CSV'`이고 `format_custom_field_delimiter`가 `format_csv_delimiter`와 동일한 단일 문자일 때만 이 평탄화가 적용됩니다. 그렇지 않으면(예: 기본 탭 구분자이거나 `format_custom_field_delimiter = '|'`인 경우) 헤더는 평탄화되지 않은 상태로 유지되어 계속 데이터와 일치합니다. 헤더가 단일 최상위 Tuple 이름과 타입을 유지하는 이전 동작을 계속 사용하려면 `0`으로 설정하십시오.

참고: 평탄화된 헤더는 `input_format_with_names_use_header = 1`일 때 이름 기준으로 다시 Tuple로 읽어들여지지 않습니다. 이런 데이터를 다시 Tuple로 읽으려면 출력 시 이 설정을 `0`으로 설정하거나, `input_format_with_names_use_header = 0`으로 읽어야 합니다(`*WithNamesAndTypes` 포맷인 `CSVWithNamesAndTypes` 및 `CustomSeparatedWithNamesAndTypes`의 경우에는 `input_format_with_types_use_header = 0`도 함께 설정해야 합니다. 그렇지 않으면 평탄화된 타입 행이 단일 최상위 Tuple 입력 필드를 기준으로 검증되어 거부됩니다).

<div id="output_format_csv_serialize_tuple_into_separate_columns">
  ## output\_format\_csv\_serialize\_tuple\_into\_separate\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "CSV 형식에서 튜플을 해석하는 새로운 방식이 추가되었습니다."}]}, {"id": "row-2","items": [{"label": "24.3"},{"label": "1"},{"label": "CSV 형식에서 튜플을 해석하는 새로운 방식이 추가되었습니다."}]}]} />

true로 설정하면 CSV 형식의 튜플이 별도의 컬럼으로 직렬화됩니다(즉, 튜플의 중첩 구조는 유지되지 않습니다)

<div id="output_format_decimal_trailing_zeros">
  ## output\_format\_decimal\_trailing\_zeros
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.9"},{"label": "0"},{"label": "출력 결과를 더 보기 좋게 하기 위해 기본적으로 Decimal 타입의 텍스트 표현에서 후행 0을 출력하지 않습니다"}]}]} />

Decimal 값을 출력할 때 후행 0도 함께 출력합니다. 예: 1.23 대신 1.230000.

기본적으로 비활성화되어 있습니다.

<div id="output_format_float_precision">
  ## output\_format\_float\_precision
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "부동소수점 출력의 소수 자릿수를 제어하는 새로운 설정"}]}]} />

0이 아닌 경우, 부동소수점 출력(`Float32`, `Float64`, `BFloat16`)은 소수점 이하 자릿수를 최대 이 값까지만 사용해 포맷합니다(끝의 0은 제거됨).
0인 경우(기본값), 가장 짧은 round-trip 표현을 사용합니다.

고정 소수점 표기법으로 표현하기에 값이 너무 크거나, 요청한 정밀도로 반올림할 때 모든 유효 자릿수가 사라져 가수가 `±0`이 될 정도로 값의 크기가 매우 작은 경우에는 대신 과학적 표기법으로 출력됩니다. 이러한 폴백 상황에서는 가수에 요청한 소수 자릿수보다 더 많은 자릿수가 포함될 수 있습니다.

유효 범위: 0\~100입니다.

<div id="output_format_image_height">
  ## output\_format\_image\_height
</div>

<SettingsInfoBlock type="UInt64" default_value="1024" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1024"},{"label": "PNG와 같은 이미지 출력 형식의 출력 이미지 높이를 제어하는 새로운 설정입니다."}]}]} />

`PNG`와 같은 이미지 출력 형식에서 출력 이미지의 높이(픽셀 단위)입니다.

기본값: 1024.

<div id="output_format_image_terminal_mode">
  ## output\_format\_image\_terminal\_mode
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": ""},{"label": "PNG와 같은 이미지 출력 형식을 원시 이미지 바이트로 기록하는 대신 인라인 이미지 프로토콜을 사용해 터미널에 직접 렌더링할지 제어하는 새로운 설정입니다."}]}]} />

`PNG`와 같은 이미지 출력 형식의 경우, 원시 이미지 바이트를 기록하는 대신 인라인 이미지 프로토콜을 사용해 이미지를 터미널에 직접 출력합니다.

가능한 값:

* \`\` (비어 있음) — 원시 이미지 바이트를 기록합니다(기본값).
* `iterm` — iTerm2 인라인 이미지 프로토콜을 사용합니다.
* `kitty` — Kitty 그래픽 프로토콜을 사용합니다.
* `sixel` — Sixel 프로토콜을 사용합니다.
* `auto` — 출력 대상이 터미널이면 해당 capability를 감지해 `iterm`, `kitty`, `sixel`을 이 순서대로 사용하고, 그렇지 않으면 원시 이미지 바이트를 기록합니다.

기본값: \`\` (비어 있음).

<div id="output_format_image_width">
  ## output\_format\_image\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="1024" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1024"},{"label": "PNG와 같은 이미지 출력 형식의 출력 이미지 너비를 제어하는 새로운 설정입니다."}]}]} />

`PNG`와 같은 이미지 출력 형식에서 출력 이미지의 너비를 픽셀 단위로 지정합니다.

기본값: 1024.

<div id="output_format_json_array_of_rows">
  ## output\_format\_json\_array\_of\_rows
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

[JSONEachRow](/docs/ko/reference/formats/JSON/JSONEachRow) 포맷에서 모든 행을 JSON 배열로 출력할 수 있도록 합니다.

가능한 값:

* 1 — ClickHouse가 모든 행을 배열로 출력하며, 각 행은 `JSONEachRow` 포맷을 따릅니다.
* 0 — ClickHouse가 각 행을 `JSONEachRow` 포맷으로 개별 출력합니다.

**설정이 활성화된 쿼리 예시**

쿼리:

```sql theme={null}
SET output_format_json_array_of_rows = 1;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

결과:

```text theme={null}
[
{"number":"0"},
{"number":"1"},
{"number":"2"}
]
```

**설정이 비활성화된 쿼리 예시**

쿼리:

```sql theme={null}
SET output_format_json_array_of_rows = 0;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

결과:

```text theme={null}
{"number":"0"}
{"number":"1"}
{"number":"2"}
```

<div id="output_format_json_escape_forward_slashes">
  ## output\_format\_json\_escape\_forward\_slashes
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

JSON 출력 형식에서 문자열을 출력할 때 슬래시(/)를 이스케이프할지 제어합니다. 이는 JavaScript와의 호환성을 위한 것입니다. 항상 이스케이프되는 백슬래시와 혼동하지 마십시오.

기본적으로 사용 설정되어 있습니다.

<div id="output_format_json_map_as_array_of_tuples">
  ## output\_format\_json\_map\_as\_array\_of\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "새로운 설정"}]}]} />

맵 컬럼을 튜플로 이루어진 JSON 배열로 직렬화합니다.

기본적으로 비활성화되어 있습니다.

<div id="output_format_json_named_tuples_as_objects">
  ## output\_format\_json\_named\_tuples\_as\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.6"},{"label": "1"},{"label": "기본적으로 JSON 포맷에서 named tuple을 JSON 객체로 직렬화할 수 있습니다"}]}]} />

named tuple 컬럼을 JSON 객체로 직렬화합니다.

기본적으로 활성화되어 있습니다.

<div id="output_format_json_pretty_print">
  ## output\_format\_json\_pretty\_print
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "기본적으로 JSON 출력 형식에서 값을 Pretty 형식으로 표시합니다"}]}]} />

이 설정은 JSON 출력 형식을 사용할 때 `data` 배열 내에서 튜플, 맵, 배열과 같은 중첩된 구조를 어떻게 표시할지 결정합니다.

예를 들어, 다음과 같이 출력되는 대신:

```json theme={null}
"data":
[
  {
    "tuple": {"a":1,"b":2,"c":3},
    "array": [1,2,3],
    "map": {"a":1,"b":2,"c":3}
  }
],
```

출력은 다음과 같은 포맷으로 표시됩니다:

```json theme={null}
"data":
[
    {
        "tuple": {
            "a": 1,
            "b": 2,
            "c": 3
        },
        "array": [
            1,
            2,
            3
        ],
        "map": {
            "a": 1,
            "b": 2,
            "c": 3
        }
    }
],
```

기본적으로 활성화되어 있습니다.

<div id="output_format_json_quote_64bit_floats">
  ## output\_format\_json\_quote\_64bit\_floats
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

JSON\* 포맷으로 출력할 때 64비트 [부동소수점 값](/docs/ko/reference/data-types/float)을 따옴표로 묶을지 제어합니다.

기본적으로 비활성화되어 있습니다.

<div id="output_format_json_quote_64bit_integers">
  ## output\_format\_json\_quote\_64bit\_integers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "기본적으로 JSON에서 64비트 정수에 따옴표를 붙이지 않도록 설정합니다"}]}]} />

[JSON](/docs/ko/reference/formats/JSON/JSON) 포맷으로 출력할 때 64비트 이상 [정수](/docs/ko/reference/data-types/int-uint)(예: `UInt64`, `Int128`)에 따옴표를 붙일지 제어합니다.
이러한 정수는 기본적으로 따옴표로 묶여 출력됩니다. 이 동작은 대부분의 JavaScript 구현과 호환됩니다.

가능한 값:

* 0 — 정수를 따옴표 없이 출력합니다.
* 1 — 정수를 따옴표로 묶어 출력합니다.

<div id="output_format_json_quote_decimals">
  ## output\_format\_json\_quote\_decimals
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

JSON 출력 형식에서 Decimal 값을 따옴표로 감쌀지 여부를 제어합니다.

기본적으로 비활성화되어 있습니다.

<div id="output_format_json_quote_denormals">
  ## output\_format\_json\_quote\_denormals
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

[JSON](/docs/ko/reference/formats/JSON/JSON) 출력 형식에서 `+nan`, `-nan`, `+inf`, `-inf`를 출력하도록 설정합니다.

가능한 값:

* 0 — 비활성화됨.
* 1 — 활성화됨.

**예시**

다음 테이블 `account_orders`를 살펴보겠습니다:

```text theme={null}
┌─id─┬─name───┬─duration─┬─period─┬─area─┐
│  1 │ Andrew │       20 │      0 │  400 │
│  2 │ John   │       40 │      0 │    0 │
│  3 │ Bob    │       15 │      0 │ -100 │
└────┴────────┴──────────┴────────┴──────┘
```

`output_format_json_quote_denormals = 0`이면, 쿼리 결과 출력에 `null` 값이 반환됩니다:

```sql theme={null}
SELECT area/period FROM account_orders FORMAT JSON;
```

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.003648093,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

`output_format_json_quote_denormals = 1`이면, 쿼리는 다음을 반환합니다:

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": "inf"
                },
                {
                        "divide(area, period)": "-nan"
                },
                {
                        "divide(area, period)": "-inf"
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.000070241,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

<div id="output_format_json_skip_null_value_in_named_tuples">
  ## output\_format\_json\_skip\_null\_value\_in\_named\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

named tuple 컬럼을 JSON 객체로 직렬화할 때 NULL 값을 가진 키-값 쌍을 건너뜁니다. 이 설정은 output\_format\_json\_named\_tuples\_as\_objects가 true일 때만 유효합니다.

<div id="output_format_json_validate_utf8">
  ## output\_format\_json\_validate\_utf8
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

JSON 출력 형식에서 UTF-8 시퀀스의 유효성을 검사할지 제어합니다. `JSON/JSONCompact/JSONColumnsWithMetadata` 포맷에는 적용되지 않으며, 이러한 포맷은 항상 UTF-8을 검증합니다.

기본적으로 비활성화되어 있습니다.

<div id="output_format_markdown_escape_special_characters">
  ## output\_format\_markdown\_escape\_special\_characters
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

활성화되면 Markdown의 특수 문자를 이스케이프합니다.

[Common Mark](https://spec.commonmark.org/0.30/#example-12)에서는 이스케이프할 수 있는 다음 특수 문자를 정의합니다:

```
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
```

가능한 값:

* 0 — 비활성화.
* 1 — 활성화.

<div id="output_format_msgpack_uuid_representation">
  ## output\_format\_msgpack\_uuid\_representation
</div>

<SettingsInfoBlock type="MsgPackUUIDRepresentation" default_value="ext" />

MsgPack 포맷에서 UUID를 출력하는 방법입니다.

<div id="output_format_native_encode_types_in_binary_format">
  ## output\_format\_native\_encode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Native 출력 형식에서 타입 이름을 바이너리 형식으로 기록할 수 있는 새로운 설정이 추가되었습니다"}]}]} />

Native 출력 형식에서 타입 이름 대신 데이터 타입을 바이너리 형식으로 기록합니다

<div id="output_format_native_use_flattened_dynamic_and_json_serialization">
  ## output\_format\_native\_use\_flattened\_dynamic\_and\_json\_serialization
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Native 형식에 평탄화된 Dynamic/JSON 직렬화 추가"}]}]} />

[JSON](/docs/ko/reference/data-types/newjson) 및 [Dynamic](/docs/ko/reference/data-types/dynamic) 컬럼의 데이터를 평탄화된 포맷으로 씁니다(모든 타입/경로가 별도의 서브컬럼으로 처리됨).

<div id="output_format_native_write_json_as_string">
  ## output\_format\_native\_write\_json\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Native 형식에서 JSON 컬럼을 단일 String 컬럼으로 쓸 수 있게 하는 새로운 설정 추가"}]}]} />

기본 네이티브 JSON 직렬화 대신 [JSON](/docs/ko/reference/data-types/newjson) 컬럼 데이터를 JSON 문자열이 들어 있는 [String](/docs/ko/reference/data-types/string) 컬럼으로 씁니다.

<div id="output_format_orc_compression_block_size">
  ## output\_format\_orc\_compression\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="262144" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "262144"},{"label": "새로운 설정"}]}]} />

ORC 출력 형식의 압축 블록 크기(바이트 단위)입니다.

<div id="output_format_orc_compression_method">
  ## output\_format\_orc\_compression\_method
</div>

<SettingsInfoBlock type="ORCCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "Parquet\/ORC\/Arrow는 lz4 및 zstd를 포함한 다양한 압축 방식을 지원합니다. ClickHouse는 이러한 모든 압축 방식을 지원합니다. 'duckdb'와 같은 일부 도구는 더 빠른 `lz4` 압축 방식을 지원하지 않으므로 기본값을 zstd로 설정했습니다."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "기본적으로 ORC 출력 형식에서 lz4 압축을 사용합니다"}]}]} />

ORC 출력 형식에 사용할 압축 방식입니다. 지원되는 코덱: lz4, snappy, zlib, zstd, none (비압축)

<div id="output_format_orc_dictionary_key_size_threshold">
  ## output\_format\_orc\_dictionary\_key\_size\_threshold
</div>

<SettingsInfoBlock type="Double" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "ORC 출력 형식의 문자열 컬럼에서 고유 값 수가 전체 non-NULL 행 수 대비 이 비율을 초과하면 딕셔너리 인코딩을 비활성화합니다. 그렇지 않으면 딕셔너리 인코딩이 활성화됩니다"}]}]} />

ORC 출력 형식의 문자열 컬럼에서 고유 값 수가 전체 non-NULL 행 수 대비 이 비율을 초과하면 딕셔너리 인코딩을 비활성화합니다. 그렇지 않으면 딕셔너리 인코딩이 활성화됩니다

<div id="output_format_orc_row_index_stride">
  ## output\_format\_orc\_row\_index\_stride
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

ORC 출력 형식의 대상 행 인덱스 stride

<div id="output_format_orc_string_as_string">
  ## output\_format\_orc\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "ClickHouse는 일반적으로 UTF-8로 처리되는 String 데이터 타입에서 임의의 바이너리 데이터를 허용합니다. 반면 Parquet/ORC/Arrow의 String은 UTF-8만 지원합니다. 따라서 ClickHouse String 데이터 타입에 대해 Arrow의 데이터 타입으로 String과 Binary 중 어떤 것을 사용할지 선택할 수 있습니다. Binary가 더 정확하고 호환성 측면에서도 적절하지만, 대부분의 경우 기본값으로 String을 사용하면 사용자 기대에 더 잘 부합합니다."}]}]} />

String 컬럼에는 Binary 대신 ORC String 타입을 사용합니다

<div id="output_format_orc_writer_time_zone_name">
  ## output\_format\_orc\_writer\_time\_zone\_name
</div>

<SettingsInfoBlock type="String" default_value="GMT" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "GMT"},{"label": "ORC writer의 시간대 이름입니다. 기본 ORC writer 시간대는 GMT입니다."}]}]} />

ORC writer의 시간대 이름입니다. 기본 ORC writer 시간대는 GMT입니다.

<div id="output_format_parallel_formatting">
  ## output\_format\_parallel\_formatting
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

데이터 포맷의 병렬 포맷팅을 활성화하거나 비활성화합니다. [TSV](/docs/ko/reference/formats/TabSeparated/TabSeparated), [TSKV](/docs/ko/reference/formats/TabSeparated/TSKV), [CSV](/docs/ko/reference/formats/CSV/CSV), [JSONEachRow](/docs/ko/reference/formats/JSON/JSONEachRow) 포맷에서만 지원됩니다.

가능한 값:

* 1 — 활성화됨.
* 0 — 비활성화됨.

<div id="output_format_parquet_batch_size">
  ## output\_format\_parquet\_batch\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1024" />

이 행 수마다 페이지 크기를 확인합니다. 평균값 크기가 몇 KB를 초과하는 컬럼이 있으면 값을 줄이는 것을 고려하십시오.

<div id="output_format_parquet_bloom_filter_bits_per_value">
  ## output\_format\_parquet\_bloom\_filter\_bits\_per\_value
</div>

<SettingsInfoBlock type="Double" default_value="10.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "10.5"},{"label": "새 설정입니다."}]}]} />

Parquet 블룸 필터에서 각 고유값에 사용할 비트 수의 대략적인 값입니다. 예상 오탐지율은 다음과 같습니다.

* 6   비트 - 10%
* 10.5 비트 -  1%
* 16.9 비트 -  0.1%
* 26.4 비트 -  0.01%
* 41   비트 -  0.001%

<div id="output_format_parquet_bloom_filter_flush_threshold_bytes">
  ## output\_format\_parquet\_bloom\_filter\_flush\_threshold\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="134217728" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "134217728"},{"label": "새 설정입니다."}]}]} />

Parquet 파일에서 블룸 필터를 배치할 위치를 지정합니다. 블룸 필터는 대략 이 크기 단위로 묶어 기록됩니다. 구체적으로는 다음과 같습니다.

* 0이면 각 row group의 블룸 필터가 해당 row group 바로 뒤에 즉시 기록됩니다.
  * 이 값이 모든 블룸 필터의 총크기보다 크면, 모든 row group의 블룸 필터를 메모리에 누적한 다음 파일 끝부분 근처에 함께 기록합니다.
  * 그렇지 않으면 블룸 필터를 메모리에 누적하다가, 총크기가 이 값을 초과할 때마다 기록합니다.

<div id="output_format_parquet_compression_method">
  ## output\_format\_parquet\_compression\_method
</div>

<SettingsInfoBlock type="ParquetCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "Parquet\/ORC\/Arrow는 lz4와 zstd를 포함한 다양한 압축 방식을 지원합니다. ClickHouse는 이러한 모든 압축 방식을 지원합니다. 'duckdb'와 같은 일부 도구는 더 빠른 `lz4` 압축 방식을 지원하지 않기 때문에 기본값으로 zstd를 설정했습니다."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4"},{"label": "기본적으로 Parquet 출력 형식에서 lz4 압축을 사용합니다"}]}]} />

Parquet 출력 형식의 압축 방식입니다. 지원되는 코덱: snappy, lz4, brotli, zstd, gzip, none (비압축)

<div id="output_format_parquet_data_page_size">
  ## output\_format\_parquet\_data\_page\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

압축 전 페이지의 목표 크기(바이트)입니다.

<div id="output_format_parquet_date_as_uint16">
  ## output\_format\_parquet\_date\_as\_uint16
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "24.12에 도입된 경미한 호환성 비호환 변경에 대해 compatibility 설정을 추가했습니다."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "Date를 일반 UInt16이 아닌 Date32로 씁니다(Parquet에서 Date와 가장 가까운 두 가지 타입입니다)."}]}]} />

Date 값을 32비트 Parquet DATE 타입으로 변환해 기록하는 대신 일반 16비트 숫자로 기록합니다(다시 읽을 때는 UInt16으로 읽음). 기존 방식은 다시 읽을 때 Date32로 읽습니다.

<div id="output_format_parquet_datetime_as_uint32">
  ## output\_format\_parquet\_datetime\_as\_uint32
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "UInt32 대신 DateTime을 DateTime64(3)로 씁니다(Parquet에서 DateTime에 가장 가까운 두 가지 타입입니다)."}]}]} />

DateTime 값을 밀리초로 변환해 쓰고(다시 읽을 때는 DateTime64(3)로 읽음), 대신 원시 Unix timestamp로 씁니다(다시 읽을 때는 UInt32로 읽음).

<div id="output_format_parquet_enum_as_byte_array">
  ## output\_format\_parquet\_enum\_as\_byte\_array
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "기본적으로 Parquet에서 Enum을 byte array로 기록하도록 활성화"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "Parquet 물리 타입: BYTE_ARRAY 및 논리 타입: ENUM을 사용해 enum 기록"}]}]} />

Parquet 물리 타입: BYTE\_ARRAY 및 논리 타입: ENUM을 사용해 enum 기록

<div id="output_format_parquet_fixed_string_as_fixed_byte_array">
  ## output\_format\_parquet\_fixed\_string\_as\_fixed\_byte\_array
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "기본적으로 FixedString에 Parquet FIXED_LENGTH_BYTE_ARRAY 타입 사용"}]}]} />

FixedString 컬럼에 대해 Binary 대신 Parquet FIXED\_LEN\_BYTE\_ARRAY 타입을 사용합니다.

<div id="output_format_parquet_geometadata">
  ## output\_format\_parquet\_geometadata
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "Parquet 메타데이터에 Geo 컬럼 정보를 기록하고 컬럼을 WKB 포맷으로 인코딩할 수 있도록 하는 새로운 설정입니다."}]}]} />

Parquet 메타데이터에 Geo 컬럼 정보를 기록하고 컬럼을 WKB 포맷으로 인코딩할 수 있습니다.

<div id="output_format_parquet_max_dictionary_size">
  ## output\_format\_parquet\_max\_dictionary\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1048576"},{"label": "새로운 설정"}]}]} />

딕셔너리 크기가 이 바이트 수를 초과하면 딕셔너리를 사용하지 않는 인코딩으로 전환됩니다. 딕셔너리 encoding을 비활성화하려면 0으로 설정하십시오.

<div id="output_format_parquet_parallel_encoding">
  ## output\_format\_parquet\_parallel\_encoding
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Parquet 인코딩을 여러 스레드로 수행합니다.

<div id="output_format_parquet_row_group_size">
  ## output\_format\_parquet\_row\_group\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

대상 row group의 크기(행 수 기준)입니다.

<div id="output_format_parquet_row_group_size_bytes">
  ## output\_format\_parquet\_row\_group\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="536870912" />

압축 전 기준 row group의 목표 크기(바이트)입니다.

<div id="output_format_parquet_string_as_string">
  ## output\_format\_parquet\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "ClickHouse는 일반적으로 UTF-8로 처리되는 String 데이터 타입에 임의의 바이너리 데이터를 저장할 수 있습니다. Parquet/ORC/Arrow의 String은 UTF-8만 지원합니다. 따라서 ClickHouse String 데이터 타입에 대해 Arrow의 데이터 타입으로 String 또는 Binary 중 어떤 것을 사용할지 선택할 수 있습니다. Binary가 더 정확하고 호환성도 높지만, 대부분의 경우 기본값으로 String을 사용하는 것이 사용자 기대에 더 잘 부합합니다."}]}]} />

String 컬럼에는 Binary 대신 Parquet String 타입을 사용합니다.

<div id="output_format_parquet_write_bloom_filter">
  ## output\_format\_parquet\_write\_bloom\_filter
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Parquet 블룸 필터 쓰기 지원이 추가되었습니다."}]}]} />

Parquet 파일에 블룸 필터를 기록합니다.

<div id="output_format_parquet_write_checksums">
  ## output\_format\_parquet\_write\_checksums
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "새 설정입니다."}]}]} />

Parquet 페이지 헤더에 crc32 체크섬을 포함합니다.

<div id="output_format_parquet_write_page_index">
  ## output\_format\_parquet\_write\_page\_index
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1"},{"label": "Parquet 파일에 페이지 인덱스를 기록하는 기능을 추가했습니다."}]}]} />

컬럼 인덱스와 오프셋 인덱스(즉, 각 데이터 페이지의 통계로, 읽기 시 filter pushdown에 사용할 수 있음)를 Parquet 파일에 기록합니다.

<div id="output_format_pretty_color">
  ## output\_format\_pretty\_color
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "auto"},{"label": "출력이 tty가 아닌 경우 ANSI 이스케이프를 비활성화할 수 있도록 auto 값도 허용하도록 설정이 변경되었습니다"}]}]} />

Pretty 형식에서 ANSI 이스케이프 시퀀스를 사용합니다. 0 - 비활성화, 1 - 활성화, 'auto' - 출력이 터미널인 경우 활성화됩니다.

<div id="output_format_pretty_display_footer_column_names">
  ## output\_format\_pretty\_display\_footer\_column\_names
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "행 수가 많을 때 푸터에 컬럼명을 표시하는 설정이 추가되었습니다. 임계값은 output_format_pretty_display_footer_column_names_min_rows로 제어됩니다."}]}]} />

테이블의 행 수가 많을 때 푸터에 컬럼명을 표시합니다.

가능한 값:

* 0 — 푸터에 컬럼명이 표시되지 않습니다.
* 1 — 행 수가 [output\_format\_pretty\_display\_footer\_column\_names\_min\_rows](/docs/ko/reference/settings/formats/output-format#output_format_pretty_display_footer_column_names_min_rows)에서 설정한 임계값(기본값: 50) 이상이면 푸터에 컬럼명이 표시됩니다.

**예시**

쿼리:

```sql theme={null}
SELECT *, toTypeName(*) FROM (SELECT * FROM system.numbers LIMIT 1000);
```

결과:

```response theme={null}
      ┌─number─┬─toTypeName(number)─┐
   1. │      0 │ UInt64             │
   2. │      1 │ UInt64             │
   3. │      2 │ UInt64             │
   ...
 999. │    998 │ UInt64             │
1000. │    999 │ UInt64             │
      └─number─┴─toTypeName(number)─┘
```

<div id="output_format_pretty_display_footer_column_names_min_rows">
  ## output\_format\_pretty\_display\_footer\_column\_names\_min\_rows
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "50"},{"label": "output_format_pretty_display_footer_column_names_min_rows의 임계값을 제어하는 설정이 추가되었습니다. 기본값은 50입니다."}]}]} />

[output\_format\_pretty\_display\_footer\_column\_names](/docs/ko/reference/settings/formats/output-format#output_format_pretty_display_footer_column_names) 설정이 활성화된 경우, 컬럼명이 포함된 푸터를 표시할 최소 행 수를 지정합니다.

<div id="output_format_pretty_fallback_to_vertical">
  ## output\_format\_pretty\_fallback\_to\_vertical
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "새로운 설정"}]}]} />

활성화된 경우, 테이블의 너비가 넓고 행 수가 적으면 Pretty 형식은 Vertical 형식처럼 출력됩니다.
이 동작을 세부적으로 조정하려면 `output_format_pretty_fallback_to_vertical_max_rows_per_chunk` 및 `output_format_pretty_fallback_to_vertical_min_table_width`를 참조하십시오.

<div id="output_format_pretty_fallback_to_vertical_max_rows_per_chunk">
  ## output\_format\_pretty\_fallback\_to\_vertical\_max\_rows\_per\_chunk
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "100"},{"label": "새로운 설정"}]}]} />

Vertical 형식으로의 폴백(`output_format_pretty_fallback_to_vertical` 참조)은 청크의 행 수가 지정된 값을 넘지 않는 경우에만 활성화됩니다.

<div id="output_format_pretty_fallback_to_vertical_min_columns">
  ## output\_format\_pretty\_fallback\_to\_vertical\_min\_columns
</div>

<SettingsInfoBlock type="UInt64" default_value="5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "5"},{"label": "새로운 설정"}]}]} />

Vertical 형식으로의 폴백(`output_format_pretty_fallback_to_vertical` 참조)은 컬럼 수가 지정된 값보다 많을 때만 활성화됩니다.

<div id="output_format_pretty_fallback_to_vertical_min_table_width">
  ## output\_format\_pretty\_fallback\_to\_vertical\_min\_table\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="250" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "250"},{"label": "새로운 설정"}]}]} />

Vertical 형식으로의 폴백(`output_format_pretty_fallback_to_vertical` 참조)은 테이블 내 컬럼 길이의 합이 지정된 값 이상이거나, 하나 이상의 값에 줄바꿈 문자가 포함된 경우에만 활성화됩니다.

<div id="output_format_pretty_glue_chunks">
  ## output\_format\_pretty\_glue\_chunks
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "Pretty 형식을 더 보기 좋게 표시하기 위한 새로운 설정입니다."}]}]} />

Pretty 형식으로 렌더링된 데이터가 여러 청크에 걸쳐 도착한 경우, 지연이 있더라도 다음 청크의 컬럼 너비가 이전 청크와 같으면 ANSI 이스케이프 시퀀스를 사용해 이전 줄로 돌아가 이전 청크의 푸터를 덮어쓰고 새 청크의 데이터로 이어서 표시합니다. 이렇게 하면 결과가 시각적으로 더 자연스럽게 보입니다.

0 - 비활성화, 1 - 활성화, 'auto' - 터미널일 때 활성화됩니다.

<div id="output_format_pretty_grid_charset">
  ## output\_format\_pretty\_grid\_charset
</div>

<SettingsInfoBlock type="String" default_value="UTF-8" />

그리드 테두리를 출력할 때 사용하는 문자 집합입니다. 사용할 수 있는 문자 집합은 ASCII와 UTF-8(기본값)입니다.

대화형 모드에서는 이 설정을 명시적으로 지정하지 않은 경우, 터미널이 UTF-8을 지원하지 않으면(`LC_ALL`, `LC_CTYPE`, `LANG` 환경 변수를 기준으로 판단) `clickhouse-client`가 자동으로 `ASCII`로 전환합니다.

<div id="output_format_pretty_highlight_digit_groups">
  ## output\_format\_pretty\_highlight\_digit\_groups
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "활성화되어 있고 출력이 터미널인 경우, 천 단위, 백만 단위 등 각 자릿수 그룹의 숫자를 밑줄로 강조 표시합니다."}]}]} />

활성화되어 있고 출력이 터미널인 경우, 천 단위, 백만 단위 등 각 자릿수 그룹의 숫자를 밑줄로 강조 표시합니다.

<div id="output_format_pretty_highlight_trailing_spaces">
  ## output\_format\_pretty\_highlight\_trailing\_spaces
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "새 설정입니다."}]}]} />

활성화되어 있고 출력 대상이 터미널이면, 후행 공백을 회색으로 표시하고 밑줄을 추가합니다.

<div id="output_format_pretty_max_column_name_width_cut_to">
  ## output\_format\_pretty\_max\_column\_name\_width\_cut\_to
</div>

<SettingsInfoBlock type="UInt64" default_value="24" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "24"},{"label": "새로운 설정"}]}]} />

컬럼명이 너무 길면 이 길이로 잘립니다.
컬럼명 길이가 `output_format_pretty_max_column_name_width_cut_to`와 `output_format_pretty_max_column_name_width_min_chars_to_cut`를 더한 값보다 길면 잘립니다.

<div id="output_format_pretty_max_column_name_width_min_chars_to_cut">
  ## output\_format\_pretty\_max\_column\_name\_width\_min\_chars\_to\_cut
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "4"},{"label": "새로운 설정"}]}]} />

컬럼명이 너무 길 때 잘라낼 최소 문자 수입니다.
컬럼명 길이가 `output_format_pretty_max_column_name_width_cut_to`와 `output_format_pretty_max_column_name_width_min_chars_to_cut`의 합보다 길면 컬럼명을 잘라냅니다.

<div id="output_format_pretty_max_column_pad_width">
  ## output\_format\_pretty\_max\_column\_pad\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="250" />

Pretty 형식에서 컬럼의 모든 값을 패딩할 때 적용되는 최대 너비입니다.

<div id="output_format_pretty_max_rows">
  ## output\_format\_pretty\_max\_rows
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1000"},{"label": "사용성 측면에서 이 편이 더 낫습니다. 스크롤해야 할 양이 더 적기 때문입니다."}]}]} />

Pretty 형식의 행 수 제한입니다.

<div id="output_format_pretty_max_value_width">
  ## output\_format\_pretty\_max\_value\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

Pretty 형식에 표시할 값의 최대 너비입니다. 이보다 크면 잘립니다.
값이 0이면 잘리지 않습니다.

<div id="output_format_pretty_max_value_width_apply_for_single_value">
  ## output\_format\_pretty\_max\_value\_width\_apply\_for\_single\_value
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Pretty 형식에서는 블록에 단일 값만 있는 경우 해당 값이 잘리지 않습니다."}]}]} />

값은 블록 내 단일 값이 아닐 때만 잘라냅니다(`output_format_pretty_max_value_width` 설정 참고). 단일 값인 경우에는 전체를 그대로 출력하며, 이는 `SHOW CREATE TABLE` 쿼리에 유용합니다.

<div id="output_format_pretty_multiline_fields">
  ## output\_format\_pretty\_multiline\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "새로운 설정"}]}]} />

활성화하면 Pretty 형식에서 여러 줄 필드를 테이블 셀 내부에 렌더링하므로 테이블의 테두리 형태가 유지됩니다.
비활성화하면 있는 그대로 렌더링되므로 테이블 모양이 깨질 수 있습니다(비활성화된 상태로 두면 여러 줄 값을 복사하여 붙여넣기가 더 쉬워진다는 장점도 있습니다).

<div id="output_format_pretty_named_tuples_as_json">
  ## output\_format\_pretty\_named\_tuples\_as\_json
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Pretty 형식에서 이름이 지정된 Tuple을 JSON 객체로 출력할지 제어하는 새로운 설정"}]}]} />

Pretty 형식에서 이름이 지정된 Tuple을 가독성 좋게 포맷된 JSON 객체로 출력할지 제어합니다.

<div id="output_format_pretty_row_numbers">
  ## output\_format\_pretty\_row\_numbers
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "사용성이 더 향상됩니다."}]}]} />

Pretty 출력 형식에서 각 행 앞에 행 번호를 표시합니다

<div id="output_format_pretty_single_large_number_tip_threshold">
  ## output\_format\_pretty\_single\_large\_number\_tip\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1000000"},{"label": "블록이 이 값(0 제외)을 초과하는 단일 숫자 하나로 구성된 경우 테이블 오른쪽에 읽기 쉬운 숫자 팁을 출력합니다"}]}]} />

블록이 이 값(0 제외)을 초과하는 단일 숫자 하나로 구성된 경우 테이블 오른쪽에 읽기 쉬운 숫자 팁을 출력합니다

<div id="output_format_pretty_squash_consecutive_ms">
  ## output\_format\_pretty\_squash\_consecutive\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "50"},{"label": "새로운 설정 추가"}]}]} />

다음 블록이 올 때까지 지정된 밀리초 동안 기다렸다가, 쓰기 전에 이전 블록과 병합합니다.
이렇게 하면 너무 작은 블록이 자주 출력되는 것을 방지하면서도 데이터를 스트리밍 방식으로 표시할 수 있습니다.

<div id="output_format_pretty_squash_max_wait_ms">
  ## output\_format\_pretty\_squash\_max\_wait\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "새로운 설정"}]}]} />

이전 출력 이후 지정된 밀리초보다 많은 시간이 지나면, 대기 중인 블록을 Pretty 형식으로 출력합니다.

<div id="output_format_pretty_use_nbsp_for_padding">
  ## output\_format\_pretty\_use\_nbsp\_for\_padding
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "새 설정입니다. 활성화하면 `Pretty` 출력의 패딩이 `U+00A0`로 렌더링되어 일반 공백이 연속된 부분을 압축하는 도구를 거쳐 복사하여 붙여넣어도 유지됩니다."}]}]} />

활성화하면 `Pretty` 출력 형식의 패딩이 ASCII 공백 대신 `U+00A0`로 렌더링됩니다.
출력은 고정폭 글꼴에서 시각적으로는 동일하지만, 일반 공백이 연속된 부분을 압축하거나 잘라내는 도구를 거쳐도 패딩은 유지됩니다.
`output_format_pretty_grid_charset`이 `UTF-8`일 때만 적용됩니다.

<div id="output_format_protobuf_nullables_with_google_wrappers">
  ## output\_format\_protobuf\_nullables\_with\_google\_wrappers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Google wrappers를 사용해 널 허용 컬럼을 직렬화할 때, 기본값을 빈 wrapper로 직렬화합니다. 이 설정을 끄면 기본값과 NULL 값은 직렬화되지 않습니다.

<div id="output_format_schema">
  ## output\_format\_schema
</div>

자동으로 생성된 스키마를 [Cap'n Proto](/docs/ko/reference/formats/CapnProto) 또는 [Protobuf](/docs/ko/reference/formats/Protobuf/Protobuf) 포맷으로 저장할 파일의 경로입니다.

<div id="output_format_sql_insert_include_column_names">
  ## output\_format\_sql\_insert\_include\_column\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

INSERT 쿼리에 컬럼명 포함하기

<div id="output_format_sql_insert_max_batch_size">
  ## output\_format\_sql\_insert\_max\_batch\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="65409" />

하나의 INSERT 문에 포함될 수 있는 최대 행 수입니다.

<div id="output_format_sql_insert_quote_names">
  ## output\_format\_sql\_insert\_quote\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

컬럼명을 '\`' 문자로 감싸 표시합니다

<div id="output_format_sql_insert_table_name">
  ## output\_format\_sql\_insert\_table\_name
</div>

<SettingsInfoBlock type="String" default_value="table" />

출력 INSERT 쿼리의 테이블 이름

<div id="output_format_sql_insert_use_replace">
  ## output\_format\_sql\_insert\_use\_replace
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

INSERT 대신 REPLACE 문을 사용합니다

<div id="output_format_trim_fixed_string">
  ## output\_format\_trim\_fixed\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "텍스트 출력 형식에서 FixedString 값의 후행 널 바이트를 제거하는 새로운 설정"}]}]} />

텍스트 출력 형식에서 FixedString 값의 후행 널 바이트를 제거합니다. 예를 들어 `toFixedString('John', 8)`은 `John\0\0\0\0` 대신 `John`으로 출력됩니다.

<div id="output_format_tsv_crlf_end_of_line">
  ## output\_format\_tsv\_crlf\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

true로 설정하면 TSV 포맷에서 줄 끝이 \n 대신 \r\n이 됩니다.

<div id="output_format_values_escape_quote_with_quote">
  ## output\_format\_values\_escape\_quote\_with\_quote
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "값이 true이면 '를 ''로 이스케이프하고, 그렇지 않으면 \\'로 인용합니다"}]}]} />

값이 true이면 '를 ''로 이스케이프하고, 그렇지 않으면 \\'로 인용합니다

<div id="output_format_write_statistics">
  ## output\_format\_write\_statistics
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

해당되는 출력 형식에 읽은 행 수, 바이트 수, 경과 시간에 대한 통계를 포함합니다.

기본적으로 활성화되어 있습니다.
