기타 릴리스 정보

이러한 기능에 대한 코드는 분기별 릴리스와 함께 번들로 제공되지만 이러한 프로젝트 중 일부(예: Progressive Web Application(PWA) Studio)도 독립적으로 릴리스됩니다. 이러한 프로젝트에 대한 버그 수정은 각 프로젝트에 대한 설명서에서 사용할 수 있는 별도의 프로젝트별 릴리스 정보에 설명되어 있습니다.

강조 표시

이 릴리스에서 다음 하이라이트를 확인하십시오.

강화된 보안 기능

이 릴리스에는 35개 이상의 보안 수정 사항 및 플랫폼 보안 개선 사항이 포함되어 있습니다. 모든 보안 수정 사항이 2.4.1-p1 및 2.3.6-p1로 백포트되었습니다.

RCE(원격 코드 실행) 및 XSS(교차 사이트 스크립팅) 취약점을 해결하는 데 도움이 되는 35가지 이상의 보안 개선 사항

현재까지 이러한 문제와 관련된 확인된 공격은 발생하지 않았습니다. 그러나 특정 취약성은 고객 정보에 액세스하거나 관리자 세션을 인수하는 데 잠재적으로 악용될 수 있습니다. 이러한 문제의 대부분은 공격자가 먼저 관리자에 대한 액세스 권한을 얻어야 합니다. 그 결과, IP 허용 목록에 추가, 2단계 인증, VPN 사용, /admin이(가) 아닌 고유한 위치 사용, 양호한 암호 위생 등을 포함하여(그러나 이에 국한되지 않음) 관리자를 보호하기 위해 필요한 모든 조치를 취하도록 상기시켜 드립니다. 이러한 고정 문제에 대한 논의는 Adobe 보안 공지를 참조하십시오.

추가적인 보안 개선 사항

이번 릴리스의 보안 개선 사항은 다음과 같습니다.

  • 이제 모든 핵심 쿠키가 SameSite 특성을 지원합니다.

  • 이제 사용자가 제품 및 카테고리 설명 필드에 값을 저장하려고 할 때 애플리케이션에서 잠재적인 악성 콘텐츠를 식별하는 메시지를 표시합니다.

  • 구성 요소 전반에 걸친 파일 시스템 작업은 악의적인 업로드를 방지하기 위해 표준화되고 엄격해졌습니다.

  • 핵심 CSP(콘텐츠 보안 정책) 위반이 수정되었습니다.

노트
2.3.2 릴리스부터 외부 파티가 보고하는 각 보안 버그와 함께 인덱싱된 CVE(Common Vulnerabilities and Exposes) 번호를 할당하고 게시합니다. 이를 통해 사용자는 배포에서 해결되지 않은 취약점을 보다 쉽게 식별할 수 있습니다. CVE에서 CVE 식별자에 대해 자세히 알아볼 수 있습니다.

인프라 개선 사항

이 릴리스에는 프레임워크 및 고객 계정, 카탈로그, CMS, OMS, 가져오기/내보내기, 프로모션 및 타기팅, 장바구니 및 체크아웃의 기능 영역을 개선하는 핵심 품질에 대한 개선 사항이 포함되어 있습니다.

플랫폼 개선 사항

  • Elasticsearch 7.9.x가 지원됩니다. Elasticsearch 7.9.x를 실행하는 것이 좋지만 버전 2.4.x는 Elasticsearch 7.4.x와 호환됩니다.

  • 2.4.2를 바니시 6.4(으)로 테스트했습니다. 버전 2.4.x는 Varnish 6.x와 호환됩니다.

  • 이제 Redis 6.x가 지원됩니다. 버전 2.4.x는 Redis 5.x와 호환됩니다.

  • 2.4.2는 이제 Composer 2.x ​과(와) 호환됩니다. 판매자는 Composer 2.x로 마이그레이션하는 것이 좋습니다. Composer 1.x를 사용하여 이 릴리스를 설치할 수 있지만 Composer 1.x는 곧 사용 수명이 종료됩니다. Composer 2.x 기능에 대한 개요를 보려면 Composer 2.0을 사용할 수 있습니다!

분할 데이터베이스를 사용하도록 설치를 구성하는 기능은 이 릴리스에서 더 이상 사용되지 않습니다. 현재 분할 데이터베이스를 사용하는 판매자는 단일 데이터베이스로 되돌리거나 마이그레이션하거나 다른 방법을 사용할 계획을 시작해야 합니다. 이 문제에 대한 개요는 Magento Open Source의 분할 데이터베이스 기능 사용 중단 DevBlog 게시물을 참조하십시오. 마이그레이션 지침은 분할 데이터베이스에서 단일 데이터베이스로 되돌리기를 참조하십시오.

성능 향상

이 릴리스에는 대규모 카탈로그를 사용하는 배포에 대한 API 성능 및 관리 응답 시간을 향상시키는 코드 개선 사항이 포함되어 있습니다. 다양한 확장성 개선을 통해 2.4.2는 기본적으로 이전 릴리스보다 최대 20배 더 큰 복잡한 카탈로그를 지원할 수 있습니다.

Adobe Stock 통합

이 릴리스에는 Adobe Stock 통합 v2.1.1이 포함되어 있습니다.

GraphQL

이번 릴리스에는 다음 기능에 대한 GraphQL 적용 범위가 추가됩니다.

  • 비교 목록에 대한 지원을 추가했습니다. 쇼핑객은 비교 목록을 만들기삭제하고, 비교 목록에 항목을 추가제거할 수 있습니다. 또한 비교 목록을 게스트로 만드는 쇼핑객은 고객으로 로그인하여 비교 목록을 유지할 수 있습니다.

  • generateCustomerTokenAsAdmin 돌연변이를 추가하고 원격 구매 지원을 지원하도록 Customer 개체를 업데이트했습니다.

  • 언어, 장바구니 및 통화 변경과 같은 작업을 지원하기 위해 스토어 전체에 로컬라이제이션 지원이 추가되었습니다.

  • GraphQL의 조합에 대한 지원이 추가되었습니다. GitHub-29425

  • 변형이 많은 구성 가능한 제품에 대해 제품 데이터 검색을 최적화하도록 GraphQL 스키마가 향상되었습니다.

  • 정수 형식 개체 ID는 형식 ID의 uid 특성을 위해 더 이상 사용되지 않습니다.

  • 제품이 스테이징되었는지 확인하고 연결된 캠페인 정보를 보기 위해 staging 특성을 ProductInterfaceCategoryInterface에 추가했습니다.

이러한 개선 사항에 대한 자세한 내용은 GraphQL 개발자 안내서를 참조하십시오.

PWA Studio

이 PWA Studio 릴리스에는 다음이 포함됩니다.

  • 다국어화 및 현지화 Venia는 이제 여러 언어와 통화를 지원합니다.

  • 확장을 통해 코드 변경을 지원하도록 확장성 프레임워크를 개선했습니다.

  • 위시리스트, 저장된 결제, 주소록 및 주문 내역과 같은 내 계정 관련 기능에 대한 초기 구성 요소.

  • 다양한 성능 최적화 및 버그 수정.

개선 사항 및 버그 수정에 대한 자세한 내용은 PWA Studio 릴리스를 참조하십시오. PWA Studio 버전 및 호환 버전 목록은 호환성을 참조하십시오.

미디어 갤러리

미디어 갤러리에 대한 새 역할 리소스. 이 릴리스에서는 판매자가 미디어 갤러리에 대해서만 관리자 액세스를 제한하고 다음 작업을 수행할 수 있는 사용자를 제어할 수 있는 기능을 제공합니다.

  • 콘텐츠에 미디어 자산 삽입

  • 에셋 업로드

  • 에셋 세부 정보 편집

  • 미디어 갤러리에서 에셋 삭제

  • 폴더 구조를 관리합니다.

콘텐츠에 웹에 최적화된 이미지. 판매자는 이제 고해상도 이미지 대신 콘텐츠에서 웹에 최적화된 이미지 렌디션을 사용할 수 있습니다. 원본 이미지는 미디어 갤러리에서 수정되지 않은 상태로 유지되며, 이미지가 콘텐츠에 삽입되면 이미지 렌디션이 동적으로 생성됩니다.

기능 테스트 프레임워크(MTF)

이제 MTF 3.2.1을 사용할 수 있습니다. 이 릴리스에는 테스트 및 테스트 세트 생성 모두에서 오류 허용 범위가 도입되었습니다. 추가 개선 사항 및 버그 수정 사항은 기능 테스트 프레임워크 변경 로그에 설명되어 있습니다.

공급업체가 개발한 확장

이 릴리스의 기능 및 변경 사항에 대한 업데이트는 다음 문서를 참조하십시오.

AWS S3 지원 개선 사항

Amazon Simple Storage Service(AWS S3) 지원이 다음과 같은 지원을 포함하도록 개선되었습니다.

해결된 문제

2.4.2 코어 코드에서 수백 개의 문제를 해결했습니다.

설치, 업그레이드, 배포

  • 이제 판매자는 MySQL 8.x를 실행하는 Open Source 배포를 Commerce 배포로 성공적으로 업그레이드할 수 있습니다. 이전에는 업그레이드 중에 row_id이(가) 추가된 모든 테이블에 대해 AUTO_INCREMENT 값을 초기 값으로 되돌리는 경우 응용 프로그램에서 예외를 throw했습니다.
  • bin/magento/setup:db:generate-patch을(를) 실행할 때 오류가 발생하면 응용 프로그램에서 패치를 만드는 데 사용된 경로를 식별하는 오류 메시지를 표시합니다. GitHub-27523
  • bin/magento/setup:upgrade 실행 후 예상대로 block_html, full_pagelayout 캐시가 비활성화되었습니다. GitHub-28186
  • bootstrap.php에 필요한 최소 PHP 버전이 업데이트되었습니다. GitHub-30004
  • 이제 샘플 데이터를 설치한 후 bin/magento/setup:upgrade을(를) 실행할 수 있습니다. 이전에는 bin/magento/setup:upgrade을(를) 실행하려고 할 때 응용 프로그램에 다음 오류가 표시되었습니다. unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata. 응용 프로그램에서 시스템 로그 main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error에도 이 오류를 표시했습니다. GitHub-30685
  • 이제 예상대로 명령줄에서 YouTube API 키를 설정할 수 있습니다. 이전에는 bin/magento config:sensitive:set catalog/product_video/youtube_api_key을(를) 실행하려고 할 때 응용 프로그램에서 이 오류를 반환했습니다. There are no sensitive configurations to fill.
  • 이제 응용 프로그램에서 queue_consumer.xml에 정의된 maxMessages 값을 적용합니다. 이전에는 응용 프로그램에서 배포 구성 값만 사용했습니다. GitHub-29522
  • bin/magento setup:config:import을(를) 사용하여 스토어를 만들 때 새 스토어에 대한 URL 생성이 예상대로 작동합니다. 이전에는 프로덕션 환경에서 URL 재쓰기가 생성되지 않았습니다. GitHub-30025
  • Magento Open Source 설치 후 ssh 컨테이너를 사용하여 backend-frontname을(를) 변경하려고 할 때 응용 프로그램에서 더 이상 오류가 발생하지 않습니다. GitHub-26762
  • 기존 데이터베이스에 연결하기 위해 bin/magento setup:install을(를) 실행할 때 응용 프로그램에서 이 질문을 더 이상 표시하지 않습니다. Overwrite the existing configuration for db-ssl-verify?[Y/n]. GitHub-29612

Adobe Stock 통합

  • exif_image.png 또는 exif-image.jpeg 메타데이터 읽기에 대한 지원을 추가했습니다. GitHub-1449
  • 미디어 갤러리의 기본 보기 책갈피를 클릭할 때 표시되는 콘텐츠는 더 이상 필터링되지 않습니다. 이전에는 기본 보기에 url-filter 응용 프로그램에서 적용된 필터가 포함되어 있었습니다. GitHub-1813, GitHub-1789, GitHub-1780
  • 논리를 WYSIWYG OnInsert 컨트롤러(Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute())에서 제거하고 Model\Wysiwyg\Images\PrepareImage::execute() 모델에 추가했습니다. GitHub-1504
  • media-content:sync 명령(\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute)에서 영역 에뮬레이션이 제거되었습니다. GitHub-1784

분석

  • 이제 고급 보고가 동일한 도메인의 여러 환경에서 예상대로 작동합니다. 이전에는 CSV 표준 RFC4180에서 요구하는 대로 큰따옴표가 다른 큰따옴표가 아닌 백슬래시로 이스케이프되므로 고급 보고로 생성된 CSV 파일이 실패했습니다.
  • 이제 env.php의 MySQL에 연결할 때 기본 또는 기본이 아닌 포트를 사용할 때 analytics_collect_data 작업이 성공적으로 실행됩니다. 이전에는 기본이 아닌 포트를 사용할 때 analytics_collect_data에서 오류가 발생했습니다.
  • analytics_collect_data에서 생성한 CSV 파일이 이제 제대로 이스케이프됩니다. 이전에는 이러한 파일이 올바른 이스케이프로 생성되지 않았으므로 인벤토리 보고서가 생성되지 않았습니다.

Braintree

  • 이제 구매자는 Apple Pay를 사용하여 가상 제품을 성공적으로 주문할 수 있습니다. 이전에는 응용 프로그램에서 다음 오류가 발생했습니다. There are no shipping methods available for you right now. Please try again or use an alternative payment method.

  • 이제 기본 PayPal Express 체크아웃 결제 방법이 Braintree 신용카드 결제 방법과 함께 예상대로 작동합니다. 이전에는 Braintree 신용 카드 결제 방법을 사용할 때 PayPal 버튼이 표시되지 않았습니다.

번들 제품

  • 애플리케이션은 더 이상 고정 가격 번들 제품 하위 항목의 가격을 따옴표로 묶어 설정하지 않습니다.
  • 이제 번들 제품에 품절 제품이 포함된 경우 가격 정렬이 예상대로 작동합니다. 이전에는 내림차순으로 정렬하면 가격이 하락하는 순서로 상품을 표시하지 않았다.
  • 이제 여러 옵션이 있을 때 애플리케이션에서 번들 제품 옵션에 대해 기본 수량인 1을 자동으로 적용합니다. 기존에는 가맹점이 각 옵션에 기본 수량을 수동으로 지정해야 했다.
  • 이제 주문 송장 생성 페이지에 번들 제품에 대한 하위 제품이 예상대로 표시됩니다. GitHub-27350
  • 이제 사용자 지정 가격으로 번들 제품의 일부인 단순 제품을 재주문할 때 애플리케이션에서 올바른 제품 가격을 할당합니다. 이전에는 번들 제품에 대한 사용자 지정 가격을 설정하면 재주문 시 첨부된 간단한 제품에 대한 가격이 올바르지 않았습니다. GitHub-30343
  • 이제 POST /V1/order/{orderId}/ship을(를) 호출하여 번들 제품이 포함된 주문을 배송하면 예상대로 주문이 완료됨으로 표시됩니다. 이전에는 응용 프로그램에서 다음 오류 메시지를 표시했습니다. You can't create a shipment without products. GitHub-9762

장바구니 및 체크아웃

  • 이제 체크아웃 워크플로우의 배송 단계에서 사용자 지정 주소 속성이 있을 때 배송 방법 견적 도구가 예상대로 작동합니다. 이전에는 응용 프로그램에 다음 오류 메시지가 표시되었습니다. {"message":"Error occurred during \"custom_attributes\" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again."} GitHub-27505
  • 이제 쇼핑객이 장바구니에서 유일한 항목을 제거할 때 예상대로 애플리케이션에서 미니 장바구니에 You have no items in your shopping cart 메시지를 표시합니다. 이전에는 쇼핑객이 단일 항목을 제거할 때 checkout/cart/removeFailed에 대한 장바구니 데이터가 업데이트되지 않았으며, 응용 프로그램에서 다음 메시지를 표시했습니다. 1 product requires your attention.
  • 애플리케이션에서 적용 불가능한 운송 방법에 대한 주문의 운송 비용을 더 이상 표시하지 않습니다. 이전에는 체크아웃 워크플로우에서 적용 불가능한 배송 방법에 대한 가격이 0으로 표시되었습니다.
  • 체크 아웃 워크플로에서 내 청구 및 배송 주소가 동일 확인란의 선택을 취소하면 고객의 기본 청구 주소가 선택됩니다.
  • 쇼핑객이 다른 도메인의 한 스토어에서 다른 스토어로 전환할 때 장바구니 콘텐츠가 더 이상 손실되지 않습니다.
  • 이제 구매자는 여러 배송 방법을 사용할 때 여러 주소로 체크아웃을 사용하여 주문을 성공적으로 완료할 수 있습니다. 이전에는 응용 프로그램에서 다음 오류가 표시되었습니다. There has been an error processing your request. GitHub-30197
  • 이제 쇼핑 카트에서 스토어 보기를 변경할 때 애플리케이션에서 체크아웃 워크플로우의 배송 페이지에 올바른 기본 국가가 표시됩니다.
  • 이제 게스트 쇼핑객이 로그인할 때 사후 로그아웃 암호를 재설정한 후 고객 세션을 정리할 때 애플리케이션에서 현재 세션을 제외합니다. 이전에는 쇼핑객이 비밀번호를 재설정할 때 애플리케이션에서 장바구니를 비웠습니다.
  • 이제 쇼핑객이 장바구니에서 스토어 보기를 변경할 때 애플리케이션에 스토어 보기에 대한 올바른 기본 국가가 표시됩니다. 이전에는 장바구니에서 스토어 보기를 변경할 때 기본 국가가 올바르지 않았습니다.
  • 장바구니의 /rest/V1/guest-carts/cart_id/totals-information 끝점에 대한 중복 호출이 제거되어 장바구니 성능이 향상되었습니다. 이전에는 쇼핑객이 장바구니에 제품을 추가한 다음 장바구니를 볼 때 애플리케이션이 collectAddressTotals 메서드를 여러 번 호출했습니다.
  • 국가에 대해 선택 사항인 경우 상태 선택 허용 설정을 사용하지 않도록 설정한 경우 응용 프로그램에서 체크아웃 워크플로의 국가에 대한 지역 필드를 더 이상 표시하지 않습니다. GitHub-30747
  • 관리자가 주문을 다시 정렬할 때 애플리케이션에서 더 이상 상점 첫 번째 체크아웃 워크플로에서 배송 주소를 반복하지 않습니다.
  • AdminMediaGalleryInsertLargeImageFileSizeTest 디자인의 문제를 해결했습니다.
  • 게스트에 대한 quote 테이블의 모든 새 레코드에 customer_is_guest field의 값이 할당되었습니다. 이전에는 장바구니에 제품을 추가한 각 새 게스트에 대해 quote.customer_is_guest 필드에 레코드가 0으로 할당되었습니다.
  • 체크아웃 워크플로의 검토 및 결제 섹션에 있는 제출 단추가 <form id="purchaseorder-form"...></form> 내부로 이동되었습니다. 따라서 JavaScript을 변경하지 않고도 암시적 양식 제출이 가능합니다. GitHub-27925
  • 국가에 대해 선택 사항인 경우 상태 선택 허용 설정을 사용하지 않도록 설정하면 응용 프로그램에서 체크아웃 워크플로에 더 이상 지역 필드를 표시하지 않습니다. GitHub-30747
  • 이제 여러 주소로 체크아웃하는 동안 쇼핑객이 장바구니 업데이트 ​를 클릭하면 애플리케이션에서 장바구니의 항목 소계를 올바르게 업데이트합니다. GitHub-30408
  • 현재 설치되지 않은 결제 방법에 대해 config.xml개의 노드가 있는 경우 애플리케이션에서 더 이상 예외가 발생하지 않습니다. 이전에는 체크아웃하는 동안 애플리케이션에서 예외가 발생했습니다. GitHub-29555
  • 이제 애플리케이션에서 미니 장바구니에 특수 문자가 올바르게 포함된 제품 이름을 렌더링합니다. GitHub-29075
  • 이제 애플리케이션에서 테이블 비율에 대한 올바른 할인 패키지를 설정합니다. 이전에는 테이블 요금을 계산할 때 장바구니에 할인을 설정하는 장바구니 규칙을 적용하지 않았습니다. GitHub-30169