> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cloud용 v26.2 변경 로그

> v26.2 변경 로그

<div id="backward-incompatible-changes">
  ## 하위 호환되지 않는 변경 사항
</div>

<div id="query-and-syntax-changes">
  ### 쿼리 및 구문 변경 사항
</div>

* 잘못된 별칭 치환으로 인해 쿼리 포맷이 일관되지 않던 문제가 수정되었습니다. 참고: 분석기가 비활성화된 경우, 별칭 참조와 함께 `IN`을 사용하는 일부 `CREATE VIEW` 쿼리는 더 이상 처리되지 않을 수 있습니다. 이를 방지하려면 분석기가 활성화되어 있는지 확인하십시오(24.3부터는 기본적으로 활성화되어 있습니다). [#82838](https://github.com/ClickHouse/ClickHouse/pull/82838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `JOIN USING ()`의 빈 컬럼 목록은 이제 구문 오류로 처리됩니다. 이전에는 쿼리 실행 시 `INVALID_JOIN_ON_EXPRESSION`으로 보고되었으며, 일부 경우에는(`Join` 스토리지와 조인하는 경우 등) `LOGICAL_ERROR`를 유발할 수 있었습니다. [#92371](https://github.com/ClickHouse/ClickHouse/pull/92371) ([Vladimir Cherkasov](https://github.com/vdimir)).
* 이제 `ORDER BY` 및 기타 테이블 키 표현식에서는 서브쿼리를 사용할 수 없습니다. [#96847](https://github.com/ClickHouse/ClickHouse/pull/96847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="data-type-changes">
  ### 데이터 타입 변경 사항
</div>

* `Nullable(Tuple)` 지원이 추가되었습니다. 이를 활성화하려면 `allow_experimental_nullable_tuple_type = 1`로 설정하십시오. [#89643](https://github.com/ClickHouse/ClickHouse/pull/89643) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* JSON 타입의 고급 shared data 기능이 이제 기본적으로 활성화됩니다. 이전 버전은 새 JSON 포맷으로 작성된 데이터 파트를 읽을 수 없으므로, 25.8보다 낮은 버전으로는 다운그레이드할 수 없습니다. 안전하게 업그레이드하려면 `compatibility` 설정을 이전 버전으로 지정하거나, MergeTree 설정 `dynamic_serialization_version='v2'` 및 `object_serialization_version='v2'`를 설정하십시오. [#92511](https://github.com/ClickHouse/ClickHouse/pull/92511) ([Pavel Kruglov](https://github.com/Avogar)).
* JSON 타입의 `SKIP REGEXP`는 이제 기본적으로 부분 일치를 사용합니다. [#92847](https://github.com/ClickHouse/ClickHouse/pull/92847) ([Pavel Kruglov](https://github.com/Avogar)).
* `Variant` 타입 불일치 시 발생하던 논리 오류를 수정했습니다. [#95811](https://github.com/ClickHouse/ClickHouse/pull/95811) ([Bharat Nallan](https://github.com/bharatnc)).
* PostgreSQL의 `DATE` 컬럼은 이제 ClickHouse에서 `Date32`로 자동 추론됩니다(이전에는 `Date`로 추론되었으며, 이 경우 제한된 범위를 벗어난 값에서 오버플로우가 발생할 수 있었습니다). 이제 `Date32` 값을 다시 PostgreSQL에 삽입하는 것도 지원됩니다. [#95999](https://github.com/ClickHouse/ClickHouse/pull/95999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="storage-and-index-changes">
  ### 스토리지 및 인덱스 변경 사항
</div>

* 역텍스트 인덱스의 스토리지 레이아웃이 개선되어 객체 스토리지에서 더 효율적으로 읽을 수 있게 되었으며, 역텍스트 인덱스가 있는 테이블의 머지 성능도 향상되었습니다. 25.12 이전 버전에서 Experimental 텍스트 인덱스를 사용한 경우, 업그레이드 전에 해당 인덱스를 삭제한 후 새 버전에서 다시 빌드해야 합니다. [#91518](https://github.com/ClickHouse/ClickHouse/pull/91518) ([Anton Popov](https://github.com/CurtizJ)).
* 통계의 저장 포맷이 변경되었습니다. 이제 모든 통계는 단일 파일에 저장됩니다. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)).
* 이제 인덱스 파일 이름은 파트 손상을 방지하기 위해 이스케이프 처리됩니다. 이전 버전에서 생성된 인덱스 중 이름에 비ASCII 문자가 포함된 경우 ClickHouse에서 로드하지 못합니다. 이 문제를 처리하려면 MergeTree setting `escape_index_filenames`를 사용하십시오. [#94079](https://github.com/ClickHouse/ClickHouse/pull/94079) ([Raúl Marín](https://github.com/Algunenano)).

<div id="removed-features">
  ### 제거된 기능
</div>

* `DEFLATE_QPL` 및 `ZSTD_QAT` 코덱이 제거되었습니다. 업그레이드하기 전에 이 코덱으로 압축된 기존 데이터를 다른 코덱으로 변환하십시오. 참고로, 이전에 이 코덱을 사용하려면 `enable_deflate_qpl_codec` 또는 `enable_zstd_qat_codec`를 활성화해야 했습니다. [#92150](https://github.com/ClickHouse/ClickHouse/pull/92150) ([Robert Schulze](https://github.com/rschu1ze)).
* 단순 `ALIAS` 컬럼에 `INSERT`하는 기능은 더 이상 지원되지 않습니다([#84154](https://github.com/ClickHouse/ClickHouse/issues/84154) 되돌림). 이 기능은 사용자 지정 포맷에서는 작동하지 않았고, 이를 제어하는 설정도 없었습니다. [#92849](https://github.com/ClickHouse/ClickHouse/pull/92849) ([Azat Khuzhin](https://github.com/azat)).
* `Lazy` 데이터베이스 엔진이 제거되어 더 이상 사용할 수 없습니다. [#93627](https://github.com/ClickHouse/ClickHouse/pull/93627) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 사용할 수 없게 만드는 버그로 인해 `metric_log`의 `transposed_with_wide_view` 모드가 제거되었습니다. 이제 `system.metric_log`를 이 모드로 정의할 수 없습니다. [#93867](https://github.com/ClickHouse/ClickHouse/pull/93867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="settings-and-configuration-changes">
  ### 설정 및 구성 변경 사항
</div>

* 데이터 레이크 카탈로그가 객체 스토리지에 접근할 수 없을 경우 오류를 발생시키는 새로운 설정이 추가되었습니다. [#93606](https://github.com/ClickHouse/ClickHouse/pull/93606) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* 워크로드의 CPU 스케줄링은 이제 기본적으로 선점형입니다. `cpu_slot_preemption` 서버 설정을 참조하십시오. [#94060](https://github.com/ClickHouse/ClickHouse/pull/94060) ([Sergei Trifonov](https://github.com/serxa)).
* `exact_rows_before_limit`, `rows_before_aggregation`, `cross_to_inner_join_rewrite`, `regexp_dict_allow_hyperscan`, `regexp_dict_flag_case_insensitive`, `regexp_dict_flag_dotall`, `dictionary_use_async_executor` 설정이 포맷 설정에서 일반 설정으로 재분류되었습니다. 이는 대부분 내부 변경이므로, 사용자에게 보이는 영향은 없습니다. 다만 이러한 설정을 Iceberg, DeltaLake, Kafka, S3, S3Queue, Azure, Hive, RabbitMQ, Set, FileLog 또는 NATS 테이블 엔진 정의에 지정한 경우에는 이제 조용히 무시되지 않고 오류가 발생합니다. [#94106](https://github.com/ClickHouse/ClickHouse/pull/94106) ([Robert Schulze](https://github.com/rschu1ze)).
* `do_not_merge_across_partitions_select_final`의 의미가 단순화되었습니다. 이전에는 이 기능이 명시적으로 설정되지 않았더라도 자동으로 활성화될 수 있어 혼란과 운영 환경 문제를 일으켰습니다. 이제 `1`로 설정하면 기능이 무조건 활성화되며, `0`으로 설정하면 새로운 설정 `enable_automatic_decision_for_merging_across_partitions_for_final`(기본값 `1`)을 따릅니다. [#96110](https://github.com/ClickHouse/ClickHouse/pull/96110) ([Nikita Taranov](https://github.com/nickitat)).
* S3 스키마 검증이 추가되었습니다. [#96194](https://github.com/ClickHouse/ClickHouse/pull/96194) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* `apply_row_policy_after_final` 설정은 이제 기본적으로 활성화되며, 이에 따라 `ROW POLICY`가 원래 동작처럼 `FINAL`을 따르게 됩니다. 이전에 `FINAL`보다 먼저 행 정책을 적용하기 위해 `optimize_move_to_prewhere_if_final=1`에 의존했다면, 이제 대신 `apply_row_policy_after_final=0`을 사용하십시오. [#97279](https://github.com/ClickHouse/ClickHouse/pull/97279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

<div id="security-and-access-control-changes">
  ### 보안 및 액세스 제어 변경 사항
</div>

* 이제 `joinGet`/`joinGetOrNull`은 기반 Join 테이블에 대해 `SELECT` 권한을 적용합니다. `joinGet('db.table', 'column', key)`를 실행하려면 키 컬럼과 가져오려는 속성 컬럼 모두에 대한 `SELECT` 권한이 필요합니다. 이러한 권한이 없으면 쿼리는 `ACCESS_DENIED`와 함께 실패합니다. 마이그레이션하려면 전체 테이블 액세스에는 `GRANT SELECT ON db.join_table TO user`를 사용하고, 컬럼 수준 액세스에는 `GRANT SELECT(key_col, attr_col) ON db.join_table TO user`를 사용하여 권한을 부여하십시오. [#94307](https://github.com/ClickHouse/ClickHouse/pull/94307) ([Vladimir Cherkasov](https://github.com/vdimir)).
* 이제 `CREATE TABLE ... AS ...` 쿼리에는 이전에 잘못 확인되던 `SHOW TABLES` 대신 `SHOW COLUMNS` 권한이 필요합니다. [#94556](https://github.com/ClickHouse/ClickHouse/pull/94556) ([pufit](https://github.com/pufit)).

<div id="insert-and-deduplication-changes">
  ### 삽입 및 중복 제거 변경 사항
</div>

* 이제 모든 삽입에 기본적으로 중복 제거가 적용됩니다. 이전에는 async inserts와 materialized views에서는 비활성화되어 있었고 sync inserts에서는 활성화되어 있었습니다. 기존 동작을 유지하려면 `deduplicate_insert='backward_compatible_choice'`를 명시적으로 설정하십시오(`deduplicate_blocks_in_dependent_materialized_views`도 동일하게 설정). [#95970](https://github.com/ClickHouse/ClickHouse/pull/95970) ([Sema Checherinda](https://github.com/CheSema)).

<div id="system-table-changes">
  ### 시스템 테이블 변경 사항
</div>

* S3Queue 및 AzureQueue의 인메모리 메타데이터가 이제 제한적으로 유지됩니다. 시스템 테이블 이름이 변경되었습니다. `system.s3queue`는 이제 `system.s3queue_metadata_cache`로, `system.azure_queue`는 이제 `system.azure_queue_metadata_cache`로 변경되었습니다. [#95809](https://github.com/ClickHouse/ClickHouse/pull/95809) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="other-breaking-changes">
  ### 기타 비호환 변경 사항
</div>

* 잘못된 입력값으로 호출하면 충돌하거나 멈출 수 있던 H3 인덱스 함수를 수정했습니다. [#93657](https://github.com/ClickHouse/ClickHouse/pull/93657) ([Michael Kolupaev](https://github.com/al13n321)).

<div id="new-features">
  ## 새 기능
</div>

<div id="authentication">
  ### 인증
</div>

* 시간 기반 일회용 비밀번호(TOTP)가 인증 메서드로 지원되도록 추가되었습니다. [#71273](https://github.com/ClickHouse/ClickHouse/pull/71273) ([Vladimir Cherkasov](https://github.com/vdimir)).

<div id="functions">
  ### 함수
</div>

* 지정된 구분자로 구분된 문자열에서 부분 문자열의 순서를 뒤집는 `reverseBySeparator` 함수를 추가했습니다. [#91780](https://github.com/ClickHouse/ClickHouse/pull/91780) ([Xuewei Wang](https://github.com/Sallery-X)).
* sRGB와 OKLAB 색 공간 사이를 변환하는 `colorOKLABToSRGB` 및 `colorSRGBToOKLAB` 함수를 추가했습니다. [#93361](https://github.com/ClickHouse/ClickHouse/pull/93361) ([Pranav Tiwari](https://github.com/pranavt84)).
* 두 점 사이의 [cosine distance](https://en.wikipedia.org/wiki/Cosine_similarity#Cosine_distance)를 근사하는 `cosineDistanceTransposed` 함수를 추가했습니다. [#93621](https://github.com/ClickHouse/ClickHouse/pull/93621) ([Raufs Dunamalijevs](https://github.com/rienath)).
* `xxh3_128` 해시 함수를 추가했습니다. [#96055](https://github.com/ClickHouse/ClickHouse/pull/96055) ([Raúl Marín](https://github.com/Algunenano)).
* MergeTree 인덱스 사용 분석을 위한 `mergeTreeAnalyzeIndex()` 함수를 추가했습니다. [#92954](https://github.com/ClickHouse/ClickHouse/pull/92954) ([Azat Khuzhin](https://github.com/azat)).
* 이제 함수가 새로운 `FunctionVariantAdaptor`를 통해 `Variant` 타입을 지원합니다. [#90900](https://github.com/ClickHouse/ClickHouse/pull/90900) ([Bharat Nallan](https://github.com/bharatnc)).
* 이제 일부 함수는 SQL에서 괄호 없이 호출할 수 있습니다. [#94678](https://github.com/ClickHouse/ClickHouse/pull/94678) ([Aly Kafoury](https://github.com/AlyHKafoury)).

<div id="system-tables">
  ### 시스템 테이블
</div>

* UDF의 로딩 상태와 구성을 모니터링하기 위한 `system.user_defined_functions` 테이블을 추가했습니다. [#90340](https://github.com/ClickHouse/ClickHouse/pull/90340) ([Xu Jia](https://github.com/XuJia0210)).
* `system.zookeeper_info` 테이블을 추가했습니다. [#90809](https://github.com/ClickHouse/ClickHouse/pull/90809) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* 오름차순 소수를 포함하는 `system.primes` 테이블과 `primes` 테이블 함수를 추가했습니다. [#92776](https://github.com/ClickHouse/ClickHouse/pull/92776) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* 각 데이터 파트의 파일 수를 보여주는 `files` 컬럼을 `system.parts`에 추가했습니다. [#94337](https://github.com/ClickHouse/ClickHouse/pull/94337) ([Match](https://github.com/gayanMatch)).
* 기존 failpoint와 활성화 여부를 확인할 수 있는 `system.fail_points` 테이블을 추가했습니다. [#96762](https://github.com/ClickHouse/ClickHouse/pull/96762) ([Pedro Ferreira](https://github.com/PedroTadim)).

<div id="table-engines-and-storage">
  ### 테이블 엔진 및 스토리지
</div>

* `Array` 컬럼에 텍스트 인덱스 지원이 추가되었습니다. [#89895](https://github.com/ClickHouse/ClickHouse/pull/89895) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Paimon REST 카탈로그 지원이 추가되었습니다. [#92011](https://github.com/ClickHouse/ClickHouse/pull/92011) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* `icebergLocalCluster` 테이블 함수가 추가되었습니다. [#93323](https://github.com/ClickHouse/ClickHouse/pull/93323) ([Anton Ivashkin](https://github.com/ianton-ru)).
* `lazy_load_tables` 데이터베이스 설정이 추가되었습니다. 활성화하면 데이터베이스 시작 시 테이블을 로드하지 않고, 대신 경량 `StorageTableProxy`를 생성하며 실제 테이블 엔진은 처음 접근할 때 구체화됩니다. [#96283](https://github.com/ClickHouse/ClickHouse/pull/96283) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* `DatabaseReplicated`에 보조 ZooKeeper를 지원합니다. [#91683](https://github.com/ClickHouse/ClickHouse/pull/91683) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* 이제 캐시의 데이터 파일과 시스템 파일을 각각 별도 세그먼트로 분할할 수 있습니다. [#87834](https://github.com/ClickHouse/ClickHouse/pull/87834) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* 중복 파일 다운로드를 방지해 읽기 성능을 개선하는 Parquet 메타데이터용 새로운 SLRU 캐시가 추가되었습니다. 이 캐시는 `SYSTEM DROP PARQUET METADATA CACHE`로 삭제할 수 있습니다. [#89750](https://github.com/ClickHouse/ClickHouse/pull/89750) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* 이제 데이터 레이크 테이블이 Parquet 리더 v3에서 `PREWHERE` 및 다단계 `PREWHERE`를 지원합니다. [#93542](https://github.com/ClickHouse/ClickHouse/pull/93542) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* 공유 스토리지와 대용량 데이터 환경에 유용한, 여러 레플리카에 걸친 분산 인덱스 분석이 추가되었습니다. [#86786](https://github.com/ClickHouse/ClickHouse/pull/86786) ([Azat Khuzhin](https://github.com/azat)).

<div id="insert-and-deduplication">
  ### 삽입 및 중복 제거
</div>

* 이제 async insert 중복 제거가 종속된 구체화된 뷰(Materialized View)에서도 작동합니다. `block_id` 충돌이 발생하면 원본 block을 필터링하여 충돌한 `block_id`와 연결된 행을 제거하고, 남은 행은 해당하는 모든 구체화된 뷰 쿼리를 통해 변환됩니다. [#89140](https://github.com/ClickHouse/ClickHouse/pull/89140) ([Sema Checherinda](https://github.com/CheSema)).
* 이제 async inserts가 병렬 quorum을 지원합니다. 삽입된 데이터는 quorum까지 복제되며, 중복이 발견되면 쿼리는 이전에 삽입된 데이터도 복제될 때까지 대기합니다. [#93356](https://github.com/ClickHouse/ClickHouse/pull/93356) ([Sema Checherinda](https://github.com/CheSema)).
* 통합된 중복 제거 해시로 마이그레이션할 수 있도록 `insert_deduplication_version` 서버 설정이 추가되었습니다. [#95409](https://github.com/ClickHouse/ClickHouse/pull/95409) ([Sema Checherinda](https://github.com/CheSema)).
* 중복 제거 해시 마이그레이션이 시작되었습니다. [#97562](https://github.com/ClickHouse/ClickHouse/pull/97562) ([Sema Checherinda](https://github.com/CheSema)).

<div id="sql-and-query-features">
  ### SQL 및 쿼리 기능
</div>

* 기존 `SYSTEM DROP [...] CACHE`의 더 명확한 대안으로 `SYSTEM CLEAR [...] CACHE` 구문이 추가되었습니다. 기존 구문도 계속 사용할 수 있습니다. [#93727](https://github.com/ClickHouse/ClickHouse/pull/93727) ([Pranav Tiwari](https://github.com/pranavt84)).
* 결과 파트를 커밋하지 않고 머지를 시뮬레이션하는 `OPTIMIZE <table> DRY RUN PARTS <part names>` 쿼리가 추가되었습니다. 머지의 정확성을 검증하고, 머지 관련 버그를 재현하며, 머지 성능을 벤치마크하는 데 유용합니다. [#96122](https://github.com/ClickHouse/ClickHouse/pull/96122) ([Anton Popov](https://github.com/CurtizJ)).
* `ignore_on_cluster_for_replicated_database` 설정이 활성화되면 이제 `ON CLUSTER`가 포함된 DDL 쿼리를 복제된 데이터베이스에서 실행할 수 있습니다. 이때 클러스터 이름은 무시됩니다. [#92872](https://github.com/ClickHouse/ClickHouse/pull/92872) ([Kirill](https://github.com/kirillgarbar)).
* 프로젝션 인덱스 기능을 단순화하고 확장하기 위한 새로운 구문과 프레임워크가 도입되었습니다. [#91844](https://github.com/ClickHouse/ClickHouse/pull/91844) ([Amos Bird](https://github.com/amosbird)).

<div id="settings-and-configuration">
  ### 설정 및 구성
</div>

* 삽입되는 블록의 형성을 더욱 세밀하게 제어할 수 있도록 `max_insert_block_size_bytes` 설정이 추가되었습니다. [#92833](https://github.com/ClickHouse/ClickHouse/pull/92833) ([Kirill Kopnev](https://github.com/Fgrtue)).
* `use_primary_key` 설정이 추가되었습니다. 프라이머리 키(primary key) 기반의 granule 프루닝을 비활성화하려면 이 값을 `false`로 설정하십시오. [#93319](https://github.com/ClickHouse/ClickHouse/pull/93319) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `default_dictionary_database` 설정이 추가되었습니다. 이 설정을 사용하면 데이터베이스 한정자 없이 참조된 외부 딕셔너리를 지정된 기본 데이터베이스에서 ClickHouse가 확인할 수 있습니다. 이를 통해 XML로 정의된 전역 딕셔너리에서 SQL로 정의된 데이터베이스별 딕셔너리로 마이그레이션하는 작업이 간소화됩니다. [#91412](https://github.com/ClickHouse/ClickHouse/pull/91412) ([Dmitrii Plotnikov](https://github.com/dimbo4ka)).
* 테이블(table)에서 사용 중인 이름이 지정된 컬렉션이 삭제되지 않도록 방지하기 위해 `check_named_collection_dependencies` 설정이 추가되었습니다(기본적으로 활성화됨). [#96181](https://github.com/ClickHouse/ClickHouse/pull/96181) ([Pablo Marcos](https://github.com/pamarcos)).
* 제한된 CPU 슬롯을 두고 많은 쿼리가 경쟁하는 높은 과구독 상태에서 더 나은 공정성을 제공하는, 동시성 제어용 max-min 공정 스케줄러가 추가되었습니다. 이제 `concurrent_threads_scheduler` 서버 설정(server setting)의 기본값은 `fair_round_robin`이 아니라 `max_min_fair`이며, 이에 따라 짧게 실행되는 쿼리가 오래 실행되는 쿼리 때문에 더 이상 불이익을 받지 않습니다. [#94732](https://github.com/ClickHouse/ClickHouse/pull/94732) [#95300](https://github.com/ClickHouse/ClickHouse/pull/95300) ([Sergei Trifonov](https://github.com/serxa)).
* ClickHouse 시작 시와 종료 시의 콘솔 로그 레벨을 각각 재정의할 수 있도록 `logger.startup_console_level` 및 `logger.shutdown_console_level` 구성 옵션이 추가되었습니다. [#95919](https://github.com/ClickHouse/ClickHouse/pull/95919) ([Garrett Thomas](https://github.com/garrettthomaskth)).

<div id="monitoring">
  ### 모니터링
</div>

* 버전 정보가 포함된 `ClickHouse_Info` 메트릭이 Prometheus `/metrics` 엔드포인트에 추가되어, 시간 경과에 따른 상세 버전 정보를 추적하는 차트를 만들 수 있게 되었습니다. [#91125](https://github.com/ClickHouse/ClickHouse/pull/91125) ([Christoph Wurm](https://github.com/cwurm)).

<div id="experimental-features">
  ## 실험적 기능
</div>

* 이제 벡터 검색에서 클러스터 내 레플리카 전체에 부하를 분산할 수 있어, 단일 VM의 메모리 용량을 초과하는 대규모 벡터 인덱스도 지원할 수 있습니다. [#95876](https://github.com/ClickHouse/ClickHouse/pull/95876) ([Shankar Iyer](https://github.com/shankar-iyer)).
* `ast_fuzzer_runs` 및 `ast_fuzzer_any_query` 설정으로 제어되는 서버 측 AST 퍼저가 추가되었습니다. 활성화하면 서버는 각 쿼리를 정상적으로 실행한 뒤 해당 쿼리의 무작위 변형도 실행하고, 그 결과는 폐기합니다. [#97568](https://github.com/ClickHouse/ClickHouse/pull/97568) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="improvements">
  ## 개선 사항
</div>

<div id="query-and-sql-improvements">
  ### 쿼리 및 SQL
</div>

* 상관 서브쿼리가 이제 더 많은 테이블 엔진과 데이터 소스 유형을 지원합니다. [#90175](https://github.com/ClickHouse/ClickHouse/pull/90175) ([Dmitry Novik](https://github.com/novikd)).
* 상수가 아닌 `IN`이 이제 스칼라에서도 지원됩니다(예: `val1 NOT IN if(cond, val2, val3)`). [#93495](https://github.com/ClickHouse/ClickHouse/pull/93495) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* JOIN에서 확장된 테이블 별칭 지원이 추가되었습니다(예: `SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b`). [#95331](https://github.com/ClickHouse/ClickHouse/pull/95331) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* 이제 `EXPLAIN indices = 1`을 `EXPLAIN indexes = 1`의 별칭으로 사용할 수 있습니다. [#92774](https://github.com/ClickHouse/ClickHouse/pull/92774) ([Pranav Tiwari](https://github.com/pranavt84)).
* `numbers` 및 `primes` 테이블 함수의 filter pushdown이 개선되었습니다 — ClickHouse는 이제 `WHERE` 조건에서 보수적인 값 범위를 추론해 시퀀스 생성을 제한함으로써, 범위 제한 없는 스캔을 방지할 수 있습니다. [#96115](https://github.com/ClickHouse/ClickHouse/pull/96115) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* 이제 동등 집합 최적화가 여러 개의 연속된 `INNER JOIN` 작업에 걸쳐 동작하므로, 체인 내 임의의 테이블에 적용된 필터가 모든 관련 테이블로 자동으로 푸시다운됩니다. [#96596](https://github.com/ClickHouse/ClickHouse/pull/96596) ([Vladimir Cherkasov](https://github.com/vdimir)).
* 이제 `FROM`의 단일 서브쿼리에서 자동 클러스터 테이블 함수가 사용됩니다. [#96332](https://github.com/ClickHouse/ClickHouse/pull/96332) ([phulv94](https://github.com/phulv94)).
* 접두사가 ASCII 문자로만 이루어진 경우, 이제 `startsWithUTF8`로 필터링할 때 프라이머리 키 인덱스(primary key index)가 사용됩니다. [#97055](https://github.com/ClickHouse/ClickHouse/pull/97055) ([vkcku](https://github.com/vkcku)).
* `assumeNotNull`, `coalesce`, `ifNull`로 키 컬럼을 감싼 경우, 이제 범위 프레디케이트에서 기본 키(primary key) 및 스킵 인덱스 프루닝이 가능해졌습니다. [#94754](https://github.com/ClickHouse/ClickHouse/pull/94754) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* 이제 MergeTree에서 읽을 때는 읽기 단계에서 사용되지 않는 컬럼도 제거되며, 이는 특히 필터가 `PREWHERE`로 푸시다운된 경우에 유용합니다. [#89982](https://github.com/ClickHouse/ClickHouse/pull/89982) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* `use_join_disjunctions_push_down` 최적화가 이제 기본적으로 활성화됩니다. [#89313](https://github.com/ClickHouse/ClickHouse/pull/89313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `enable_join_runtime_filters` 최적화는 이제 기본적으로 활성화됩니다. [#89314](https://github.com/ClickHouse/ClickHouse/pull/89314) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 블룸 필터에서 설정된 비트가 너무 많거나 필터링되는 행 수가 너무 적으면 필터를 자동으로 비활성화하여 JOIN 런타임 필터 오버헤드가 줄어들었습니다. [#91578](https://github.com/ClickHouse/ClickHouse/pull/91578) ([Alexander Gololobov](https://github.com/davenger)).
* 조인 재정렬에 런타임 해시 테이블 크기 통계를 사용할지 제어하는 `use_hash_table_stats_for_join_reordering` 설정이 추가되었습니다(기본적으로 활성화됨). [#93912](https://github.com/ClickHouse/ClickHouse/pull/93912) ([Vladimir Cherkasov](https://github.com/vdimir)).
* 인덱스 분석은 이제 쿼리가 로컬에서 실행되든 병렬 레플리카로 실행되든 관계없이 한 번만 수행됩니다. [#94854](https://github.com/ClickHouse/ClickHouse/pull/94854) ([Nikita Taranov](https://github.com/nickitat)).
* `FINAL` 쿼리에서 스킵 인덱스의 대상이 프라이머리 키(primary key)를 구성하는 컬럼인 경우, 이제 다른 파트에서의 추가 프라이머리 키 교집합 검사를 건너뜁니다. [#93899](https://github.com/ClickHouse/ClickHouse/pull/93899) ([Shankar Iyer](https://github.com/shankar-iyer)).
* `DROP DATABASE`는 이제 의존 관계의 역순으로 테이블을 삭제하므로, 데이터베이스에 로딩 의존성이 있는 테이블이 포함된 경우에도 충돌 안전성이 향상됩니다. [#97057](https://github.com/ClickHouse/ClickHouse/pull/97057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 이제 뮤테이션을 동기적으로 기다릴 때 쿼리 취소 및 시간 제한을 준수합니다. [#96756](https://github.com/ClickHouse/ClickHouse/pull/96756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `DROP COLUMN` mutation 직후 `ADD COLUMN`을 빠르게 실행하면 삭제된 데이터가 다시 살아나는 문제를 방지했습니다. [#96713](https://github.com/ClickHouse/ClickHouse/pull/96713) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `UPDATE` 및 `RENAME COLUMN`과 충돌하는 `ALTER` 표현식은 이제 논리 오류가 아니라 적절한 예외를 발생시킵니다. [#96022](https://github.com/ClickHouse/ClickHouse/pull/96022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 이제 집계 키 컬럼의 예상 총 행 수와 NDV(고유 값 개수) 통계가 수집됩니다. [#92812](https://github.com/ClickHouse/ClickHouse/pull/92812) ([Alexander Gololobov](https://github.com/davenger)).
* 이제 병렬 레플리카 읽기 시 모든 레플리카가 처리되지 않은 ranges를 병렬로 가져올 수 있어, 부하 분산이 개선되고 테일 지연 시간이 줄어듭니다. [#91374](https://github.com/ClickHouse/ClickHouse/pull/91374) ([zoomxi](https://github.com/zoomxi)).
* 선택성이 매우 높은 `PREWHERE` 필터에 대한 자동 병렬 레플리카의 추정 정확도가 향상되었습니다. [#97231](https://github.com/ClickHouse/ClickHouse/pull/97231) ([Nikita Taranov](https://github.com/nickitat)).
* `joinGet`이 이제 임시 테이블도 지원합니다. [#92973](https://github.com/ClickHouse/ClickHouse/pull/92973) ([Eduard Karacharov](https://github.com/korowa)).
* 외부 집계, 정렬 및 조인이 이제 모든 컨텍스트에서 `temporary_files_codec` 쿼리 설정을 따릅니다. [#92388](https://github.com/ClickHouse/ClickHouse/pull/92388) ([Vladimir Cherkasov](https://github.com/vdimir)).
* 벡터 유사도 검색 계획 최적화는 이제 검색 대상 컬럼에 인덱스가 있는 경우에만 적용됩니다. [#94998](https://github.com/ClickHouse/ClickHouse/pull/94998) ([Eduard Karacharov](https://github.com/korowa)).

<div id="table-engines-and-storage">
  ### 테이블 엔진 및 스토리지
</div>

* `StorageEmbeddedRocksDB`가 이제 여러 컬럼을 기본 키로 지원합니다. [#33917](https://github.com/ClickHouse/ClickHouse/pull/33917) ([usurai](https://github.com/usurai)).
* `ALTER TABLE <table> ATTACH PART <part_name> FROM <directory_name>` 구문이 추가되어, 파일 시스템에서 이름을 수동으로 변경하지 않고도 `detached/`의 임의 하위 디렉터리(예: `broken-on-start` 또는 `unexpected` 프리픽스가 있는 파트)에서 파트를 ATTACH할 수 있습니다. [#74816](https://github.com/ClickHouse/ClickHouse/pull/74816) ([Anton Popov](https://github.com/CurtizJ)).
* `min_free_disk_bytes_to_perform_insert`가 이제 JBOD 볼륨에서 올바르게 동작합니다. [#90878](https://github.com/ClickHouse/ClickHouse/pull/90878) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* `max_parts_to_merge_at_once`가 이제 TTL 삭제 파트 병합 중에도 준수됩니다. [#95315](https://github.com/ClickHouse/ClickHouse/pull/95315) ([Kseniia Sumarokova](https://github.com/kssenii)).
* 백그라운드 작업(mutate, merge)은 이제 `default` 프로필을 통해 일반 쿼리와 설정을 공유하는 대신, `background` 프로필로 각각 독립적으로 구성할 수 있습니다. [#93905](https://github.com/ClickHouse/ClickHouse/pull/93905) ([Arsen Muk](https://github.com/arsenmuk)).
* 올바른 크기 계산이 적용되도록 subcolumn 읽기를 개선하여 메모리 사용량을 줄이고 속도를 향상했습니다. [#96251](https://github.com/ClickHouse/ClickHouse/pull/96251) ([Pavel Kruglov](https://github.com/Avogar)).
* 과도한 메모리 사용을 방지하기 위해 `split_intersecting_parts_ranges_into_layers`로 생성되는 pipeline 스트림 수를 제한했습니다. [#96478](https://github.com/ClickHouse/ClickHouse/pull/96478) ([Nikita Taranov](https://github.com/nickitat)).
* 텍스트 인덱스가 이제 일반 제공 상태입니다. [#96794](https://github.com/ClickHouse/ClickHouse/pull/96794) ([Robert Schulze](https://github.com/rschu1ze)).
* `QBit`이 이제 일반 제공 상태입니다. [#95358](https://github.com/ClickHouse/ClickHouse/pull/95358) ([Raufs Dunamalijevs](https://github.com/rienath)).
* 이제 `QBit`의 동등성 비교를 지원합니다. [#94078](https://github.com/ClickHouse/ClickHouse/pull/94078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* `enable_positional_arguments_for_projections`를 사용해 테이블 스키마를 저장할 때, 이제 위치 인수 대신 표현식이 치환되므로 해당 설정을 비활성화한 상태에서도 서버를 다시 시작할 수 있습니다. [#96372](https://github.com/ClickHouse/ClickHouse/pull/96372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 복제된 데이터베이스에서는 더 이상 모든 더미 쿼리마다 캐시된 클러스터가 갱신되지 않습니다. [#96897](https://github.com/ClickHouse/ClickHouse/pull/96897) ([Tuan Pham Anh](https://github.com/tuanpach)).
* DDLWorker 상태를 재설정하는 `SYSTEM RESET DDL WORKER [ON CLUSTER]` 쿼리가 추가되었습니다. 이 쿼리는 호스트 ID가 업데이트되었을 때 레플리카 활동을 갱신하는 데 유용합니다. [#93780](https://github.com/ClickHouse/ClickHouse/pull/93780) ([Tuan Pham Anh](https://github.com/tuanpach)).

<div id="data-lakes-improvements">
  ### 데이터 레이크
</div>

* DeltaLake 삭제 벡터 지원이 추가되었습니다. [#93852](https://github.com/ClickHouse/ClickHouse/pull/93852) ([Kseniia Sumarokova](https://github.com/kssenii)).
* 이제 `deltaLakeCluster`에서도 삭제 벡터를 지원합니다. [#94365](https://github.com/ClickHouse/ClickHouse/pull/94365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* 이제 DeltaLake를 macOS에서 사용할 수 있습니다. [#95985](https://github.com/ClickHouse/ClickHouse/pull/95985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 이제 DeltaLake가 메타데이터의 `count()` 결과를 사용해 `system.tables`에 올바른 테이블 통계(총 바이트 수/행 수)를 표시합니다. [#96190](https://github.com/ClickHouse/ClickHouse/pull/96190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* `system.tables`에서 DeltaLake 테이블을 쿼리할 때 객체 스토리지 읽기를 건너뛰도록 했습니다. [#95899](https://github.com/ClickHouse/ClickHouse/pull/95899) ([Antonio Andelic](https://github.com/antonio2368)).
* delta-kernel 로깅 디버깅을 위한 `SYSTEM RELOAD DELTA KERNEL TRACING <level>` 명령이 추가되었습니다. [#96763](https://github.com/ClickHouse/ClickHouse/pull/96763) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Glue 메타데이터에 `metadata_location`이 지정되지 않은 경우, 이제 Iceberg 테이블 메타데이터 위치를 자동으로 추론합니다. [#91994](https://github.com/ClickHouse/ClickHouse/pull/91994) ([Andrey Zvonov](https://github.com/zvonand)).
* 이제 Iceberg manifest 파일 항목이 포지션 삭제 파일 이름의 하한 및 상한을 파싱하여 데이터 파일 선택을 개선합니다. [#93980](https://github.com/ClickHouse/ClickHouse/pull/93980) ([Daniil Ivanik](https://github.com/divanik)).
* Iceberg 테이블에 `PREWHERE` 최적화 지원이 추가되었습니다. [#95476](https://github.com/ClickHouse/ClickHouse/pull/95476) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* 이제 Iceberg 테이블에서 데이터 파일 리더와 포지션 삭제 파일 리더가 스레드 및 메모리 제한을 공유합니다. [#94701](https://github.com/ClickHouse/ClickHouse/pull/94701) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Iceberg 테이블에 `ALTER TABLE RENAME COLUMN` 지원이 추가되었습니다. [#97455](https://github.com/ClickHouse/ClickHouse/pull/97455) ([murphy-4o](https://github.com/murphy-4o)).
* 데이터 레이크에 Google Cloud Storage 지원이 추가되었습니다. [#93866](https://github.com/ClickHouse/ClickHouse/pull/93866) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* 이제 Unity Catalog 사용 시 장시간 실행되는 쿼리 동안 S3 액세스 토큰이 동적으로 갱신됩니다. [#95069](https://github.com/ClickHouse/ClickHouse/pull/95069) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* `aws_role_arn` 및 `aws_role_session_name` 설정을 통해 Glue catalog에 대한 역할 기반 접근이 추가되었습니다. [#90825](https://github.com/ClickHouse/ClickHouse/pull/90825) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="s3queue-improvements">
  ### S3Queue
</div>

* S3Queue가 이제 ordered 모드에서 Hive 파티셔닝을 추적합니다. [#81040](https://github.com/ClickHouse/ClickHouse/pull/81040) ([Anton Ivashkin](https://github.com/ianton-ru)).
* 버킷을 활용하도록 S3Queue ordered 모드 처리를 리팩터링하여 Keeper 요청 수를 줄이고 성능을 개선했습니다. [#92889](https://github.com/ClickHouse/ClickHouse/pull/92889) ([Kseniia Sumarokova](https://github.com/kssenii)).
* S3Queue ordered 모드에 보다 범용적인 파티셔닝 지원을 추가했습니다. [#94321](https://github.com/ClickHouse/ClickHouse/pull/94321) ([Bharat Nallan](https://github.com/bharatnc)).
* ordered 모드의 S3Queue에 파티션 키 기반 버킷팅을 추가했습니다. [#94698](https://github.com/ClickHouse/ClickHouse/pull/94698) ([Bharat Nallan](https://github.com/bharatnc)).
* `keeper_path` 설정을 통해 S3Queue의 보조 ZooKeeper를 지원합니다. [#95203](https://github.com/ClickHouse/ClickHouse/pull/95203) ([Diego Nieto](https://github.com/lesandie)).
* S3(Azure)Queue ordered 모드는 이제 한도를 추적해 실패한 노드를 정리합니다. [#94412](https://github.com/ClickHouse/ClickHouse/pull/94412) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="s3-and-object-storage-improvements">
  ### S3 및 객체 스토리지
</div>

* S3 `x-amz-server-side-encryption` 헤더는 더 이상 `HeadObject`, `UploadPart`, `CompleteMultipartUpload` 요청에 전달되지 않습니다. [#64577](https://github.com/ClickHouse/ClickHouse/pull/64577) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* 이제 S3 테이블 엔진과 `s3` 테이블 함수에 대해 이름이 지정된 컬렉션에서 `storage_class_name`을 지정할 수 있습니다. [#91926](https://github.com/ClickHouse/ClickHouse/pull/91926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* 인스턴스 프로필 자격 증명을 사용해 동시에 많은 S3 쿼리를 실행할 때 발생하던 EC2 metadata endpoint 스로틀링 문제를 수정했습니다. 이제 자격 증명 provider가 캐시되어 모든 쿼리에서 공유됩니다. [#92891](https://github.com/ClickHouse/ClickHouse/pull/92891) ([Sav](https://github.com/sberss)).
* AWS S3 C++ SDK에 MinIO 전용 오류용 오류 코드 매핑을 포함한 MinIO 호환성 지원을 추가해, 자체 호스팅 MinIO cluster의 안정성을 높였습니다. [#93082](https://github.com/ClickHouse/ClickHouse/pull/93082) ([XiaoBinMu](https://github.com/Binnn-MX)).
* 자격 증명을 확인하라는 안내를 포함하도록 S3 authentication 오류 메시지를 개선했습니다. [#95648](https://github.com/ClickHouse/ClickHouse/pull/95648) ([Gerald Latkovic](https://github.com/batkovic75)).
* 이제 Azure Blob Storage는 네이티브 복사가 어떤 오류로든 실패하면 읽기-쓰기 복사로 대체됩니다(이전에는 인증되지 않음 오류일 때만 대체됨). [#92888](https://github.com/ClickHouse/ClickHouse/pull/92888) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).

<div id="functions">
  ### 함수
</div>

* `avg()`가 이제 `Date`, `DateTime`, `Time` 값을 인수로 지원합니다. [#87845](https://github.com/ClickHouse/ClickHouse/pull/87845) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `mapContainsKeyLike`와 `mapContainsValueLike`가 이제 `mapKeys()` 또는 `mapValues()`의 텍스트 인덱스를 활용할 수 있습니다. [#93049](https://github.com/ClickHouse/ClickHouse/pull/93049) ([Michael Jarrett](https://github.com/EmeraldShift)).
* `flipCoordinates`가 이제 `Geometry` 타입을 지원합니다. [#93303](https://github.com/ClickHouse/ClickHouse/pull/93303) ([Bharat Nallan](https://github.com/bharatnc)).
* `hasAnyTokens` 및 `hasAllTokens` 함수의 64개 token 제한을 제거했습니다. [#95152](https://github.com/ClickHouse/ClickHouse/pull/95152) ([Elmi Ahmadov](https://github.com/ahmadov)).
* 다른 거리 함수와의 일관성을 위해 `cosineDistance`의 별칭으로 `distanceCosine`을 추가했습니다. [#96065](https://github.com/ClickHouse/ClickHouse/pull/96065) ([Raufs Dunamalijevs](https://github.com/rienath)).
* ClickHouse KQL에 `iif` 함수를 추가했습니다. [#94790](https://github.com/ClickHouse/ClickHouse/pull/94790) ([happyso](https://github.com/sunyeongchoi)).
* `use_variant_as_common_type`가 이제 기본적으로 활성화되어, `Array`, `UNION` 쿼리, `if`/`multiIf`/`case` 분기 내에서 서로 호환되지 않는 타입도 허용합니다. [#90677](https://github.com/ClickHouse/ClickHouse/pull/90677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="settings-and-configuration">
  ### 설정 및 구성
</div>

* `use_skip_indexes_on_data_read`는 이제 기본적으로 활성화되어 있습니다. [#93407](https://github.com/ClickHouse/ClickHouse/pull/93407) ([Shankar Iyer](https://github.com/shankar-iyer)).
* `add_minmax_index_for_time_columns` 설정이 추가되었습니다 — 활성화하면 모든 `Date`, `Date32`, `Time`, `Time64`, `DateTime`, `DateTime64` 컬럼에 대해 MinMax 인덱스를 자동으로 생성합니다. [#93355](https://github.com/ClickHouse/ClickHouse/pull/93355) ([Michael Jarrett](https://github.com/EmeraldShift)).
* `materialize_statistics_on_merge` 설정(기본값은 활성화됨)이 추가되어, 머지 중에 통계를 구체화할지 여부를 제어할 수 있습니다. [#93379](https://github.com/ClickHouse/ClickHouse/pull/93379) ([Han Fei](https://github.com/hanfei1991)).
* 악의적인 페이로드를 방지하기 위해 바이너리 형식으로 디코딩할 수 있는 전체 타입 노드 수를 제한하는 `input_format_binary_max_type_complexity` 설정이 추가되었습니다. [#92519](https://github.com/ClickHouse/ClickHouse/pull/92519) ([Raufs Dunamalijevs](https://github.com/rienath)).
* 특정 이벤트 이름만 대상으로 `trace_profile_event` 트레이싱을 제한할 수 있도록 `trace_profile_events_list` 설정이 추가되었습니다. [#92298](https://github.com/ClickHouse/ClickHouse/pull/92298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 하나는 리터럴이고 다른 하나는 중첩 객체인 경우 JSON에서 중복된 경로를 허용하는 `type_json_allow_duplicated_key_with_literal_and_nested_object` 설정이 추가되었습니다. 이는 경로 중복 제거가 강제되기 전에 생성된 데이터와의 하위 호환성을 유지하기 위한 것입니다. [#93604](https://github.com/ClickHouse/ClickHouse/pull/93604) ([Pavel Kruglov](https://github.com/Avogar)).
* 머지 및 파싱 중 JSON 컬럼의 동적 서브컬럼 수를 제한하는 `merge_max_dynamic_subcolumns_in_compact_part` MergeTree setting과 `max_dynamic_subcolumns_in_json_type_parsing` 쿼리 수준 setting이 추가되었습니다. [#94184](https://github.com/ClickHouse/ClickHouse/pull/94184) ([Pavel Kruglov](https://github.com/Avogar)).
* `use_primary_key` 및 `use_skip_indexes`와의 일관성을 위해 `allow_statistics_optimize`의 별칭으로 `use_statistics`를 추가했습니다. [#94366](https://github.com/ClickHouse/ClickHouse/pull/94366) ([Robert Schulze](https://github.com/rschu1ze)).
* 요소 존재 여부를 확인할 수 있도록 Numbers-to-Enum 변환에 `input_format_numbers_enum_on_conversion_error`를 활성화했습니다. [#94384](https://github.com/ClickHouse/ClickHouse/pull/94384) ([Elmi Ahmadov](https://github.com/ahmadov)).
* 테이블에 행 정책이 있지만 현재 사용자에게 적용되는 정책이 하나도 없을 때 예외를 발생시키는 설정이 추가되었습니다. 이를 통해 잠재적인 구성 오류를 감지할 수 있습니다. [#95014](https://github.com/ClickHouse/ClickHouse/pull/95014) ([Vitaly Baranov](https://github.com/vitlibar)).
* `enable_max_bytes_limit_for_min_age_to_force_merge`는 이제 호환성 버전 26.2 이상에서 기본값으로 활성화됩니다. [#95917](https://github.com/ClickHouse/ClickHouse/pull/95917) ([Christoph Wurm](https://github.com/cwurm)).
* `core_dump.size_limit`은 이제 서버를 재시작하지 않고도 핫 리로드할 수 있습니다. [#96524](https://github.com/ClickHouse/ClickHouse/pull/96524) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* 구성을 다시 로드할 때 이제 명령줄 재정의가 적용됩니다. [#80295](https://github.com/ClickHouse/ClickHouse/pull/80295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 서버 로그에 대해 복합 로테이션 전략(크기 + 시간)을 추가했습니다. [#87620](https://github.com/ClickHouse/ClickHouse/pull/87620) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* 이제 파트 수(`distributed_index_analysis_min_parts_to_activate`)와 인덱스 크기(`distributed_index_analysis_min_indexes_size_to_activate`)를 기준으로 분산 인덱스 분석을 활성화할 수 있게 되었습니다. [#95216](https://github.com/ClickHouse/ClickHouse/pull/95216) ([Azat Khuzhin](https://github.com/azat)).
* Statistics 캐시는 이제 기본적으로 활성화되며, 업데이트 주기는 300초입니다. [#95841](https://github.com/ClickHouse/ClickHouse/pull/95841) ([Han Fei](https://github.com/hanfei1991)).
* `path` 구성 매개변수는 이제 시작 시 작업 디렉터리를 기준으로 상대적으로 해석되므로, 데이터 디렉터리가 비정상적인 위치에 생성되는 것을 방지합니다. [#96305](https://github.com/ClickHouse/ClickHouse/pull/96305) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="system-tables-and-monitoring-improvements">
  ### 시스템 테이블 및 모니터링
</div>

* 진단 기능을 개선하기 위해 `system.mutations`에 `parts_postpone_reasons` 컬럼을 추가했습니다. [#92206](https://github.com/ClickHouse/ClickHouse/pull/92206) ([Shaohua Wang](https://github.com/tiandiwonder)).
* `system.data_skipping_indices`에 `creation`(implicit/explicit) 컬럼을 추가했습니다. [#92378](https://github.com/ClickHouse/ClickHouse/pull/92378) ([Raúl Marín](https://github.com/Algunenano)).
* 이제 실행 중인 작업이 `system.background_schedule_pool` 및 해당 로그 테이블에 반영됩니다. [#92587](https://github.com/ClickHouse/ClickHouse/pull/92587) ([Azat Khuzhin](https://github.com/azat)).
* 실행 중인 내부 쿼리가 아닌 쿼리 수를 추적하는 `QueryNonInternal` 메트릭을 추가하여 `max_concurrent_queries` 제한에 대한 동시성 모니터링에 도움이 되도록 했습니다. [#94284](https://github.com/ClickHouse/ClickHouse/pull/94284) ([Ashwath Singh](https://github.com/ashwath)).
* 가장 오래 실행 중인 머지의 경과 시간을 나타내는 비동기 메트릭을 추가했습니다. [#94825](https://github.com/ClickHouse/ClickHouse/pull/94825) ([Raúl Marín](https://github.com/Algunenano)).
* 물리적 연결을 반영하도록 `query_log`에 `connection_address` 및 `connection_port`를 추가했습니다(프록시를 통해 연결된 경우 유용함). [#95471](https://github.com/ClickHouse/ClickHouse/pull/95471) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* `system.crash_log`에 더 많은 정보를 추가했습니다. [#94112](https://github.com/ClickHouse/ClickHouse/pull/94112) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* `system.aggregated_zookeeper_log`에 component 이름을 추가했습니다. [#95882](https://github.com/ClickHouse/ClickHouse/pull/95882) ([Antonio Andelic](https://github.com/antonio2368)).
* 사용 가능한 모든 토크나이저를 보여주는 `system.tokenizers` 테이블을 추가했습니다. [#96753](https://github.com/ClickHouse/ClickHouse/pull/96753) ([Robert Schulze](https://github.com/rschu1ze)).
* jemalloc 메모리 allocator 통계를 대화형으로 시각화할 수 있도록 `system.jemalloc_stats` 테이블과 `/jemalloc.html` HTTP endpoint를 추가했습니다. [#97077](https://github.com/ClickHouse/ClickHouse/pull/97077) ([Antonio Andelic](https://github.com/antonio2368)).
* raw, symbolized, collapsed 출력 형식을 지원하며 jemalloc heap profile을 읽고 분석할 수 있는 `system.jemalloc_profile_text` 테이블을 추가했습니다. [#97218](https://github.com/ClickHouse/ClickHouse/pull/97218) ([Antonio Andelic](https://github.com/antonio2368)).
* `MUTATE_PART` 및 `MUTATE_PART_START` 이벤트에 대해 `system.part_log`에 `mutation_ids`를 추가했습니다. [#93811](https://github.com/ClickHouse/ClickHouse/pull/93811) ([Shaohua Wang](https://github.com/tiandiwonder)).
* 중첩된 전역 server settings(예: `logger.level`)가 이제 `system.server_settings`에 부분적으로 표시됩니다. [#94001](https://github.com/ClickHouse/ClickHouse/pull/94001) ([Hechem Selmi](https://github.com/m-selmi)).
* 이제 `view_duration_ms`는 thread Duration의 합계가 아니라 그룹이 활성 상태였던 시간을 보여줍니다. [#94966](https://github.com/ClickHouse/ClickHouse/pull/94966) ([Sema Checherinda](https://github.com/CheSema)).
* 이제 `system.blob_storage_log`를 Azure Blob Storage, Local, HDFS에서 사용할 수 있습니다. `error_code` 컬럼도 추가했습니다. [#93105](https://github.com/ClickHouse/ClickHouse/pull/93105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 평균보다 느린 Background 작업은 이제 구성 가능한 임계값(`background_schedule_pool_log.duration_threshold_milliseconds`, 기본값 30ms)을 기준으로 로그에 기록됩니다. [#92965](https://github.com/ClickHouse/ClickHouse/pull/92965) ([Azat Khuzhin](https://github.com/azat)).
* URL storage의 password는 더 이상 쿼리 로그에 표시되지 않습니다. [#93245](https://github.com/ClickHouse/ClickHouse/pull/93245) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="clickhouse-keeper-improvements">
  ### ClickHouse Keeper
</div>

* 마지막으로 커밋된 인덱스보다 앞선 로그에 대해 Keeper 로그 엔트리의 간격(gaps)을 올바르게 처리합니다. [#90403](https://github.com/ClickHouse/ClickHouse/pull/90403) ([Antonio Andelic](https://github.com/antonio2368)).
* Keeper 요청에 대한 OpenTelemetry tracing이 추가되었습니다. [#91332](https://github.com/ClickHouse/ClickHouse/pull/91332) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* 새로운 Keeper 메트릭이 추가되었습니다: `KeeperChangelogWrittenBytes`, `KeeperChangelogFileSyncMicroseconds`, `KeeperSnapshotWrittenBytes`, `KeeperSnapshotFileSyncMicroseconds`, `KeeperBatchSizeElements`, `KeeperBatchSizeBytes`. [#92149](https://github.com/ClickHouse/ClickHouse/pull/92149) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* `CHECK_STAT` 및 `TRY_REMOVE` Keeper 확장이 이제 기본적으로 활성화됩니다. [#93886](https://github.com/ClickHouse/ClickHouse/pull/93886) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Keeper는 이제 손상된 snapshot 또는 일관되지 않은 changelog를 감지하면 중단하는 대신 예외를 발생시켜, 더 안전한 복구를 위해 수동 개입이 필요하도록 합니다. [#94168](https://github.com/ClickHouse/ClickHouse/pull/94168) ([Antonio Andelic](https://github.com/antonio2368)).
* `getChildren` Keeper 요청에 `with_data` 및 `with_stat` 확장이 추가되어, 단일 작업으로 하위 항목과 해당 데이터 및 통계를 함께 가져올 수 있습니다. [#94826](https://github.com/ClickHouse/ClickHouse/pull/94826) ([Nikolay Degterinsky](https://github.com/evillique)).
* cluster 조립 실패로 이어질 수 있는 Keeper 오구성을 확인하는 검사 기능이 추가되었습니다. [#94682](https://github.com/ClickHouse/ClickHouse/pull/94682) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Database Replicated에서 table 가져오기를 개선하기 위해 `with_data` Keeper 확장 지원이 추가되었습니다. [#96090](https://github.com/ClickHouse/ClickHouse/pull/96090) ([Nikolay Degterinsky](https://github.com/evillique)).
* 이제 `system.zookeeper`를 통해 보조 ZooKeeper에 삽입할 수 있습니다. [#92092](https://github.com/ClickHouse/ClickHouse/pull/92092) ([RinChanNOW](https://github.com/RinChanNOWWW)).

<div id="memory-management-improvements">
  ### 메모리 관리
</div>

* 파일 시스템 캐시 공간 예약을 최적화했습니다 — 이제 unique lock을 잡은 상태를 유지하지 않고도 축출 후보를 수집합니다. [#82764](https://github.com/ClickHouse/ClickHouse/pull/82764) ([Kseniia Sumarokova](https://github.com/kssenii)).
* 원격 테이블 엔진/함수용 파일 시스템 캐시 읽기 버퍼에서 병렬 읽기를 활성화했습니다. [#71781](https://github.com/ClickHouse/ClickHouse/pull/71781) ([Kseniia Sumarokova](https://github.com/kssenii)).
* jemalloc dirty page를 즉시 제거하도록 하여 Linux 이외의 시스템에서 메모리 사용량을 줄였습니다. [#93360](https://github.com/ClickHouse/ClickHouse/pull/93360) ([Eduard Karacharov](https://github.com/korowa)).
* 이제 jemalloc dirty page 제거는 메인 MemoryWorker 스레드와 분리된 별도 스레드에서 실행됩니다. 총 메모리 사용 비율을 기준으로 제거를 수행하기 위한 `memory_worker_purge_total_memory_threshold_ratio` 구성을 추가했습니다. [#94902](https://github.com/ClickHouse/ClickHouse/pull/94902) ([Antonio Andelic](https://github.com/antonio2368)).
* 이제 ClickHouse가 지속적인 메모리 압박 상태에 있으면 jemalloc dirty page decay가 동적으로 비활성화됩니다. [#95145](https://github.com/ClickHouse/ClickHouse/pull/95145) ([Antonio Andelic](https://github.com/antonio2368)).
* MergeTree에서 데이터를 읽기 전에 명시적인 메모리 사용량 검사를 추가했으며, 운영 환경에서의 경험을 바탕으로 스레드 풀 큐 크기도 줄였습니다. [#94692](https://github.com/ClickHouse/ClickHouse/pull/94692) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* 이제 사용자 인증 전에 총 메모리 제한을 검사하며, 제한을 초과하면 `memory limit exceeded`를 발생시킵니다. [#95003](https://github.com/ClickHouse/ClickHouse/pull/95003) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* 쿼리 conditions 캐시의 잘못된 메모리 계산을 수정했습니다. [#95478](https://github.com/ClickHouse/ClickHouse/pull/95478) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* 집계/정렬 중 디스크로 스필할 때 쿼리 메모리 사용량을 감지하는 기능을 더욱 안정적으로 개선했습니다. [#92500](https://github.com/ClickHouse/ClickHouse/pull/92500) ([Azat Khuzhin](https://github.com/azat)).
* 이제 스케줄러는 CPU 기아 상태에서 프로세스를 보호하기 위해 MemoryWorker 스레드에 우선순위를 부여합니다. [#94864](https://github.com/ClickHouse/ClickHouse/pull/94864) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* 일부 경우 테이블에서 읽을 때 ClickHouse가 메모리 제한을 준수하지 않던 문제를 수정했습니다. [#93715](https://github.com/ClickHouse/ClickHouse/pull/93715) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

<div id="data-formats-improvements">
  ### 데이터 포맷
</div>

* 이제 Parquet 리더에서 `Tuple` 또는 `Map` 컬럼을 JSON으로 읽을 수 있습니다. [#92864](https://github.com/ClickHouse/ClickHouse/pull/92864) ([Michael Kolupaev](https://github.com/al13n321)).
* 이제 Parquet 리더가 빈 튜플을 지원합니다. [#92868](https://github.com/ClickHouse/ClickHouse/pull/92868) ([Michael Kolupaev](https://github.com/al13n321)).
* 이제 `Date` 타입은 Arrow/ArrowStream 포맷에서 Arrow의 네이티브 `date32` 타입으로 직렬화됩니다(기존에는 `uint16`). 이전 동작은 `output_format_arrow_date_as_uint16` 설정으로 복원할 수 있습니다. [#96860](https://github.com/ClickHouse/ClickHouse/pull/96860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 이제 `Hash` 출력 형식은 블록 크기와 무관합니다. [#94503](https://github.com/ClickHouse/ClickHouse/pull/94503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Pretty JSON 포맷에서 단순 타입은 더 이상 별도 줄에 출력되지 않습니다. [#93836](https://github.com/ClickHouse/ClickHouse/pull/93836) ([Pavel Kruglov](https://github.com/Avogar)).
* 이제 스키마 추론은 `allow_experimental_nullable_tuple_type`를 반영합니다. 이 설정을 활성화하면 누락된 중첩 객체는 `NULL` 요소로 이루어진 튜플 대신 `NULL`이 될 수 있습니다. [#95525](https://github.com/ClickHouse/ClickHouse/pull/95525) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* 이제 SQL formatter는 `SELECT`를 괄호로 감싸는 대신 `AS SELECT` 앞에 `COMMENT`를 출력합니다. [#96293](https://github.com/ClickHouse/ClickHouse/pull/96293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* simdcomp를 사용해 postings list 압축을 최적화했습니다. [#92871](https://github.com/ClickHouse/ClickHouse/pull/92871) ([Peng Jian](https://github.com/fastio)).

<div id="backup-and-restore-improvements">
  ### 백업 및 복원
</div>

* 갱신 가능 구체화 뷰의 데이터를 백업할지 여부를 제어하는 `backup_data_from_refreshable_materialized_view_targets` 백업 설정이 추가되었습니다. `APPEND` 갱신 전략을 사용하는 RMV의 대상은 항상 백업됩니다. [#93658](https://github.com/ClickHouse/ClickHouse/pull/93658) ([Julia Kartseva](https://github.com/jkartseva)).
* S3 및 Azure Blob Storage에 대해 `BACKUP`/`RESTORE`에서 SQL로 정의된 이름이 지정된 컬렉션을 지원하도록 추가되었습니다. [#94605](https://github.com/ClickHouse/ClickHouse/pull/94605) ([Pablo Marcos](https://github.com/pamarcos)).

<div id="named-collections-and-dictionaries">
  ### 이름이 지정된 컬렉션 및 딕셔너리
</div>

* 이제 MongoDB 테이블 함수에서 이름이 지정된 컬렉션 매개변수 재정의를 허용합니다. [#89616](https://github.com/ClickHouse/ClickHouse/pull/89616) ([vanchaklar](https://github.com/vanchaklar)).
* YTsaurus 딕셔너리와 테이블에서 이름이 지정된 컬렉션을 사용할 수 있게 되었습니다. [#94582](https://github.com/ClickHouse/ClickHouse/pull/94582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* 이제 YTsaurus 동적 테이블 딕셔너리 소스에 컬럼 설명을 전달할 수 있게 되었습니다. [#92391](https://github.com/ClickHouse/ClickHouse/pull/92391) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* 매개변수화된 뷰의 스키마를 명시적으로 지정한 경우 이제 표시됩니다. [#90220](https://github.com/ClickHouse/ClickHouse/pull/90220) ([Grigorii Sokolik](https://github.com/GSokol)).

<div id="deduplication-improvements">
  ### 중복 제거
</div>

* 이전 버전과의 호환성 옵션을 추가할 수 있도록 `insert_select_deduplicate` 설정을 개편했습니다. [#92951](https://github.com/ClickHouse/ClickHouse/pull/92951) ([Sema Checherinda](https://github.com/CheSema)).
* 이제 materialized view가 포함된 경우에도 async inserts에서 중복 제거가 허용됩니다. [#93957](https://github.com/ClickHouse/ClickHouse/pull/93957) ([Sema Checherinda](https://github.com/CheSema)).

<div id="other-improvements">
  ### 기타 개선 사항
</div>

* `SYSTEM INSTRUMENT ADD/REMOVE`의 UX를 개선했습니다. 이제 함수 이름에 문자열 리터럴을 사용하고, 일치하는 모든 함수에 패치가 적용되며, `REMOVE`에서 `function_name`도 지원합니다. [#93345](https://github.com/ClickHouse/ClickHouse/pull/93345) ([Pablo Marcos](https://github.com/pamarcos)).
* 일시 중지 가능한 failpoint를 위한 `SYSTEM NOTIFY FAILPOINT`와 PAUSE/RESUME를 위한 `SYSTEM WAIT FAILPOINT`를 추가했습니다. [#92368](https://github.com/ClickHouse/ClickHouse/pull/92368) ([Shaohua Wang](https://github.com/tiandiwonder)).
* `system.trace_log`, `system.symbols`, `demangle` 함수에서 C++ 함수 이름이 이제 올바르게 표시됩니다. [#93075](https://github.com/ClickHouse/ClickHouse/pull/93075) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* jemalloc 프로파일이 이제 심볼과 함께 기록되므로 힙 프로파일 생성 시 binary가 더 이상 필요하지 않습니다. [#93099](https://github.com/ClickHouse/ClickHouse/pull/93099) ([Azat Khuzhin](https://github.com/azat)).
* 스택 언와인딩 중 `dropReplicationSlot`에서 예외가 발생할 때 `MaterializedPostgreSQL` 데이터베이스에 테이블을 ATTACH하는 과정에서 발생하던 크래시를 수정했습니다. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `CREATE TABLE`이 실패할 때 잔여 항목이 남을 수 있던 문제를 수정했습니다. [#94174](https://github.com/ClickHouse/ClickHouse/pull/94174) ([Azat Khuzhin](https://github.com/azat)).
* password로 보호된 TLS key를 사용할 때 발생하던 초기화되지 않은 메모리 접근 문제를 수정했습니다. [#94182](https://github.com/ClickHouse/ClickHouse/pull/94182) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* `alter table ... modify setting ...`이 잠금 획득 중 timeout되면, 이제 논리 오류가 아니라 timeout 오류를 반환합니다. [#93856](https://github.com/ClickHouse/ClickHouse/pull/93856) ([Han Fei](https://github.com/hanfei1991)).
* socket timeout과 함께 사용할 때 CPU 및 real-time 프로파일러의 상호 운용성을 개선했습니다. [#96601](https://github.com/ClickHouse/ClickHouse/pull/96601) ([Sergei Trifonov](https://github.com/serxa)).
* 릴리스 빌드(release builds)에서 빠른 libcxx 하드닝(주로 범위 밖 검사)을 활성화했으며, 눈에 띄는 성능 영향은 없습니다. [#94757](https://github.com/ClickHouse/ClickHouse/pull/94757) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="performance-improvements">
  ## 성능 개선
</div>

<div id="join-performance">
  ### JOIN 성능
</div>

* `ColumnVector::replicate`에 동적 디스패치를 구현하여 일부 해시 조인 작업의 성능을 개선했습니다. [#79573](https://github.com/ClickHouse/ClickHouse/pull/79573) ([Raúl Marín](https://github.com/Algunenano)).
* 이제 더 많은 필터가 JOIN까지 푸시다운됩니다. [#85556](https://github.com/ClickHouse/ClickHouse/pull/85556) ([Nikita Taranov](https://github.com/nickitat)).
* 필터가 한쪽 입력만 사용하는 경우, `ANY`, `SEMI`, `ANTI` 조인에 대해 JOIN `ON` 조건에서의 필터 푸시다운을 확장했습니다. [#92584](https://github.com/ClickHouse/ClickHouse/pull/92584) ([Dmitry Novik](https://github.com/novikd)).
* 이제 등가 집합을 사용해 `SEMI JOIN`에 대한 필터를 푸시다운할 수 있습니다. [#92837](https://github.com/ClickHouse/ClickHouse/pull/92837) ([Dmitry Novik](https://github.com/novikd)).
* 복잡한 프레디케이트에 대해 `ParallelHashJoin`에서 조인되지 않은 행 처리의 병렬화를 지원하며, 이는 `parallel_non_joined_rows_processing` 설정으로 제어됩니다(기본적으로 활성화됨). [#92068](https://github.com/ClickHouse/ClickHouse/pull/92068) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* 이제 오른쪽이 비어 있으면 해시 조인이 왼쪽을 아예 읽지 않고 건너뛰므로, 과도한 필터링이나 집계로 인한 불필요한 작업을 피할 수 있습니다. [#94062](https://github.com/ClickHouse/ClickHouse/pull/94062) ([Alexander Gololobov](https://github.com/davenger)).
* 이제 `RIGHT OUTER` JOIN에서 JOIN 런타임 필터를 지원합니다. [#96183](https://github.com/ClickHouse/ClickHouse/pull/96183) ([Hechem Selmi](https://github.com/m-selmi)).
* 이제 PREWHERE 최적화가 JOIN 런타임 필터 최적화 이후에 수행되므로, 런타임 필터도 PREWHERE까지 푸시다운할 수 있습니다. [#95838](https://github.com/ClickHouse/ClickHouse/pull/95838) ([Alexander Gololobov](https://github.com/davenger)).

<div id="query-optimization">
  ### 쿼리 최적화
</div>

* 파티션 키가 정렬 키와 같거나 그 접두사인 경우, 윈도우 함수의 정렬 순서 최적화를 비활성화해 병렬 실행 성능을 개선했습니다. [#87299](https://github.com/ClickHouse/ClickHouse/pull/87299) ([Nikita Taranov](https://github.com/nickitat)).
* 이제 외부 필터 조건이 뷰 내부로 푸시다운되어 로컬 노드와 원격 노드 모두에서 PREWHERE를 적용할 수 있습니다. [#88316](https://github.com/ClickHouse/ClickHouse/pull/88316) ([Igor Nikonov](https://github.com/devcrafter)).
* 소수 값의 `LIMIT` 및 `OFFSET`에 대한 성능과 메모리 사용량을 최적화했습니다. [#91167](https://github.com/ClickHouse/ClickHouse/pull/91167) ([Ahmed Gouda](https://github.com/0xgouda)).
* 가상 컬럼에 대한 상수 필터는 더 이상 중복 평가되지 않습니다. [#91588](https://github.com/ClickHouse/ClickHouse/pull/91588) ([c-end](https://github.com/c-end)).
* 이제 프라이머리 키의 모든 결정적 표현식(예: `ORDER BY cityHash64(user_id)`)을 데이터 스키핑에 사용할 수 있습니다. ClickHouse는 쿼리 상수에 해당 표현식을 적용하고, 그 결과를 `=`, `IN`, `has`에 대한 프라이머리 키 인덱스 조회에 사용합니다. 단사 표현식의 경우 부정 형태(`!=`, `NOT IN`, `NOT has`)도 지원합니다. [#92952](https://github.com/ClickHouse/ClickHouse/pull/92952) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* 이제 read-in-order 최적화는 `WHERE` 조건 때문에 `ORDER BY` 컬럼이 상수가 되는 경우를 인식하여 역순 읽기도 효율적으로 수행할 수 있습니다. 이는 `WHERE tenant='42' ORDER BY tenant, event_time DESC`와 같은 멀티 테넌트 쿼리에 도움이 됩니다. [#94103](https://github.com/ClickHouse/ClickHouse/pull/94103) ([matanper](https://github.com/matanper)).
* 프라이머리 키 조건 다음에 스킵 인덱스가 사용되는 `FINAL` 쿼리의 경우, 이제 `PrimaryKeyExpand` 단계는 처음에 추려진 프라이머리 키 범위만 검사합니다. [#94903](https://github.com/ClickHouse/ClickHouse/pull/94903) ([Shankar Iyer](https://github.com/shankar-iyer)).
* 이제 lazy materialization 최적화가 `UNION ALL` 쿼리의 첫 번째 분기뿐 아니라 모든 분기에 적용되어, 서로 다른 MergeTree 테이블에서 여러 정렬 읽기와 제한된 읽기를 결합하는 쿼리의 I/O를 줄입니다. [#96832](https://github.com/ClickHouse/ClickHouse/pull/96832) ([Federico Ginosa](https://github.com/menxit)).

<div id="function-and-aggregation-performance">
  ### 함수 및 집계 성능
</div>

* 이제 JIT 컴파일이 더 많은 함수에 적용됩니다. [#88770](https://github.com/ClickHouse/ClickHouse/pull/88770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `distinctJSONPaths` 집계 함수를 최적화하여 전체 JSON 컬럼 대신 데이터 파트의 JSON 경로만 읽도록 했습니다. [#92196](https://github.com/ClickHouse/ClickHouse/pull/92196) ([Pavel Kruglov](https://github.com/Avogar)).
* 동일한 요소가 연속해서 자주 나타나는 경우 `uniqExact`를 최적화했습니다. [#93268](https://github.com/ClickHouse/ClickHouse/pull/93268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 모든 입력 값이 ASCII인 경우 `isValidASCII`를 최적화했습니다. [#93347](https://github.com/ClickHouse/ClickHouse/pull/93347) ([Robert Schulze](https://github.com/rschu1ze)).
* 가능한 경우 삽입을 배칭 처리하여 숫자 타입에서의 `uniq`를 더 빠르게 했습니다(`NULL` 아님, `-If` 없음, `GROUP BY` 없음, `IPv6` 또는 `String` 없음). [#95904](https://github.com/ClickHouse/ClickHouse/pull/95904) ([Raúl Marín](https://github.com/Algunenano)).

<div id="storage-and-io-performance">
  ### 스토리지 및 I/O 성능
</div>

* Parquet Reader V3 Prefetcher가 더 빠른 랜덤 읽기 로직을 사용하도록 수정했습니다. [#91435](https://github.com/ClickHouse/ClickHouse/pull/91435) ([Arsen Muk](https://github.com/arsenmuk)).
* `icebergCluster`의 성능을 개선했습니다. [#91537](https://github.com/ClickHouse/ClickHouse/pull/91537) ([Yang Jiang](https://github.com/Ted-Jiang)).
* 적응형 쓰기 버퍼를 활성화해 Wide 파트를 사용하는 매우 넓은 테이블의 `INSERT` 및 머지 메모리 사용량을 줄였습니다. 또한 암호화된 디스크에 대한 적응형 쓰기 버퍼 지원도 추가했습니다. [#92250](https://github.com/ClickHouse/ClickHouse/pull/92250) ([Azat Khuzhin](https://github.com/azat)).
* 검색하는 토큰 수를 줄여 텍스트 인덱스와 `sparseGrams` 토크나이저를 사용하는 전체 텍스트 검색 성능을 개선했습니다. [#93078](https://github.com/ClickHouse/ClickHouse/pull/93078) ([Anton Popov](https://github.com/CurtizJ)).
* x86에서 동적 디스패치를 사용해 T64 코덱 압축 속도를 높였습니다. [#95881](https://github.com/ClickHouse/ClickHouse/pull/95881) ([Raúl Marín](https://github.com/Algunenano)).
* x86에서 32바이트 블록의 LZ4 압축 해제 속도를 높였습니다. [#96778](https://github.com/ClickHouse/ClickHouse/pull/96778) ([Raúl Marín](https://github.com/Algunenano)).
* 이제 텍스트 인덱스 직접 읽기 최적화가 부분적으로 동작합니다 — 구체화된 텍스트 인덱스가 있는 파트는 이를 사용하고, 없는 파트는 기존 필터 표현식으로 처리됩니다. [#96411](https://github.com/ClickHouse/ClickHouse/pull/96411) ([Anton Popov](https://github.com/CurtizJ)).
* 불필요한 데이터 복사를 제거하고 숫자 컬럼에 대한 벡터화된 최소/최대 계산을 활성화해 `INSERT` 중 `minmax` 스킵 인덱스 계산을 최적화했습니다. [#97392](https://github.com/ClickHouse/ClickHouse/pull/97392) ([Raúl Marín](https://github.com/Algunenano)).
* 더 빠른 필터링을 위해 시스템 로그 테이블의 시간 컬럼에 `minmax` 보조 인덱스를, `query_id`/`initial_query_id` 컬럼에 `bloom_filter` 인덱스를 추가했습니다. [#96712](https://github.com/ClickHouse/ClickHouse/pull/96712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 중복 제거가 활성화되지 않았을 때 `INSERT`에서 발생하던 메모리 사용량 회귀를 방지했습니다. [#96503](https://github.com/ClickHouse/ClickHouse/pull/96503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="memory-optimization">
  ### 메모리 최적화
</div>

* 하이라이트와 `VALUES` parsing이 활성화되지 않은 경우, 사용되지 않는 필드를 제거해 `ASTLiteral`의 메모리 사용량을 줄였습니다. [#93974](https://github.com/ClickHouse/ClickHouse/pull/93974) ([Ilya Yatsishin](https://github.com/qoega)).
* 범용 `ASTLiteral` 자식 요소 대신 값 매개변수를 문자열/정수 쌍으로 저장하는 전용 Enum AST 클래스를 도입해 메모리 사용량을 줄였습니다. [#94178](https://github.com/ClickHouse/ClickHouse/pull/94178) ([Ilya Yatsishin](https://github.com/qoega)).
* 범용 AST 리터럴 노드 대신 컬럼 이름을 문자열로 직접 저장하도록 해 named tuple AST 객체의 메모리 사용량을 최적화했습니다. [#94704](https://github.com/ClickHouse/ClickHouse/pull/94704) ([Ilya Yatsishin](https://github.com/qoega)).
* `CachedOnDiskReadBufferFromFile` 구조체의 크기를 약 50배 줄였습니다. [#96098](https://github.com/ClickHouse/ClickHouse/pull/96098) ([Azat Khuzhin](https://github.com/azat)).
* 이제 `HashTable::resize`는 테이블이 비어 있을 때 기존 데이터를 복사하지 않습니다. [#96180](https://github.com/ClickHouse/ClickHouse/pull/96180) ([Raúl Marín](https://github.com/Algunenano)).

<div id="internal-optimizations">
  ### 내부 최적화
</div>

* 쿼리 파이프라인 내부에서 데이터를 파티셔닝하기 위해 "fastrange"(Daniel Lemire) 메서드를 도입하여 병렬 정렬과 조인 성능을 개선했습니다. [#93080](https://github.com/ClickHouse/ClickHouse/pull/93080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* 추가 링커 옵션을 통해 devirtualization을 개선했습니다. [#94737](https://github.com/ClickHouse/ClickHouse/pull/94737) ([Nikita Taranov](https://github.com/nickitat)).
* ZooKeeper 요청을 배칭하여 파트가 많은 `ReplicatedMergeTree` 테이블의 레플리카 클론 성능을 개선했습니다. [#94847](https://github.com/ClickHouse/ClickHouse/pull/94847) ([c-end](https://github.com/c-end)).
* 더 빠른 해싱과 lock-free 카운터로 전환하여 `observeOperations`에서 ZooKeeper 수신 스레드의 CPU 사용량을 20% 이상 줄였습니다. [#95962](https://github.com/ClickHouse/ClickHouse/pull/95962) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="bug-fixes">
  ## 버그 수정
</div>

<Accordion title="모든 버그 수정 사항 (클릭하여 펼치기)">
  ### JOIN 버그 수정

  * outer-to-inner join 최적화가 적용될 때 Join 스토리지에서 발생하던 `INCOMPATIBLE_TYPE_OF_JOIN` 오류를 수정했습니다. [#84292](https://github.com/ClickHouse/ClickHouse/pull/84292) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * `USING` 절과 `join_use_nulls`를 사용하는 여러 조인이 있는 쿼리의 논리 오류를 수정했습니다. [#92251](https://github.com/ClickHouse/ClickHouse/pull/92251) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * `join_use_nulls` 사용 시 join 재정렬 과정에서 발생하던 논리 오류를 수정했습니다. [#92289](https://github.com/ClickHouse/ClickHouse/pull/92289) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * `join_on_disk_max_files_to_merge` 설정으로 인해 발생할 수 있는 비정상 종료 문제를 수정했습니다. [#92335](https://github.com/ClickHouse/ClickHouse/pull/92335) ([Bharat Nallan](https://github.com/bharatnc)).
  * 외부 조인을 내부 조인으로 변환할 때 쿼리 계획이 의도치 않게 변경되어 발생하던 `LOGICAL_ERROR`를 수정했습니다. 또한 조인 중 집계 키에 injective 함수가 사용되는 경우에도 적용되도록 최적화 요구 사항을 완화했습니다. [#92503](https://github.com/ClickHouse/ClickHouse/pull/92503) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * 상수 조건에서 여러 조인을 사용할 때 발생하던 `join_use_nulls` 관련 논리 오류를 수정했습니다. [#92892](https://github.com/ClickHouse/ClickHouse/pull/92892) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * `LowCardinality(Nullable(T))` 컬럼의 `full_sorting_join`에서 `NULL != NULL` 처리 문제를 수정했습니다. [#92924](https://github.com/ClickHouse/ClickHouse/pull/92924) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * 오른쪽 join 키가 희소 컬럼인 경우의 join 결과를 수정했습니다. [#93038](https://github.com/ClickHouse/ClickHouse/pull/93038) ([Amos Bird](https://github.com/amosbird)).
  * `LEFT ANTI JOIN`에 추가적인 후행 조건이 있는 경우 런타임 필터가 잘못 작동하던 문제가 수정되었습니다. [#91824](https://github.com/ClickHouse/ClickHouse/pull/91824) ([Alexander Gololobov](https://github.com/davenger)).
  * 오른쪽 테이블에 대한 합계가 있는 쿼리에서 런타임 필터를 사용할 때 발생하는 논리 오류를 수정했습니다. [#93330](https://github.com/ClickHouse/ClickHouse/pull/93330) ([Alexander Gololobov](https://github.com/davenger)).
  * 일부 경우 `join runtime filters`가 쿼리 계획에 추가될 때 중복된 const 컬럼이 잘못 반환되어 발생하던 논리 오류를 수정했습니다. [#93144](https://github.com/ClickHouse/ClickHouse/pull/93144) ([Alexander Gololobov](https://github.com/davenger)).
  * 일부 정상적인 경우에도 `ILLEGAL_TYPE_OF_ARGUMENT`를 반환하던 join 런타임 필터용 `__applyFilter` 함수가 수정되었습니다. [#93187](https://github.com/ClickHouse/ClickHouse/pull/93187) ([Alexander Gololobov](https://github.com/davenger)).
  * 이미 채워진 오른쪽 테이블과 조인할 때 런타임 필터가 추가되지 않던 문제를 수정했습니다. [#93211](https://github.com/ClickHouse/ClickHouse/pull/93211) ([Alexander Gololobov](https://github.com/davenger)).
  * 런타임 필터가 활성화된 상태에서 조인된 테이블이 동일한 컬럼을 여러 번 반환할 때 발생하던 `NOT_FOUND_COLUMN_IN_BLOCK` 오류를 수정했습니다. [#93526](https://github.com/ClickHouse/ClickHouse/pull/93526) ([Alexander Gololobov](https://github.com/davenger)).
  * `Merge` 테이블에 join 런타임 필터가 적용될 때 `FilterStep`이 제대로 추가되지 않던 문제를 수정했습니다. [#94021](https://github.com/ClickHouse/ClickHouse/pull/94021) ([Alexander Gololobov](https://github.com/davenger)).
  * `USING` 절이 있는 `Join` 스토리지의 JOIN 작업 중 슈퍼타입으로의 형 변환 문제를 수정했습니다. [#94000](https://github.com/ClickHouse/ClickHouse/pull/94000) ([Dmitry Novik](https://github.com/novikd)).
  * 병렬 레플리카 및 MergeTree가 아닌 테이블과의 JOIN을 사용하는 쿼리를 수정했습니다. [#93902](https://github.com/ClickHouse/ClickHouse/pull/93902) ([Igor Nikonov](https://github.com/devcrafter)).
  * 런타임 필터에서 널 허용 조인 컬럼과 관련된 경쟁 상태를 수정했습니다. [#95775](https://github.com/ClickHouse/ClickHouse/pull/95775) ([Hechem Selmi](https://github.com/m-selmi)).
  * `Join` 테이블에서 `Nullable(String)` 키를 사용할 때 빈 문자열이 `NULL`이 되던 문제를 수정했습니다. [#96002](https://github.com/ClickHouse/ClickHouse/pull/96002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 비어 있는 MergeTree 테이블에서 `direct` 조인 알고리즘 사용 시 발생하던 `NOT_SUPPORTED` 오류를 수정했습니다. [#95935](https://github.com/ClickHouse/ClickHouse/pull/95935) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * 외부 조인의 `ON` 조건이 앞서 조인된 여러 테이블의 컬럼을 참조할 때, 잘못된 조인 재정렬로 인해 여러 INNER JOIN과 함께 사용된 외부 조인이 포함된 쿼리에서 잘못된 결과가 반환되던 문제를 수정했습니다. [#96193](https://github.com/ClickHouse/ClickHouse/pull/96193) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * 널 허용 하위 필드가 있는 Tuple 컬럼에서 발생하던 런타임 필터 예외를 수정했습니다. [#96509](https://github.com/ClickHouse/ClickHouse/pull/96509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * CROSS JOIN을 사용하고 병렬 레플리카가 활성화된 쿼리에서 잘못된 결과가 반환되던 문제를 수정했습니다. [#96848](https://github.com/ClickHouse/ClickHouse/pull/96848) ([Igor Nikonov](https://github.com/devcrafter)).
  * INNER JOIN 및 WHERE 절과 함께 사용할 때 중복 행이 생성되던 `arrayJoin` 문제를 수정했습니다. 이 문제는 부분 프레디케이트 푸시다운으로 인해 `arrayJoin`이 포함된 필터가 JOIN 아래로 잘못 푸시되어 발생했습니다. [#96989](https://github.com/ClickHouse/ClickHouse/pull/96989) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * JOIN 양쪽의 컬럼을 `WHERE` 절의 `arrayJoin`이 참조할 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97239](https://github.com/ClickHouse/ClickHouse/pull/97239) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * USING을 포함한 JOIN의 VALUES 절에서 람다 함수 내부에 매처(`*`)를 사용할 때 발생하던 논리 오류를 수정했습니다. [#95661](https://github.com/ClickHouse/ClickHouse/pull/95661) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * `USING` 컬럼의 타입이 서로 다른 경우 matcher (`*`, `table.*`) 및 `analyzer_compatibility_join_using_top_level_identifier`와 관련해 발생할 수 있는 논리 오류를 수정했습니다. [#95808](https://github.com/ClickHouse/ClickHouse/pull/95808) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * `analyzer_compatibility_join_using_top_level_identifier`와 ALIAS 컬럼 관련 논리 오류를 수정했습니다. [#97297](https://github.com/ClickHouse/ClickHouse/pull/97297) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * 기존 분석기에서 중복된 별칭이 있는 JOIN을 사용할 때 발생하던 충돌을 수정했습니다. [#96405](https://github.com/ClickHouse/ClickHouse/pull/96405) ([Ilya Golshtein](https://github.com/ilejn)).

  ### 쿼리 및 분석기 수정 사항

  * 미리 정의된 쿼리 핸들러에서 후행 공백이 삽입 작업 중 데이터로 해석되던 버그를 수정했습니다. [#83604](https://github.com/ClickHouse/ClickHouse/pull/83604) ([Fabian Ponce](https://github.com/FabianPonce)).
  * Enum 요소 확장과 같은 메타데이터 전용 ALTER 이후 프로젝션을 사용하는 집계에서 예외가 발생하는 문제를 수정했습니다. [#84143](https://github.com/ClickHouse/ClickHouse/pull/84143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 윈도우 함수와 여러 인수에 대한 `count_distinct_optimization` 패스가 수정되었습니다. [#92376](https://github.com/ClickHouse/ClickHouse/pull/92376) ([Raúl Marín](https://github.com/Algunenano)).
  * 부정 리터럴이 있는 `arrayElement`의 일관되지 않던 AST 형식화를 수정했습니다. [#92293](https://github.com/ClickHouse/ClickHouse/pull/92293) ([Pavel Kruglov](https://github.com/Avogar)).
  * 상수가 아닌 배열 인수를 사용할 때 `NOT IN`이 잘못된 값을 반환하던 문제가 수정되었습니다. [#93314](https://github.com/ClickHouse/ClickHouse/pull/93314) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * `Nothing` 유형과 관련된 null-safe 비교 오류를 수정했습니다. [#91884](https://github.com/ClickHouse/ClickHouse/pull/91884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * `use_top_k_dynamic_filtering` 최적화와 관련된 `Not found column` 오류를 수정했습니다. [#93316](https://github.com/ClickHouse/ClickHouse/pull/93316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * 스칼라 상관 서브쿼리가 있을 때 서브쿼리에서 사용되지 않는 컬럼이 제거되던 문제를 수정했습니다. [#93273](https://github.com/ClickHouse/ClickHouse/pull/93273) ([Dmitry Novik](https://github.com/novikd)).
  * 키가 부호 있는 정수형일 때 분산 쿼리에서 `optimize_inverse_dictionary_lookup`가 작동하지 않던 문제가 수정되었습니다. [#93848](https://github.com/ClickHouse/ClickHouse/pull/93848) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * 분산 `remote()` 쿼리에서 `lag`/`lead`가 작동하지 않는 문제를 수정했습니다. [#93858](https://github.com/ClickHouse/ClickHouse/pull/93858) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * `WHERE`에서 `not match(...)`를 사용할 때 데이터 스키핑 로직 문제로 잘못된 결과가 발생하던 버그를 수정했습니다. [#92726](https://github.com/ClickHouse/ClickHouse/pull/92726) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * `WHERE` 절에서 `not materialize(...)` 또는 `not CAST(...)`를 사용할 경우 잘못된 결과가 발생하던 데이터 스키핑 로직의 버그를 수정했습니다. [#93017](https://github.com/ClickHouse/ClickHouse/pull/93017) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * 빈 배열이 `has` 함수에 사용될 때 발생하던 인덱스 분석 중의 논리 오류를 수정했습니다. [#92995](https://github.com/ClickHouse/ClickHouse/pull/92995) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * 빈 튜플을 `Map` 컬럼과 함께 사용할 때 발생하던 드문 논리 오류를 수정했습니다. [#93814](https://github.com/ClickHouse/ClickHouse/pull/93814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * 거짓 조건에서 PK 세그먼트 분할을 사용하는 쿼리가 실패하던 문제를 수정했습니다. [#92815](https://github.com/ClickHouse/ClickHouse/pull/92815) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * 로컬 테이블과 원격/분산 테이블을 함께 머지할 때 `hostName()`에서 `ILLEGAL_COLUMN` 오류를 발생시키던 `Merge` 테이블 엔진의 쿼리 계획 문제가 수정되었습니다. [#93286](https://github.com/ClickHouse/ClickHouse/pull/93286) ([Jinlin](https://github.com/withlin)).
  * 별칭이 있는 테이블을 대상으로 하는 `Merge` 엔진에서 발생하던 `NO_SUCH_COLUMN_IN_TABLE` 오류를 수정했습니다. [#92910](https://github.com/ClickHouse/ClickHouse/pull/92910) ([Pavel Kruglov](https://github.com/Avogar)).
  * 여러 컬럼에 대한 프레디케이트, 블룸 필터 스킵 인덱스, 그리고 `OR` 및 `NOT` 조건을 함께 사용하는 `SELECT` 쿼리에서 일관되지 않은 결과가 반환되던 문제를 수정했습니다. [#94026](https://github.com/ClickHouse/ClickHouse/pull/94026) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * 서브컬럼이 포함된 필터가 있을 때 프로젝션이 적용되지 않던 문제를 수정했습니다. [#93141](https://github.com/ClickHouse/ClickHouse/pull/93141) ([Pavel Kruglov](https://github.com/Avogar)).
  * 머지 중 프로젝션이 다시 빌드될 때 발생하던 `_part_offset` 손상을 수정하고, 불필요한 읽기를 줄여 프로젝션 처리를 최적화했습니다. [#93827](https://github.com/ClickHouse/ClickHouse/pull/93827) ([Amos Bird](https://github.com/amosbird)).
  * 실질적으로 동일한 컬럼의 별칭인 서로 다른 보간 컬럼이 block 내에서 같은 컬럼으로 축약되지 않도록 했습니다. [#93197](https://github.com/ClickHouse/ClickHouse/pull/93197) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
  * 머지 중 projection을 재구축할 때 사용되지 않는 컬럼을 제거해 메모리 사용량을 줄이고 임시 파트 생성 수를 줄였습니다. [#93233](https://github.com/ClickHouse/ClickHouse/pull/93233) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * 분산 쿼리에서 음수 `LIMIT/OFFSET`를 사용한 일부 경우에 발생하던 논리 오류를 수정했습니다. [#95357](https://github.com/ClickHouse/ClickHouse/pull/95357) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * 분산 쿼리에서 소수값 `LIMIT/OFFSET`를 사용했을 때 일부 경우에 발생하던 논리적 오류를 수정했습니다. [#96475](https://github.com/ClickHouse/ClickHouse/pull/96475) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * `transform_null_in`이 활성화된 상태에서 `IN` 함수가 `NULL` 값에 대해 잘못된 결과를 반환하던 문제를 수정했습니다. [#95674](https://github.com/ClickHouse/ClickHouse/pull/95674) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * 단일 컬럼 참조에서 `UNSUPPORTED_METHOD` 오류로 실패하던 `IN (col)` 문제를 수정했습니다. [#97646](https://github.com/ClickHouse/ClickHouse/pull/97646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 집계 인수가 `LowCardinality(Nullable)`일 때 `optimize_syntax_fuse_functions`가 `sum`/`count`/`avg`를 `sumCount()`로 재작성하던 문제를 수정했습니다. [#96239](https://github.com/ClickHouse/ClickHouse/pull/96239) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * `not IN` 및 `not has` 함수의 잘못된 파티션 프루닝을 수정했습니다. [#96241](https://github.com/ClickHouse/ClickHouse/pull/96241) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * prewhere의 람다 표현식으로 인해 발생한 prewhere 필터 오류를 수정했습니다. [#95395](https://github.com/ClickHouse/ClickHouse/pull/95395) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
  * 구체적인 값이 필요한 위치에 람다 표현식이 전달될 때 쿼리 분석기에서 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#96892](https://github.com/ClickHouse/ClickHouse/pull/96892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 람다 함수가 포함된 특정 표현식에서 발생하던 널 포인터 역참조 문제를 수정했습니다. [#96479](https://github.com/ClickHouse/ClickHouse/pull/96479) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * CTE와 서브쿼리에서 `file`과 같은 테이블 함수에 각 서브쿼리의 `SETTINGS`가 적용되지 않던 문제가 수정되었습니다. [#96882](https://github.com/ClickHouse/ClickHouse/pull/96882) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 잘못된 쿼리 결과를 초래할 수 있었던 CTE folded constants 관련 쿼리 조건 캐시 해시 충돌을 수정했습니다. [#96172](https://github.com/ClickHouse/ClickHouse/pull/96172) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 분석기가 활성화된 상태에서 `merge()` 테이블 함수를 통해 ALIAS 컬럼 안에 람다 표현식이 있는 테이블을 쿼리할 때 발생하던 `BAD_ARGUMENTS` 오류를 수정했습니다. [#97551](https://github.com/ClickHouse/ClickHouse/pull/97551) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `EXCEPT ALL` 및 `INTERSECT ALL`이 행의 중복 횟수를 무시하고 `DISTINCT` 버전처럼 동작하던 문제가 수정되었습니다. [#96876](https://github.com/ClickHouse/ClickHouse/pull/96876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `PRECEDING` 오프셋이 큰 경우 `WindowTransform`에서 발생하던 assertion failure를 수정했습니다. [#96026](https://github.com/ClickHouse/ClickHouse/pull/96026) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `group_by_use_nulls = 1` 및 `CUBE`/`ROLLUP`/`GROUPING SETS`와 함께 윈도우 함수를 사용할 때 발생하던 예외 문제를 수정했습니다. [#96878](https://github.com/ClickHouse/ClickHouse/pull/96878) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `GROUPING SETS`, `group_by_use_nulls`, 그리고 `LowCardinality`가 적용된 `Tuple`의 상호작용으로 인해 예상치 못한 블록 구조가 생성되던 문제를 수정했습니다. [#96358](https://github.com/ClickHouse/ClickHouse/pull/96358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `Nullable(Tuple(...))` 내부에 `LowCardinality(Nullable(...))`가 포함된 키를 사용할 때 `GROUP BY ... WITH ROLLUP/CUBE`에서 발생하던 논리 오류를 수정했습니다. [#97647](https://github.com/ClickHouse/ClickHouse/pull/97647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `if` 또는 `transform`이 `Nullable(String)`을 반환할 때 `IfTransformStringsToEnumPass`에서 발생하는 assertion failure 문제를 수정했습니다. [#97002](https://github.com/ClickHouse/ClickHouse/pull/97002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `optimize_inverse_dictionary_lookup`가 `dictGet(...)` 프레디케이트를 재작성할 때 `CREATE TEMPORARY TABLE` 권한이 없는 사용자에게 발생하던 `ACCESS_DENIED` 문제를 수정했습니다. [#97484](https://github.com/ClickHouse/ClickHouse/pull/97484) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * PREWHERE와 타입 추론이 함께 사용되는 분산 쿼리의 드문 경우에 발생하던 `UInt64`와 `Int32` 간 `if` 함수 타입 불일치를 수정했습니다. [#96012](https://github.com/ClickHouse/ClickHouse/pull/96012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `Bool` 타입이 포함된 JIT 컴파일 쿼리 관련 문제가 수정되었습니다. [#96013](https://github.com/ClickHouse/ClickHouse/pull/96013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * JIT로 컴파일된 표현식에서 `DateTime`이 `DateTime64`로 변환될 때 잘못된 결과가 나오던 문제를 수정했습니다(예: `CASE`/`if`/`multiIf`에서 DateTime 타입이 혼합된 경우). [#96879](https://github.com/ClickHouse/ClickHouse/pull/96879) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 가변 폭 포맷터를 사용할 때 `formatDateTime`에서 발생하던 초기화되지 않은 값 사용 문제를 수정했습니다. [#96133](https://github.com/ClickHouse/ClickHouse/pull/96133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 호환되지 않는 타입으로 호출했을 때 `indexOfAssumeSorted`에서 `std::terminate`가 발생하던 문제를 수정했습니다. [#96877](https://github.com/ClickHouse/ClickHouse/pull/96877) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 이제 Geometry 함수는 `Geometry` variant type 외에도 개별 Geometry 하위 타입을 허용합니다. [#97571](https://github.com/ClickHouse/ClickHouse/pull/97571) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * row policy/PREWHERE 및 FINAL이 포함된 쿼리에서 인덱스로 인해 결과가 달라지던 문제를 수정했습니다. [#97076](https://github.com/ClickHouse/ClickHouse/pull/97076) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * read-in-order 최적화에서 행 정책을 사용할 수 있게 했습니다. [#97538](https://github.com/ClickHouse/ClickHouse/pull/97538) ([Janos Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * `QUALIFY` 절과 함께 텍스트 인덱스가 적용된 컬럼을 사용할 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97313](https://github.com/ClickHouse/ClickHouse/pull/97313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `WHERE` 절에 `AND`/`OR` 표현식이 32개를 초과하는 경우 발생할 수 있던 크래시를 수정했습니다. [#97698](https://github.com/ClickHouse/ClickHouse/pull/97698) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * `FINAL`을 사용하는 테이블에서 star expansion과 함께 `indexHint`를 사용할 때 `removeUnusedColumns` 최적화의 블록 구조 불일치 문제를 수정했습니다. [#97622](https://github.com/ClickHouse/ClickHouse/pull/97622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 괄호 안의 별칭이 있는 tuple 리터럴에서 AST 포맷 왕복 시 발생하던 불일치 문제를 수정했습니다. [#97418](https://github.com/ClickHouse/ClickHouse/pull/97418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `NOT (1, 1, 1)`에 대한 AST 포맷의 불일치를 수정했습니다. [#97653](https://github.com/ClickHouse/ClickHouse/pull/97653) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### MergeTree 및 스토리지 버그 수정

  * 파일 시스템이 대소문자를 구분하지 않는 경우, MergeTree에서 파일 이름을 항상 해시로 대체하도록 변경했습니다. 이전에는 macOS에서 컬럼/서브컬럼 이름이 대소문자만 다른 경우 데이터 손상으로 이어질 수 있었습니다. [#86559](https://github.com/ClickHouse/ClickHouse/pull/86559) ([Pavel Kruglov](https://github.com/Avogar)).
  * materialized view는 이제 생성된 데이터베이스를 실행 컨텍스트로 사용하므로, 뷰의 SELECT 쿼리에서 데이터베이스를 명시적으로 지정하지 않아도 됩니다. [#88193](https://github.com/ClickHouse/ClickHouse/pull/88193) ([Dmitry Kovalev](https://github.com/dk-github)).
  * materialized view 내에서 사용하는 기반 쿼리에 대해 CREATE 단계에서 전체 권한 검사를 추가했습니다. [#89180](https://github.com/ClickHouse/ClickHouse/pull/89180) ([pufit](https://github.com/pufit)).
  * 트랜잭션 없이 수행된 mutation이 이후 롤백된 활성 트랜잭션의 파트에 적용되던 논리 오류를 수정했습니다. [#90469](https://github.com/ClickHouse/ClickHouse/pull/90469) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * 일반 데이터베이스를 atomic 데이터베이스로 변환한 후 `system.warnings`가 올바르게 갱신되지 않던 문제를 수정했습니다. [#90473](https://github.com/ClickHouse/ClickHouse/pull/90473) ([sdk2](https://github.com/sdk2)).
  * `ATTACH AS REPLICATED` 수행 중 발생하던 `LOGICAL_ERROR: Storage does not support transaction` 오류를 수정했습니다. [#91772](https://github.com/ClickHouse/ClickHouse/pull/91772) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * `ratio_of_defaults_for_sparse_serialization=0.0`인 희소 컬럼에 mutation을 수행한 뒤 발생할 수 있던 `FILE_DOESNT_EXIST` 오류를 수정했습니다. [#92860](https://github.com/ClickHouse/ClickHouse/pull/92860) ([Pavel Kruglov](https://github.com/Avogar)).
  * alter로 `ratio_of_defaults_for_sparse_serialization`을 `1.0`으로 변경한 뒤 희소 컬럼 mutation 이후 발생할 수 있던 `FILE_DOESNT_EXIST` 오류를 수정했습니다. [#93016](https://github.com/ClickHouse/ClickHouse/pull/93016) ([Pavel Kruglov](https://github.com/Avogar)).
  * 공유 파트에서 TOCTOU 경쟁 상태로 인해 오래된 파트가 사용될 수 있던 문제를 수정했습니다. [#93022](https://github.com/ClickHouse/ClickHouse/pull/93022) ([Azat Khuzhin](https://github.com/azat)).
  * MergeTree에서 mutation 중 원본 파트의 직렬화 정보 설정을 상속하도록 변경하여, 데이터 타입 직렬화 변경 후 mutation이 적용된 파트에서 잘못된 쿼리 결과가 발생할 수 있던 문제를 수정했습니다. [#92419](https://github.com/ClickHouse/ClickHouse/pull/92419) ([Pavel Kruglov](https://github.com/Avogar)).
  * 같은 이름의 컬럼과 하위 컬럼 간 충돌로 인해 잘못된 직렬화와 쿼리 실패가 발생할 수 있던 문제를 수정했습니다. [#92453](https://github.com/ClickHouse/ClickHouse/pull/92453) ([Pavel Kruglov](https://github.com/Avogar)).
  * 파티션 표현식에 하위 컬럼이 포함된 테이블에 데이터를 삽입할 때 발생하던 `NOT_FOUND_COLUMN_IN_BLOCK`를 수정했습니다. [#92905](https://github.com/ClickHouse/ClickHouse/pull/92905) ([Pavel Kruglov](https://github.com/Avogar)).
  * 원본 테이블을 alter하는 동안 MV에서 subcolumn이 누락될 수 있던 문제를 수정했습니다. [#93276](https://github.com/ClickHouse/ClickHouse/pull/93276) ([Pavel Kruglov](https://github.com/Avogar)).
  * 중복 제거 경합으로 인해 `ReplicatedMergeTree`를 복원할 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#93612](https://github.com/ClickHouse/ClickHouse/pull/93612) ([Pablo Marcos](https://github.com/pamarcos)).
  * 직접 역직렬화 시 TTL 업데이트에 희소 컬럼을 사용하도록 수정하여 `Unexpected type of result TTL column` 오류를 방지했습니다. [#93619](https://github.com/ClickHouse/ClickHouse/pull/93619) ([Pavel Kruglov](https://github.com/Avogar)).
  * TTL 집계 중 필요 시 SET 표현식 결과의 `LowCardinality` 래퍼를 복원했습니다. [#92971](https://github.com/ClickHouse/ClickHouse/pull/92971) ([Seva Potapov](https://github.com/seva-potapov)).
  * `ALTER TABLE REWRITE PARTS`에서 발생하던 `Cannot add action to empty ExpressionActionsChain` 문제를 수정했습니다. [#92754](https://github.com/ClickHouse/ClickHouse/pull/92754) ([Azat Khuzhin](https://github.com/azat)).
  * `ON CLUSTER`를 사용할 때 `CREATE USER` 인증 메서드에서 발생하던 쿼리 매개변수 치환 문제를 수정했습니다. [#92777](https://github.com/ClickHouse/ClickHouse/pull/92777) ([xiaohuanlin](https://github.com/xiaohuanlin)).
  * MergeTree 테이블이 읽기 전용 디스크에 있는 경우, 시작 시 임시 디렉터리를 삭제하려는 시도를 더 이상 하지 않습니다. [#92748](https://github.com/ClickHouse/ClickHouse/pull/92748) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 서브컬럼 기반으로 생성된 스킵 인덱스의 머티리얼라이즈 문제를 수정했습니다. [#93708](https://github.com/ClickHouse/ClickHouse/pull/93708) ([Anton Popov](https://github.com/CurtizJ)).
  * 종속 인덱스가 있는 `CLEAR COLUMN` 문제를 수정했습니다. [#94057](https://github.com/ClickHouse/ClickHouse/pull/94057) ([Raúl Marín](https://github.com/Algunenano)).
  * 재시작 후 interserver host가 변경되면 복제된 데이터베이스가 ATTACH되지 않던 문제를 수정했습니다. [#93779](https://github.com/ClickHouse/ClickHouse/pull/93779) ([Tuan Pham Anh](https://github.com/tuanpach)).
  * `CREATE TABLE ... AS urlCluster()`와 `Replicated` 데이터베이스 엔진 관련 논리 오류를 수정했습니다. [#92418](https://github.com/ClickHouse/ClickHouse/pull/92418) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * `REPLACE PARTITION`과 백그라운드 뮤테이션 사이의 경쟁 상태를 수정하여 기존 데이터와 새 데이터가 동시에 보일 수 있던 문제를 해결했습니다. [#96955](https://github.com/ClickHouse/ClickHouse/pull/96955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `REPLACE PARTITION`과 백그라운드 뮤테이션 사이에 남아 있던 경쟁 상태를 수정해, 이전 데이터가 다시 나타날 수 있는 문제를 해결했습니다. [#97105](https://github.com/ClickHouse/ClickHouse/pull/97105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `PartCheckThread`가 이미 뮤테이션이 적용된 파트에 대해 `GET_PART`를 다시 큐에 넣으면서 발생하던 멈춰 있던 뮤테이션 문제를 수정했습니다. [#97162](https://github.com/ClickHouse/ClickHouse/pull/97162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 이전에 동일한 컬럼에 경량 업데이트가 수행된 경우 `ALTER TABLE DROP COLUMN`이 실패하던 문제를 수정했습니다. [#96861](https://github.com/ClickHouse/ClickHouse/pull/96861) ([Anton Popov](https://github.com/CurtizJ)).
  * 경량 업데이트 중 patch parts를 적용할 때 발생하던 null 포인터 역참조 문제를 수정했습니다. [#97583](https://github.com/ClickHouse/ClickHouse/pull/97583) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 알 수 없는 프로젝션이 있는 파트는 더 이상 영구 손실로 표시되지 않습니다. [#95952](https://github.com/ClickHouse/ClickHouse/pull/95952) ([Mikhail Artemenko](https://github.com/Michicosun)).
  * `CREATE TABLE ... CLONE AS ...`가 원본 테이블의 전체 한정 이름을 무시하던 문제를 수정했습니다. [#96415](https://github.com/ClickHouse/ClickHouse/pull/96415) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
  * 메타데이터 변경 시 복제된 테이블에서 암시적 인덱스가 재생성되던 문제를 수정했습니다. [#96600](https://github.com/ClickHouse/ClickHouse/pull/96600) ([Raúl Marín](https://github.com/Algunenano)).
  * 별칭 컬럼이 있는 암시적 인덱스를 수정하고, 생성 전에 전체 유효성 검사를 수행하도록 했습니다. [#97115](https://github.com/ClickHouse/ClickHouse/pull/97115) ([Raúl Marín](https://github.com/Algunenano)).
  * TTL 머지 후 모든 행이 필터링되었을 때 `_minmax_count_projection`을 통해 `min(timestamp)`가 epoch(`1970-01-01`)을 반환하던 문제를 수정했습니다. [#96703](https://github.com/ClickHouse/ClickHouse/pull/96703) ([Raquel Barbadillo](https://github.com/rbarbadillo)).
  * `use_const_adaptive_granularity`와 `index_granularity_bytes`의 조합(비적응형 세분화 수준)으로 인해 계산 오류가 발생하던 문제를 수정했습니다. [#96143](https://github.com/ClickHouse/ClickHouse/pull/96143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 비적응형 인덱스 세분화 수준을 사용하는 테이블을 `ORDER BY ... LIMIT`로 읽을 때 발생하던 `Number of rows in lazy chunk does not match number of offsets` 예외를 수정했습니다. [#97270](https://github.com/ClickHouse/ClickHouse/pull/97270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 다른 레플리카가 공유 파트를 가져오는 작업을 마치기 전에 삭제될 수 있었던 zero-copy 복제의 회귀 문제가 수정되었습니다. [#95597](https://github.com/ClickHouse/ClickHouse/pull/95597) ([filimonov](https://github.com/filimonov)).
  * `SYSTEM RESTART REPLICA`에서 ZooKeeper 이외의 예외로 테이블 재생성에 실패할 경우 데이터베이스에서 테이블이 누락되어 `DatabaseReplicated`의 메타데이터 다이제스트 불일치가 발생하던 문제를 수정했습니다. [#97276](https://github.com/ClickHouse/ClickHouse/pull/97276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `ALTER TABLE MODIFY COLUMN`으로 컬럼 유형이 변경된 뒤 컬럼 통계를 생성할 때 발생하던 `assert_cast` 예외를 수정했습니다. [#97027](https://github.com/ClickHouse/ClickHouse/pull/97027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 테이블에 정의된 통계 정보가 없으면 ClickHouse는 더 이상 이를 로드하려고 시도하지 않아 불필요한 오버헤드를 피합니다. [#96233](https://github.com/ClickHouse/ClickHouse/pull/96233) ([Han Fei](https://github.com/hanfei1991)).
  * 분산 DDL을 기다리는 중 복제된 데이터베이스를 동시에 삭제할 때 발생하던 `There was an error: Cannot obtain error message` 논리 오류를 수정했습니다. [#95664](https://github.com/ClickHouse/ClickHouse/pull/95664) ([Alexander Tokmakov](https://github.com/tavplubix)).
  * 테이블에 널 허용 기본 키(primary key)가 있고, 쿼리에서 첫 번째 인수로 상수를 사용하는 `coalesce`를 쓸 때 `KeyCondition`에서 발생하던 논리 오류를 수정했습니다. [#96340](https://github.com/ClickHouse/ClickHouse/pull/96340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### 데이터 타입 및 직렬화(serialization) 버그 수정

  * Dynamic/JSON 타입에서 size 서브컬럼을 읽을 때 발생할 수 있던 오류를 수정했습니다. [#95573](https://github.com/ClickHouse/ClickHouse/pull/95573) ([Pavel Kruglov](https://github.com/Avogar)).
  * JSON 배열에 `tupleElement`를 적용할 때 발생하던 크래시를 수정했습니다. [#95647](https://github.com/ClickHouse/ClickHouse/pull/95647) ([Pavel Kruglov](https://github.com/Avogar)).
  * 중첩 경로를 가진 JSON에서 `tupleElement`를 실행할 때 잘못된 결과를 반환하던 문제를 수정했습니다. [#95907](https://github.com/ClickHouse/ClickHouse/pull/95907) ([Pavel Kruglov](https://github.com/Avogar)).
  * 경로에 type hint가 지정된 JSON에서 `tupleElement`가 예외를 발생시키는 문제를 수정했습니다. [#97728](https://github.com/ClickHouse/ClickHouse/pull/97728) ([Pavel Kruglov](https://github.com/Avogar)).
  * JSON 데이터 타입의 스키핑 경로를 수정했습니다 — 이전에는 `JSON(SKIP path)`가 `path` 접두사로 시작하는 모든 키(`pathpath` 같은 키 포함)를 건너뛰어 데이터 손실이 발생할 수 있었습니다. 이제는 정확히 일치하는 키만 건너뜁니다. [#95948](https://github.com/ClickHouse/ClickHouse/pull/95948) ([Pavel Kruglov](https://github.com/Avogar)).
  * JSON의 형식이 지정된 경로에 `type_json_allow_duplicated_key_with_literal_and_nested_object`가 적용되도록 수정했습니다. [#97422](https://github.com/ClickHouse/ClickHouse/pull/97422) ([Pavel Kruglov](https://github.com/Avogar)).
  * JSON 타입에서 호환되지 않는 타입 지정 경로 검사 관련 문제를 수정했습니다. [#92539](https://github.com/ClickHouse/ClickHouse/pull/92539) ([Pavel Kruglov](https://github.com/Avogar)).
  * JSON에서 경로 'skip'의 type hint 생성 문제를 수정했습니다. [#92842](https://github.com/ClickHouse/ClickHouse/pull/92842) ([Pavel Kruglov](https://github.com/Avogar)).
  * 분석기에서 컬럼 별칭 내 동적 서브컬럼 해석 문제를 수정했습니다. [#92583](https://github.com/ClickHouse/ClickHouse/pull/92583) ([Pavel Kruglov](https://github.com/Avogar)).
  * Variant 컬럼에 대한 잘못된 in-place filtering 최적화로 인해 발생한 `Nested columns sizes are inconsistent with local_discriminators` 오류를 수정했습니다. [#96410](https://github.com/ClickHouse/ClickHouse/pull/96410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `GROUP BY`에서 `Variant` 인수를 사용한 `ifNull`에서 발생하던 충돌을 수정했습니다. [#96790](https://github.com/ClickHouse/ClickHouse/pull/96790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `arrayROCAUC`와 같이 const 인수가 필요한 함수에서 발생하던 `FunctionVariantAdaptor`의 논리 오류를 수정했습니다. [#97116](https://github.com/ClickHouse/ClickHouse/pull/97116) ([Bharat Nallan](https://github.com/bharatnc)).
  * `FunctionVariantAdaptor`에서 함수가 `Nothing` 유형을 반환할 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97213](https://github.com/ClickHouse/ClickHouse/pull/97213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * NULL을 LowCardinality 타입을 포함한 Variant 컬럼과 비교할 때 발생하던 논리 예외를 수정했습니다. [#97379](https://github.com/ClickHouse/ClickHouse/pull/97379) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 인수에 내부적으로 `LowCardinality`를 포함한 `Variant` 유형이 있을 때 `concat`에서 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97654](https://github.com/ClickHouse/ClickHouse/pull/97654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `LowCardinality` 컬럼이 `널 허용`으로 변환될 때 잘못된 결과가 반환되던 문제가 수정되었습니다. [#96483](https://github.com/ClickHouse/ClickHouse/pull/96483) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * `cast_keep_nullable`가 활성화되었을 때 `CAST`에서 `LowCardinality Nullable` 타입을 올바르게 처리하도록 수정했습니다. [#95747](https://github.com/ClickHouse/ClickHouse/pull/95747) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 복잡한 중첩 타입을 캐스팅할 때 발생하던 `ColumnNullable is not compatible with original` 예외를 수정했습니다. [#96924](https://github.com/ClickHouse/ClickHouse/pull/96924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `Nullable(Tuple(... Nullable(T) ...))` 타입의 서브컬럼에 `isNull`/`isNotNull`를 사용할 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97582](https://github.com/ClickHouse/ClickHouse/pull/97582) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 배열을 `QBit`로 변환할 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97413](https://github.com/ClickHouse/ClickHouse/pull/97413) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 희소 컬럼과 해당 서브컬럼을 함께 읽을 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97515](https://github.com/ClickHouse/ClickHouse/pull/97515) ([Pavel Kruglov](https://github.com/Avogar)).
  * PREWHERE가 있는 Tuple에서 희소 `Nullable(String)`의 `.size` 서브컬럼을 읽을 때 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#97264](https://github.com/ClickHouse/ClickHouse/pull/97264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 내부 희소 서브컬럼이 있는 컬럼을 처리할 때 `Set` 및 `MergeTreeIndexSet`에서 발생하던 assertion 실패를 수정했습니다. [#97493](https://github.com/ClickHouse/ClickHouse/pull/97493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 빈 Tuple 컬럼을 정렬할 때 발생할 수 있던 오류 `SIZES_OF_COLUMNS_DOESNT_MATCH`를 수정했습니다. [#92520](https://github.com/ClickHouse/ClickHouse/pull/92520) ([Pavel Kruglov](https://github.com/Avogar)).
  * 반복도가 매우 높은 문자열 데이터에 영향을 미치던 네이티브 Parquet 리더의 `DELTA_BYTE_ARRAY` 디코딩 버그를 수정했습니다. [#91929](https://github.com/ClickHouse/ClickHouse/pull/91929) ([Daniel Muino](https://github.com/dmuino)).
  * Parquet 파일을 읽는 동안 prewhere 표현식의 일부가 쿼리의 다른 위치에서도 사용될 때 발생하던 assertion을 수정했습니다. [#90635](https://github.com/ClickHouse/ClickHouse/pull/90635) ([Max Kainov](https://github.com/maxknv)).
  * PREWHERE filter 컬럼에 불리언이 아닌 UInt8 값이 포함된 경우 Parquet V3 네이티브 리더에서 발생하던 `LOGICAL_ERROR`를 수정했습니다. [#96594](https://github.com/ClickHouse/ClickHouse/pull/96594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Tuple 컬럼 뒤에 JSON 컬럼이 오는 경우 이전 리더의 Parquet 스키마 추론 문제를 수정했습니다. [#92867](https://github.com/ClickHouse/ClickHouse/pull/92867) ([Michael Kolupaev](https://github.com/al13n321)).
  * glob 스키마 추론 시 추론된 파일에만이 아니라 모든 파일에 대해 스키마가 캐시되던 문제를 수정했습니다. [#92006](https://github.com/ClickHouse/ClickHouse/pull/92006) ([Pavel Kruglov](https://github.com/Avogar)).
  * 빈 파일에서 `ProtobufList` 포맷을 읽을 때 발생하던 문제와 빈 테이블에서 유령 레코드가 생성되던 문제를 수정했습니다. [#96007](https://github.com/ClickHouse/ClickHouse/pull/96007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `Gorilla` 코덱에서 명시적으로 지정한 크기가 데이터 타입 크기와 일치하지 않을 때 발생하던 회귀 문제가 수정되었습니다. [#96118](https://github.com/ClickHouse/ClickHouse/pull/96118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 이제 PostgreSQL engine에서 `BOOLEAN[]`를 올바르게 읽을 수 있습니다. [#96006](https://github.com/ClickHouse/ClickHouse/pull/96006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * SQLite TEXT 컬럼에서 UUID 컬럼을 읽을 때 발생하던 논리 오류를 수정했습니다. [#96016](https://github.com/ClickHouse/ClickHouse/pull/96016) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * SQLite engine의 `DateTime`, `Date`, `UUID` 및 기타 타입 변환 문제를 수정했습니다. [#96017](https://github.com/ClickHouse/ClickHouse/pull/96017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * SQLite 및 PostgreSQL에 대한 쿼리에서 `FixedString` 값이 잘못 이스케이프되던 문제를 수정했습니다. [#96019](https://github.com/ClickHouse/ClickHouse/pull/96019) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 숫자를 enum으로 변환하기 위한 `input_format_numbers_enum_on_conversion_error` 설정이 추가되었습니다. [#56240](https://github.com/ClickHouse/ClickHouse/pull/56240) ([Nikolay Degterinsky](https://github.com/evillique)).

  ### 텍스트 인덱스 및 스킵 인덱스 버그 수정

  * 행 수가 4,294,967,295개를 초과하는 파트가 있는 테이블에서는 잘못된 쿼리 결과를 방지하기 위해 텍스트 인덱스 생성 및 구체화가 일시적으로 비활성화되었습니다. [#92644](https://github.com/ClickHouse/ClickHouse/pull/92644) ([Anton Popov](https://github.com/CurtizJ)).
  * MergeTree 테이블의 텍스트 인덱스 머지 중 발생하던 여러 크래시를 수정했습니다. [#92925](https://github.com/ClickHouse/ClickHouse/pull/92925) ([Anton Popov](https://github.com/CurtizJ)).
  * 복잡한 표현식(예: `concat(col1, col2)`)을 기반으로 생성된 텍스트 인덱스의 머지 문제를 수정했습니다. [#93073](https://github.com/ClickHouse/ClickHouse/pull/93073) ([Anton Popov](https://github.com/CurtizJ)).
  * 인덱스에 토큰이 하나도 없을 때 발생하던 배열 컬럼의 텍스트 인덱스 분석 문제를 수정했습니다. [#93457](https://github.com/ClickHouse/ClickHouse/pull/93457) ([Anton Popov](https://github.com/CurtizJ)).
  * 서브컬럼을 기반으로 생성된 텍스트 인덱스의 재구성 문제가 수정되었습니다. [#93326](https://github.com/ClickHouse/ClickHouse/pull/93326) ([Anton Popov](https://github.com/CurtizJ)).
  * 중복 검색 쿼리에서 텍스트 인덱스 직접 읽기 문제를 수정했습니다. [#93516](https://github.com/ClickHouse/ClickHouse/pull/93516) ([Anton Popov](https://github.com/CurtizJ)).
  * `has`, `mapContainsKey`, `mapContainsValue` 함수에서 텍스트 인덱스 사용 여부에 따라 서로 다른 결과가 반환될 수 있었던 텍스트 인덱스 분석상의 불일치를 수정했습니다. [#93578](https://github.com/ClickHouse/ClickHouse/pull/93578) ([Anton Popov](https://github.com/CurtizJ)).
  * `system.parts`의 텍스트 인덱스의 압축되지 않은 크기 계산을 수정했습니다. [#92832](https://github.com/ClickHouse/ClickHouse/pull/92832) ([Anton Popov](https://github.com/CurtizJ)).
  * ngram 길이가 > 8인 `ngrambf_v1` 인덱스에서 예외가 발생하던 문제를 해결했습니다. [#92672](https://github.com/ClickHouse/ClickHouse/pull/92672) ([Robert Schulze](https://github.com/rschu1ze)).
  * UTF-8이 아닌 데이터에서 `ngram_bf` 인덱스로 인해 초기화되지 않은 메모리를 읽던 문제가 수정되었습니다. [#93663](https://github.com/ClickHouse/ClickHouse/pull/93663) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 벡터 유사도 인덱스에서 `stack-use-after-scope` 문제를 수정했습니다. [#96259](https://github.com/ClickHouse/ClickHouse/pull/96259) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 스킵 인덱스 표현식의 결과로 상수 컬럼이 생성될 때 발생하던 논리 오류를 수정했습니다. [#96880](https://github.com/ClickHouse/ClickHouse/pull/96880) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 빈 표현식 `()`을 인덱스로 지정해 테이블을 생성할 때 유효하지 않은 메모리 접근이 발생하던 문제를 수정했습니다. [#96363](https://github.com/ClickHouse/ClickHouse/pull/96363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 비활성화된 `use_primary_key`와 매우 많은 수의 OR 조건이 있는 인덱스 분석에서 발생하던 use-after-free 문제를 수정했습니다. [#96112](https://github.com/ClickHouse/ClickHouse/pull/96112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 경량 업데이트에서 `WHERE`의 `IN` 절 서브쿼리와 함께 사용할 때 프라이머리 인덱스 사용을 수정했습니다. [#92838](https://github.com/ClickHouse/ClickHouse/pull/92838) ([Anton Popov](https://github.com/CurtizJ)).
  * hypothesis 인덱스를 검증할 때 올바른 오류 코드를 사용하도록 수정했습니다. [#92559](https://github.com/ClickHouse/ClickHouse/pull/92559) ([Raúl Marín](https://github.com/Algunenano)).

  ### 데이터 레이크 버그 수정

  * split-by-buckets 모드에서 Iceberg를 읽을 때 단일 노드 클러스터에서 발생하던 충돌 문제를 수정했습니다. [#91553](https://github.com/ClickHouse/ClickHouse/pull/91553) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Iceberg에서 ORDER BY 튜플 문제를 수정했습니다. [#93225](https://github.com/ClickHouse/ClickHouse/pull/93225) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * DataLakeCatalog의 Azure ADLS Gen2 발급 자격 증명 지원을 수정했습니다 — Iceberg REST 카탈로그에서 `adls.sas-token.*` 키를 파싱하고 ABFSS URL 파싱 문제를 해결했습니다. [#93477](https://github.com/ClickHouse/ClickHouse/pull/93477) ([Karun Anantharaman](https://github.com/karunmotorq)).
  * Iceberg용 `Date`를 `Date32`로 변경했습니다. [#95322](https://github.com/ClickHouse/ClickHouse/pull/95322) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Iceberg의 ORDER BY에서 발생하던 크래시를 수정했습니다. [#96484](https://github.com/ClickHouse/ClickHouse/pull/96484) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Iceberg 파티셔닝 문제를 수정했습니다. [#96620](https://github.com/ClickHouse/ClickHouse/pull/96620) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Iceberg 매니페스트 항목에서 position delete reference가 NULL인 경우 데이터 파일의 잘못된 범위를 수정했습니다. [#96061](https://github.com/ClickHouse/ClickHouse/pull/96061) ([Daniil Ivanik](https://github.com/divanik)).
  * Iceberg의 루트 메타데이터 파일 설정에 대한 추가 유효성 검사를 도입했습니다. [#96754](https://github.com/ClickHouse/ClickHouse/pull/96754) ([Daniil Ivanik](https://github.com/divanik)).
  * Iceberg 카탈로그에 더 이상 자격 증명이 기록되지 않습니다. [#96831](https://github.com/ClickHouse/ClickHouse/pull/96831) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * 파티션된 Delta Lake 데이터의 squashing 문제를 수정했습니다. [#95773](https://github.com/ClickHouse/ClickHouse/pull/95773) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * 잘못된 `auth_header`로 인해 `system.tables`가 작동하지 않던 RESTful datalake catalog 문제를 수정했습니다. [#96680](https://github.com/ClickHouse/ClickHouse/pull/96680) ([Han Fei](https://github.com/hanfei1991)).

  ### S3/Azure/객체 스토리지 수정 사항

  * 비결정적 함수가 있을 때 S3 테이블 엔진의 파티션 키 캐싱 문제를 수정했습니다. [#92844](https://github.com/ClickHouse/ClickHouse/pull/92844) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * 캐시가 활성화된 경우 발생하던 `ReadBufferFromS3`의 assert 실패를 수정했습니다. [#93809](https://github.com/ClickHouse/ClickHouse/pull/93809) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * DiskObjectStorage 정리 스레드에서 발생할 수 있는 오류를 수정했습니다. [#87411](https://github.com/ClickHouse/ClickHouse/pull/87411) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * `DiskObjectStorageTransaction`에서 발생할 수 있는 교착 상태를 해결했습니다. [#93810](https://github.com/ClickHouse/ClickHouse/pull/93810) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * 많은 오류가 발생할 때 DiskObjectStorage 정리 스레드가 실패할 수 있던 문제를 수정했습니다. [#94048](https://github.com/ClickHouse/ClickHouse/pull/94048) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * `copyS3File`의 multipart\_tags에서 발생하던 데이터 레이스를 수정했습니다. [#97227](https://github.com/ClickHouse/ClickHouse/pull/97227) ([Azat Khuzhin](https://github.com/azat)).
  * 객체 스토리지 기반 파일형 테이블(S3, Azure)에서 잘못된 `ALTER UPDATE` mutation을 실행할 때 더 이상 nullptr 역참조가 발생하지 않도록 수정되었습니다. [#96162](https://github.com/ClickHouse/ClickHouse/pull/96162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### S3Queue 버그 수정

  * S3Queue ordered mode에서 발생하던 `Failed to set file processing within 100 retries` 오류를 수정했으며, 이제는 오류 대신 경고로 표시됩니다. [#92814](https://github.com/ClickHouse/ClickHouse/pull/92814) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * S3Queue 설정 `s3queue_migrate_old_metadata_to_buckets`의 버그를 수정했습니다. [#93232](https://github.com/ClickHouse/ClickHouse/pull/93232) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * S3Queue/AzureQueue 엔진의 메타데이터 문제를 수정했습니다. [#90498](https://github.com/ClickHouse/ClickHouse/pull/90498) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * S3Queue/AzureQueue 스토리지에서 발생하는 데이터 레이스를 수정했습니다. [#95385](https://github.com/ClickHouse/ClickHouse/pull/95385) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * S3Queue/AzureQueue 엔진에서 스트리밍할 때 발생하던 중복 제거 문제를 수정했습니다. [#95467](https://github.com/ClickHouse/ClickHouse/pull/95467) ([Kseniia Sumarokova](https://github.com/kssenii)).

  ### 보안 및 접근 제어 버그 수정

  * `SYSTEM SYNC FILE CACHE`에서 누락되어 있던 접근 권한 확인을 수정했습니다. [#92372](https://github.com/ClickHouse/ClickHouse/pull/92372) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * 지나치게 제한적이었던 와일드카드 권한 부여의 액세스 권한 검사 로직 오류를 수정했습니다. [#92725](https://github.com/ClickHouse/ClickHouse/pull/92725) ([pufit](https://github.com/pufit)).
  * `merge` 테이블 엔진을 사용하더라도 `SHOW COLUMNS` 권한 없이 테이블의 컬럼 목록을 가져오지 못하도록 했습니다. [#93695](https://github.com/ClickHouse/ClickHouse/pull/93695) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * `groupConcat` state를 역직렬화하는 과정에서 메모리 안전성 문제를 일으킬 수 있는 정수 오버플로우 취약점을 수정했습니다. [#93426](https://github.com/ClickHouse/ClickHouse/pull/93426) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * 압축 해제된 버퍼 크기가 예상대로인지 검증하도록 수정했습니다. [#93690](https://github.com/ClickHouse/ClickHouse/pull/93690) ([Raúl Marín](https://github.com/Algunenano)).
  * 기본 역할 해제 문제를 수정했습니다. [#96103](https://github.com/ClickHouse/ClickHouse/pull/96103) ([Vitaly Baranov](https://github.com/vitlibar)).
  * 일부 권한이 REVOKE된 경우 `AccessRights::contains`가 잘못된 결과를 반환하던 문제를 수정했습니다. [#96170](https://github.com/ClickHouse/ClickHouse/pull/96170) ([pufit](https://github.com/pufit)).
  * 분산 쿼리에서 최초 사용자에게 할당된 행 정책이 업데이트되지 않던 문제를 수정했습니다. [#95469](https://github.com/ClickHouse/ClickHouse/pull/95469) ([Vitaly Baranov](https://github.com/vitlibar)).
  * 이제 `redis` 테이블 함수의 password 인수는 로그와 시스템 테이블(system tables)에서 마스킹됩니다. [#95325](https://github.com/ClickHouse/ClickHouse/pull/95325) ([Janos Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * X509 인증서를 읽을 때 발생하던 BIO 객체의 메모리 누수를 해결했습니다. [#96885](https://github.com/ClickHouse/ClickHouse/pull/96885) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 버퍼 오버플로우를 방지하기 위해 bech32의 witness version을 검증했습니다. [#96671](https://github.com/ClickHouse/ClickHouse/pull/96671) ([Raúl Marín](https://github.com/Algunenano)).
  * 여러 데이터베이스에 대해 제한된 권한만 가진 사용자로 시스템 테이블을 쿼리할 때 성능이 느려지던 문제를 수정했습니다. [#95874](https://github.com/ClickHouse/ClickHouse/pull/95874) ([pufit](https://github.com/pufit)).

  ### Backup 및 복원 버그 수정

  * 잘못된 아카이브 항목 크기 헤더로 인해 발생한 `Couldn't pack tar archive: Failed to write all bytes` 오류를 수정했습니다. [#92122](https://github.com/ClickHouse/ClickHouse/pull/92122) ([Julia Kartseva](https://github.com/jkartseva)).
  * 많은 동시 백업이 동일한 파일을 두고 경합하면서 서버가 크래시되던 문제를 수정했습니다. [#93659](https://github.com/ClickHouse/ClickHouse/pull/93659) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `plain_rewritable` 객체 스토리지 디스크에서 아카이브 기반 백업(`.zip`, `.tzst`)을 생성할 때 발생하던 스택 오버플로우 문제를 수정했습니다. [#96872](https://github.com/ClickHouse/ClickHouse/pull/96872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 디스크 공간 부족 또는 기타 I/O 오류로 Backup이 실패할 때 발생하던 서버 충돌을 수정했습니다. [#96873](https://github.com/ClickHouse/ClickHouse/pull/96873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * use-after-free로 인해 `StorageKeeperMap` 백업 중 발생하던 segfault를 수정했습니다. [#97336](https://github.com/ClickHouse/ClickHouse/pull/97336) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### 크래시 및 안정성 수정

  * 연결이 끊어진 `Connection`에서 읽는 중 발생하던 충돌을 수정했습니다. [#92807](https://github.com/ClickHouse/ClickHouse/pull/92807) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * 두 번째 인수가 NULL인 경우 `tokens()` 함수에서 발생할 수 있는 비정상 종료를 수정했습니다. [#92586](https://github.com/ClickHouse/ClickHouse/pull/92586) ([Raúl Marín](https://github.com/Algunenano)).
  * 상수가 아닌 토크나이저 매개변수로 `tokens`를 호출할 때 발생하던 서버 충돌을 수정했습니다. [#93383](https://github.com/ClickHouse/ClickHouse/pull/93383) ([Robert Schulze](https://github.com/rschu1ze)).
  * 동시에 컬럼 축소 또는 필터링이 수행되는 동안 기반 const PREWHERE 컬럼을 원본 위치에서 직접 변경해 발생할 수 있던 잠재적 크래시를 수정했습니다. [#92588](https://github.com/ClickHouse/ClickHouse/pull/92588) ([Arsen Muk](https://github.com/arsenmuk)).
  * background schedule pool 종료 시 발생할 수 있던 멈춤 문제를 수정했으며, 이로 인해 shutdown 시 server가 멈출 수 있었습니다. [#93008](https://github.com/ClickHouse/ClickHouse/pull/93008) ([Azat Khuzhin](https://github.com/azat)).
  * 분산 쿼리를 미리 취소한 후 연결이 비정상 상태로 남는 문제를 수정했습니다. [#93029](https://github.com/ClickHouse/ClickHouse/pull/93029) ([Azat Khuzhin](https://github.com/azat)).
  * `estimateCompressionRatio()`에서 발생할 수 있는 `Cannot finalize buffer after cancellation` 문제를 수정했습니다. [#93068](https://github.com/ClickHouse/ClickHouse/pull/93068) ([Azat Khuzhin](https://github.com/azat)).
  * 종료 시 발생할 수 있는 멈춤 현상을 해결하기 위해 ZooKeeper가 종료 과정에서 정상적으로 마무리되도록 했습니다. [#93602](https://github.com/ClickHouse/ClickHouse/pull/93602) ([Azat Khuzhin](https://github.com/azat)).
  * ZooKeeper 스토리지를 사용하는 환경에서 백그라운드로 이름이 지정된 컬렉션을 다시 로드하는 중 발생하던 처리되지 않은 예외를 수정했습니다. [#92717](https://github.com/ClickHouse/ClickHouse/pull/92717) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * `ReadWriteBufferFromHTTP`에서 초기화되지 않은 값을 사용하는 문제를 수정했습니다. [#94058](https://github.com/ClickHouse/ClickHouse/pull/94058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `TraceSender` 버퍼 크기가 갱신되지 않아 서로 다른 스레드의 플러시가 뒤섞이던 문제를 수정했습니다. [#93966](https://github.com/ClickHouse/ClickHouse/pull/93966) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * `PipelineExecutor`가 살아 있는 동안 `IStorage` 객체가 파괴되지 않도록 `QueryPipeline`에 storage shared pointer를 저장하도록 했습니다. [#93746](https://github.com/ClickHouse/ClickHouse/pull/93746) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * 취소 시 분산 쿼리에서 발생할 수 있는 크래시를 수정했습니다. [#95466](https://github.com/ClickHouse/ClickHouse/pull/95466) ([Aleksandr Musorin](https://github.com/AVMusorin)).
  * `DROP WORKLOAD`가 쿼리와 동시에 실행될 때 발생하던 비정상 종료 문제를 수정했습니다. [#95856](https://github.com/ClickHouse/ClickHouse/pull/95856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * `DROP WORKLOAD`의 데이터 레이스를 수정했습니다. [#96614](https://github.com/ClickHouse/ClickHouse/pull/96614) ([Sergei Trifonov](https://github.com/serxa)).
  * `ThreadPoolCallbackRunnerLocal` 사용과 관련된 여러 치명적인 버그를 수정했습니다. [#95818](https://github.com/ClickHouse/ClickHouse/pull/95818) ([Raúl Marín](https://github.com/Algunenano)).
  * 메모리 오버커밋 트래커가 작동할 때 잠금 역전으로 인해 `ProcessList`에서 발생할 수 있던 교착 상태를 수정했습니다. [#96182](https://github.com/ClickHouse/ClickHouse/pull/96182) ([Antonio Andelic](https://github.com/antonio2368)).
  * `max_execution_time`가 큰 쿼리에서 취소 확인 스레드의 라이브락 문제를 수정했습니다. [#96450](https://github.com/ClickHouse/ClickHouse/pull/96450) ([Sergei Trifonov](https://github.com/serxa)).
  * race condition으로 인해 MemoryWorker 정리 스레드가 멈추던 문제가 수정되었습니다. [#96819](https://github.com/ClickHouse/ClickHouse/pull/96819) ([Antonio Andelic](https://github.com/antonio2368)).
  * 캐시된 저장소 스냅샷이 조기에 파기되어 발생한 `clearCaches` 충돌을 수정했습니다. [#96995](https://github.com/ClickHouse/ClickHouse/pull/96995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 제약 조건이 있는 `CREATE TABLE`에서 발생하던 `heap-use-after-free` 문제를 수정했습니다. [#96669](https://github.com/ClickHouse/ClickHouse/pull/96669) ([Nikita Taranov](https://github.com/nickitat)).
  * `StorageKafka2`에서 발생할 수 있는 use-after-free를 수정했습니다. [#97520](https://github.com/ClickHouse/ClickHouse/pull/97520) ([Bharat Nallan](https://github.com/bharatnc)).
  * `DatabaseMaterializedPostgreSQL`의 `shutdown_called`에서 발생하던 데이터 레이스를 수정했습니다. [#97554](https://github.com/ClickHouse/ClickHouse/pull/97554) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 세그먼트형 `HASHED` 딕셔너리의 병렬 로딩 중 일부 행이 로드되지 않을 수 있던 경쟁 상태 문제를 수정했습니다. [#96953](https://github.com/ClickHouse/ClickHouse/pull/96953) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 한 딕셔너리가 자신을 재귀적으로 참조하는 Merge 테이블을 참조할 때 발생하던 교착 상태를 해결했습니다. [#96120](https://github.com/ClickHouse/ClickHouse/pull/96120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 더 최신 버전의 server가 쿼리 계획 역직렬화 중 알 수 없는 설정을 전송할 때 발생하던 `BaseSettings::readBinary`의 범위 밖 접근 문제가 수정되었습니다. [#97585](https://github.com/ClickHouse/ClickHouse/pull/97585) ([Michael Stetsyuk](https://github.com/mstetsyuk)).
  * 스택 언와인딩 과정에서 `dropReplicationSlot`이 예외를 발생시키는 경우 `MaterializedPostgreSQL` 데이터베이스에 테이블을 ATTACH할 때 발생하던 충돌을 수정했습니다. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * HTTP connection이 닫히지 않도록 insert select에서 요청 스트림을 해제했습니다. [#92175](https://github.com/ClickHouse/ClickHouse/pull/92175) ([Sema Checherinda](https://github.com/CheSema)).
  * Backup 데이터베이스의 `SHOW CREATE DATABASE`에서 발생하던 데드락을 수정했습니다. [#92541](https://github.com/ClickHouse/ClickHouse/pull/92541) ([Azat Khuzhin](https://github.com/azat)).

  ### 기타 버그 수정

  * `hasAllTokens` 및 `hasAnyTokens` 함수에서 `handleAllTokens`의 빈 배열 처리 문제를 수정했습니다. [#93328](https://github.com/ClickHouse/ClickHouse/pull/93328) ([Anton Popov](https://github.com/CurtizJ)).
  * 전역 프로파일러의 주기를 수정했습니다 — 설정된 값 대신 절삭된 값이 사용되어 더 자주 깨어났습니다. [#96048](https://github.com/ClickHouse/ClickHouse/pull/96048) ([Antonio Andelic](https://github.com/antonio2368)).
  * `system.asynchronous_metric_log`의 `event_date`를 수정했습니다. [#95947](https://github.com/ClickHouse/ClickHouse/pull/95947) ([Raúl Marín](https://github.com/Algunenano)).
  * 내부 함수에서 `system.functions`에 `categories = 'Internal'` 대신 빈 문자열이 표시되던 문제를 수정했습니다. [#97315](https://github.com/ClickHouse/ClickHouse/pull/97315) ([Robert Schulze](https://github.com/rschu1ze)).
  * 키 유형이 `String`이 아닌 경우 `ip_trie` 딕셔너리에서 발생할 수 있는 논리적 오류를 수정했습니다. [#97555](https://github.com/ClickHouse/ClickHouse/pull/97555) ([Bharat Nallan](https://github.com/bharatnc)).
  * `system.query_log.exception`에서 stderr 캡처를 활성화해 UDF 디버깅 문제를 수정했습니다. [#92209](https://github.com/ClickHouse/ClickHouse/pull/92209) ([Xu Jia](https://github.com/XuJia0210)).
  * 값이 항상 false인 프레디케이트에 대해 `filterPartsByVirtualColumns`를 수정했습니다. [#97620](https://github.com/ClickHouse/ClickHouse/pull/97620) ([Bharat Nallan](https://github.com/bharatnc)).
  * `ColumnConst`가 squashing 전에 구체화되지 않던 문제를 수정했습니다. [#97019](https://github.com/ClickHouse/ClickHouse/pull/97019) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
</Accordion>
