Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[버전정보]11.0 알렉산드리아 RTL과 데이터


Recommended Posts

<< 위로 이동 (최신 버전 포함 모든 버전)

RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: RTL과 데이터" 입니다.
11.0 알렉산드리아의 모든 새 기능,  강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다.

11.0 알렉산드리아 - RTL과 데이터 관련 주요 업데이트 요약

PPL

플랫폼 식별자

RTL macOS/Arm64 플랫폼용으로 새로운 플랫폼 식별자인 pidOSXArm64 추가되었다. 기존 pidAndroid32Arm pidAndroid64Arm 식별자는 새로운 pidAndroidArm32 pidAndroidArm64 대체되었다. 모든 플랫폼 관련 식별자는 컴파일러의 동일한 형식과 순서를 사용합니다. <플랫폼 이름><아키텍처 이름><비트니스>

RTL: TZipFile

ZIP 파일(RTL TZipFile 클래스) 품질 개선 최적화에 중점을 두었다.

  • Zip64 대한 지원과 TZipFile에서 파일을 제거하는 방법이 추가되었다
  • TZipHeader에서 GetFIleName 메서드를 지원하고
  • TZipFile.IsValid() 스트림 매개 변수를 허용하며
  • System.Zip 4GB보다 파일에서도 작동한다.

RTL 대용량 데이터 구조 개선

64비트 컴파일러에서 메모리 구조에 대해 적절한 데이터 유형을 사용하도록 개선되었다. 예를 들어, 64비트의 TMemoryStream 2GB보다 데이터 구조를 지원한다. 이와 관련하여 새로운 메서드 TThread.GetTickCount64 추가되었다(32비트 값을 반환하는 기존 TThread.GetTickCount 호환성을 위해 RTL 남아 있음)

 레코드 헬퍼 추가

datetimehelper.png

  • TDateTime을 위 새로운 레코드 헬퍼: System.DateUtils 유닛에 “UTC Now”(실제 NowUTC 호출) 등이 포함되었다.
  • Currency타입을 위 새로운 레코드 헬퍼: System.SysUtils 유닛에 TCurrencyHelper 추가되었다

블루투스와 BLE 개선

클래식 블루투스 블루투스LE 대부분의 플랫폼이 포함해 개선되었다.

특히 Windows 10 안드로이드(iOS macOS 포함) 중점을 두었으며, 개선 사항에는 비콘 지원도 포함되었다.

추가 RTL 개선사항

제네릭 콜렉션 개선사항

일부 제네릭 유형에서 사용했던 TValue 심볼릭 이름이 RTL TValue 혼돈되므로 다른 이름으로 변경됨.(TKey > K, TValue > V ) 내부적인 변경으로 기존 코드에는 영향이 없다.

또한, 다음 코드와 같이 컬랙션 클래스의 추가 생성자가 없으며, array of value 형식의 파라메터로 대체되었다.

procedure DoCheckStateChanged(Node: TTreeNode; CheckState: TNodeCheckState);virtual;
constructor TList<T>.Create(const Values: array of T);
constructor TDictionary<TKey, TValue>.Create(const AItems: array of TPair<TKey, TValue>);

TDictionary Capacity, GrowThreshold 해싱 구현이 개선되어 성능/메모리 사용량/충돌 최소화하며 균형잡힌 성능을 발휘한다. 내부적으로 구현에 사용된 TListHelper 제거하고 강력한 타입인 TArray<T> 사용해 스트리밍과 데이터 매핑 코드 관련된 모든 항목이 업데이트 되었다.

RTTI

RTTI 대한 개방형 배열 지원: RTTI 통해 개방형 배열 매개변수가 있는 메서드 호출을 허용하고 TVirtualMethodInterceptor에서 개방형 배열 인수도 지원힌다. TValue TDateTime 대한 지원이 추가되며, TValue Variant 유형 교환이 개선되었다.

PPL (병렬 프로그래밍 라이브러리)

PPL 스레드 통계에 쉽게 액세스할 있도록, TThreadPoolStats.Get 메서드가 이제 공개되었다.

스트림

새로운 TPointerStream 클래스를 사용하면 포인터 위치와 크기를 표시하여 TStream 인터페이스를 사용하여 메모리 데이터를 읽고 있다. TStream.CopyFrom에는 없는 크기가 필요하지 않으며 방법은 Count 경우에도 최적화되었다(최대 400% 개선).

날짜를 문자료 변환

날짜를 문자로 변환과 반대로 변환이 개선되었다. 참고로, StrToDate ‘to date’ 형식 문자열을 엄격히 따르고, 월과 이름이 있는 날짜 형식을 지원하며, 내부에 임의의 텍스트가 있는 날짜 형식도 지원한다. 또한, TFormatSettings 날짜/시간 관련 속성 초기화를 개선해 모든 플랫폼에서 표현이 통합되었다.

인터페이스 인스턴스 생성

새로운 System.Generics.Defaults._MakeInterfaceInstance 이용 인터페이스 인스턴스를 만들 있고, 모든 인터페이스 메소드는 익명 메소드로 표시된다.

TNoRefCountObject

새로운 클래스 System.TNoRefCountObject 참조 카운트가 IInterface 구현이다.(오래되고 모호한 TSingletonObject 대체)

최적화 기타

  • 최적화된 _FinalizeRecord _FinalizeArray
  • 레거시 TDatamodule.OldCreateOrder 속성이 제거 되고 기본값 True 인식. 해당 속성이 폼파일에 있는 경우 무시됨(오류 미발생). 델파이 초기 버전 생성 순서 로직과 호환성을 위해 사용 항목
  • 향상된 파스칼 System.Pos
  • TArray<T>.BinarySearch 최적화
  • TList<T>.Sort( ..., Index, Count ) overload 추가
  • System.IOUtils.TFile.Size 추가
  • ClassParent InitInstance 대한 TObject 성능 수정
  • System.IOUtils.TPath 대한 가지 개선 사항
  • RTL에서 260 보다 시스템 경로 지원, (최신 버전의 Windows )운영체제에서 지원하는 경우
  • 클래스 속성 TThread.OnSynchronize 추가
  • EInOutError EInOutArgumentException 메시지에 경로가 포함되고 경로 필드를 갖음

성능 향상

  • _UInt32ToHexString _UInt64ToHexString
  • TSingleHelper TDoubleHelper Parse TryParse

TGUID 데이터 구조는 이제 System.pas에서만 정의됨

JSON

  • ParseJSONValue() TJSONObject에서 TJSONValue 이동
  • Integer 대해 TJSONObject.AddPair(overload) 추가

UTF8ToString 변경 사항

array of AnsiChar 허용하는 UTF8ToString 오버로드가 제거되고 UTF8ToString(array of Byte) 지원중단

제거된 함수: UTF8ToString(const S: _PAnsiChr)

해결 방법  System.UTF8ToString 참조

FireDAC

  • PostgreSQL 드라이버는 PostgreSQL v13 지원, PostgreSQL 저장 프로시저 지원 포함
  • Oracle 19c Oracle 저장 프로시저에 대한 128 매개변수 이름에 대한 공식 지원
  • TFDSortOption soDigitsAsNumbers 확장, System.SysUtils TCompareOption 유사
  • FireDAC 모니터 UI 개선
  • /bin 하위 폴더가 아닌 VendorHome에서 드라이버를 찾도록 Firebird 드라이버를 개선(이전 버전의 Firebird에는 정확함).

Internet, HTTP 및 REST 클라이언트 라이브러리

  • 백엔드 EMS 클라이언트 구성 요소에 대한 타임아웃 메커니즘:
    • TEMSProvider, TKinveyProvider, TParseProvider 클래스는 2가지 새로운 속성: ConnectTimeout, ReadTimeout
    • TEMSApi.TConnectionInfo, TParseApi.TConnectionInfo, TKinveyApi.TConnectionInfo: ConnectTimeout ReadTimeout 변수
    • TDSRestConnection ConnectionTimeOut 표시
  • HTTP / 2 대한 Windows 지원 추가
    • THttpClient.ProtocolVersion 신규 속성
    • TNetHttpClient.ProtocolVersion 신규 속성
  • 새로운 TBase64URLEncoding 인코딩 TNetEncoding.Base64URL 속성
  • 모든 플랫폼에 대해 전체 RTL에서 gethostbyname getaddrinfo 전환
  • 새로운 TCertificate.PublicKey, 공개 모듈 포함
  • ContentType 이제 문자열 유형, 열거형이 아님이로서 하나의 콘텐츠 타입 문자열 사용 가능또한 새로운 RestRequest CustomContentType
  • Windows TNetHTTPClient에서 TLS 1.3 지원
  • TSocket 대한 여러 개선 사항
  • 새로운 TRESTRequestDataSetAdapter 컴포넌트는 JSON 통해 TDataSet(: TFDMemTable) 데이터를 서버에 업로드하는 작업 단순화서버 측에서 TRESTResponseDataSetAdapter REST 구성 요소의 동반자
  • TRestClient 구성 요소는 기본 HTTPClient 구성 요소의 SecureFailureReasons 속성을 표시함
  • Vcl.Styles 유닛에서 이제 TCustomStyle 클래스 FCustomElements FSource protected 섹션에 선언됨

인터넷 서버 기술

웹브로커

ISAPI DLL 스레드에는 Web.Win.ISAPIThreadPool.StackSize 변수를 사용하여 구성 가능한 StackSize 제공. 2GB(MaxInt)보다 파일을 전송/스트리밍할 WebBroker 성능 대폭 향상

RAD 서버

RAD 서버를 위한 Multipart/form-data 지원

데이터스냅 (DataSnap)

데이터스냅: REST URI 이제 TDSMethodMapEvent 이벤트 기반으로 하는 새로운 메커니즘을 사용해 구성할 수 있다.

 


View full RAD 스튜디오 버전별 신기능

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.