Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr
  • RAD 스튜디오 버전별 신기능:
    11 알렉산드리아

    [11.3] 알렉산드리아 - 릴리스 3

       (0 reviews)

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

    "RAD 스튜디오 11 알렉산드리아 - 릴리스 3"을 정리한 Docwiki (원문 보기)를 번역한 글입니다. 

    업데이트된 RAD 스튜디오 11.3 알렉산드리아 릴리스 출시 (2023년 2월 27일)

    주의:
    11 알렉산드리아 (11.0, 11.1.5, 11.2)에 새로 포함된 기능을 모두 보려면,
    여기를 클릭.

    [11.3] 에서 강화된 점을 제품 영역 별로 보기

    RAD 스튜디오 11 알렉산드리아 - 릴리스 3 (11.3 라고도 부름)을 이제 설치할 수 있다. RAD 스튜디오 11에서는 사용자가 코드 에디터의 룩앤필을 직접 커스터마이징할 수 있다 (새 ToolsAPI를 사용). 그리고 코드 에디터 안에서 일치하는 단어 강조 기능을 사용할 수 있다. 또한, 11.3에는 생체인식 인증(Biometric Authentication) 컴포넌트가 새로 추가되었다. 이 컴포넌트는 모바일 플랫폼에서 사용할수 있다. 이외에도 델파이 LSP와 각종 RAD 스튜디오 라이브러리에서 품질과 성능 향상이 많이 반영되었다.

    RAD 스튜디오 11.2는 품질 향상에 크게 주력했다. 집중한 주요 품질 영역은 다음과 같다.

    또한 아래 새 기능들이 추가되었다.

    목차


    2 IDE 향상

    2.1 ToolsAPI가 코드 에디터(Code Editor)를 지원

    RAD 스튜디오 11.3에서는 완전하고 포괄적이며 매우 상세한 Tools API 세트를 사용자가 사용할 수 있으므로, 코드 에디터(Code Editor)를 자신에게 맞게 커스터마이징할 수 있다. 이를 통해 에디터 페인팅, 각 에디터와 에디터의 내용에 대한 정보 조회, 코드 에디터에 대한 이벤트 얻기 등등을 할 수 있다.

    가장 멋지고 쓸모있는 플러그인들 몇가지는 코드 에디터 안에서 작동한다. 그래서 RAD 스튜디오는 완전하고 쓸모있는 API 세트를 제공함으로써 코드 에디터의 데이터와 표현을 광범위하게 커버할 수 있도록 하겠다는 목표로 작업했다. 이로써 예전에는 해킹을 해야 작동할 수 있었던 플러그인들을 이제는 공식적으로 지원되는 API를 통해 사용할 수 있게 되었다. 뿐만 아니라 이 새 API를 통하면 RAD 스튜디오의 코드 에디터에 직접 통합되는 플러그인을 매우 쉽게 작성할 수 있다. 매우 강력한 API이므로 우리 역시 기존의 에디터 기능들 중 일부를 이 API를 사용하도록 교체했다. 우리는 이 새 API가 플러그인 분야와 생산성 애드-온의 혁신을 이끄는 바탕이 되기를 희망한다. 또한, 여러분과 다른 사람들이 이 API를 활용해 무엇을 내놓을지를 기대한다!

    이 API들을 사용하면 에디터 줄(line), 에디터의 세로 공백(gutter), 에디터의 텍스트 등등 코드 에디터 안에 그려지는(paint) 모든 단계를 사용자가 가로챌 수 있다. 더 나아가 각 단계별로 해당 작업의 직전(before)과 직후(after) 이벤트를 불러서 IDE에서 수행하는 내용을 바꾸거나 추가할 수 있다.

    에디터의 경우, 사용자는 다양한 정보를 활용할 수 있다. 즉 해당 상태를 알아낼 수 있고 각 줄 별로 더 상세한 정보를 알아낼 수 있다. Paint 이벤트는 모든 상황 정보를 가지고 있다. 이것을 활용하면 상상할 수 있는 모든 그리기(paint) 작업을 에디터에 반영할 수 있으며, 심지어 에디터에 그리는 작업을 하지 않고도 에디터 안에 무엇이 들어있는 지를 알 수 있다.

    새 ToolsAPI 유닛은 해당 클래스, 메소드, 프로퍼티에 대한 도움말이 제공되므로 새 ToolsAPI를 살펴보고 사용해 보기를 바란다. 

    우리가 강력히 권장하는 바는 코드 편집기 안에 그리는 작업을 하는 모든 써드-파티 플러그인 또는 애드온이 이 새 인터페이스를 사용하는 것이다.

    2.2 코드 에디터(Code Editor) 안에서 일치하는 단어 강조

    RAD 스튜디오의 코드 에디터에는 선택한 단어 또는 현재 커서가 놓여진 곳의 단어에 일치하는 것들이 강조 표시된다. 화면 안에 있는 일치하는 단어는 주석을 포함하여 모두 표시된다. 또한 이 기능에는 다음과 같은 옵션이 있다.

    • 단어가 선택되었을 때, 그 단어와 일치하는 단어를 강조 표시 (단어를 선택하려면 더블-클릭).
    • 커서가 단어 안 또는 단어에 앞뒤에 놓였을 때, 그 단어와 일치하는 단어를 강조 표시. 사용자는 필요하다면 이 기능을 끌 수 있다.
    • UI 설정을 사용하여 강조에서 키워드 표시 끄기. 켜짐이 기본 설정이다.

    spacer.png

    2.3 델파이 LSP (Delphi LSP)

    11.3에서, RAD 스튜디오는 품질과 주요 이슈 해소에 크게 집중했다.

    델파이 LSP 향상 면에서 우리는 품질에 상당히 집중했으며, 주요 이슈가 해소되었다. 또한 아래 사항들이 추가되었다.

    • 헬프인사이트(HelpInsight) 창은 내용에 훨씬 더 잘 맞추도록 크기 계산 방식이 변경되었다.
    • 정적 메소드(static method) 구현 위에 마우스를 올리면 기대한 결과가 표시된다.
    • Ctrl+왼쪽 클릭을 읽기-전용 파일에서 사용하면 기대한 곳으로 이동한다.
    • 완성되지 않은 익명 메소드 안에서 엔터 키를 눌렀을 때, IDE는 예전 처럼 잘못된 세미콜론(“end;”)을 추가하지 않는다.
    • Ctrl+클릭을 사용하여 이동하려고 할 때, 목적지가 컴파일러 지시자(directive)로 둘러싸여 있는 곳이면 이동하지 못했던 문제가 해소되었다. 델파이 파서는 이제 단순 조건 컴파일 지시자(simple conditional compiler directive)를 다룰 수 있다.
    //단순 조건 컴파일 지시자 예시
    {$IF CompilerVersion > 24 and Defined(Windows)}

    알아둘 점: 이것은 델파이LSP가 아닌 시스템을 사용하는 IDE에 의해 uses 절 안에 추가된 유닛들 안에 있는 지시자(directive)를 파싱하는 데에는 영향을 미치지 않는다. 

    • 제네릭 메소드 선언 안에서 제네릭 타입 코드 완성이 이제 작동한다. 결과 타입과, 제네릭 <> 타입 유형 선언 안쪽 모두에 반영된다.
    function Test<TResult>(a: T): TResult; // TResult가 두곳 모두에 제안된다.
    • 서로 다른 프로젝트에 동일한 이름을 가진 서로 다른 파일이 두 개 이상 있는 경우 DelphiLSP가 모듈의 소스 코드에 대한 경로를 결정하지 못하는 문제가 해소되었다결했습니다.
    • < 또는 > 심볼을 조건문 안에서 사용하는 "if 문"  안에서 코드 완성이 작동하지 않는 문제가 해소되었다.
    • 타입 선언을 완성할 때 해당 타입 안에 선언된 private 타입이 이제 코드 완성에서 표시된다.

    2.4 서브버전(Subversion)

    11.3 버전부터 RAD 스튜디오는 더 이상 서브버전(Subversion) DLL들을 제공하지 않는다. 따라서 사용하고 싶다면 서브버전을 직접 설치해야 한다. Git과 Mercurial에서와 마찬가지로, IDE는 이전에 구성되어 있던 위치를 찾는다. 따라서 이제는 서브버전의 버전이 더이상 IDE 버전과 연결되지 않으므로, 별도로 업데이트를 할 수 있다.

    2.5 IDE High DPI, VCL 폼 디자이너(form designer), 품질

    11.3 버전은 프레임(Frame) 등 비-시각적 컴포넌트의 확대/축소가 향상되었다. 관련 주요 향상은 아래와 같다.

    • RAD 스튜디오 11 보다 이전 버전에서 11.x 버전으로 마이그레이션 할 때 비-시각적 컴포넌트의 위치가 잘못되는 이슈가 해소되었다.
    • 폼(form) 화면 확대/축소가 변경되고 시스템 확대/축소가 변경될 때, 비-시각적 컴포넌트가 위치와 배율을 올바르게 유지한다.
    • High DPI 모드에서 프레임 확대/축소에 영향을 주는 글자 크기 이슈가 해소되었다. 특히 DPI가 낮은 곳에서 RAD 스튜디오 폼 디자니어를 실행할 때 생기던 이슈이다.

    2.6 기타 IDE 향상

    • 이제 사용자는 File > New를 통해 새 마크다운(Markdown) 파일을 만들 수 있다.
    • 승격된 권한으로 IDE를 실행할 경우, 사용자가 알기 쉽도록, IDE 제목 표시의 시작 부분이 '[Administrator]'로 시작한다.
    • 빌드 구성을 마우스 오른쪽 버튼으로 클릭하고 Show In Explorer 옵션을 선택하면, 빌드 구성의 출력 파일을 탐색기에서 찾을 수 있다.
    • 에디터에서 코드 구조의 흐름을 표시하는 아이콘(메서드 반환, 제어 흐름 중단/이동 등의 코드에 맞게 표시되는 아이콘)이 High DPI 버전으로 교체되었다.
    • 에디터에서 (ifdef로 제외 처리된) 비활성화된 텍스트의 불투명도 설정을 이제 Editor > Search 페이지의 UI 옵션을 통해 변경할 수 있다.
    • VCL 디자이너의 힌트 창 안의 글자 크기가 개선되었다.
    • 에디터의 SyncEdit 아이콘과 구조 흐름 아이콘이 High DPI 아이콘으로 대체되었다.
    • New Items 대화 상자에서 창이 변경되었을 때 Copy / Inherit / Use에 문제가 있었다. 이제 해결되었다.
    • 경로 대화 상자에서 잘못된 경로를 회색으로 표시하지 않는 문제가 해결되었다.
    • 보조 에디터 창을 사용할 때 생기던 일부 안정성 문제가 해결되었다.
    • 이제 Markdown 파일을 여러 편집기 창에서 동시에 열 수 있으며, Structure 뷰에서 Markdown 파일이 에러로 표시되지 않는다.

    3 컴파일러 툴체인(Toolchain) 향상: 델파이와 C++

    RAD 스튜디오 11.3은 RAD 스튜디오에서 제공하는 컴파일러 대부분에서 품질이 향상되었다.

    3.1 델파이 컴파일러

    11.3은 각종 영역에서 컴파일러의 몇가지 이슈가 해소되었다. 대표적으로 해소된 것들은 아래와 같다.

    • 델파이 LSP 처리 개선 및 성능 향상.
    • 관리되는 레코드(managed record), 제네릭(generics) 및 제약(constraints) 문제가 수정되었다.
    • Codegen 개선 및 수정.
    • 퇴행했던 문제 해소, 컴파일러가 컴파일 진행률 대화 상자에서 완전히 잘못된 총 라인 수를 표시하는 문제가 해소되었다. 이것은 Spring4D를 빌드할 때 나타났다.

    3.2 C++ 컴파일러와 툴체인(Toolchain)

    RAD 스튜디오 11.3에서 해소된 품질 이슈 예:

    • 라이브러리 접미사 $(Auto) 사용이 이제 C++ 프로젝트에서 작동한다.
    • 정적 라이브러리에 대한 의존성 검사 시, 잘못된 이름을 사용함에 따라 불필요하게 빌드를 반복하던 문제가 해소되었다.

    3.3 디버거(Debugger)

    리눅스용 LLDB 디버거가 우분투(Ubuntu) 18.x과 파이썬(Python) 3.7.x을 사용하여 재구축 되어서 최소 요구사항을 맞추었다. 또한 맥OS와 리눅스에 있던 몇가지 이슈가 해소되었다.

    • 11.3에서 윈도우 플랫폼이 아닌 것들은 모두 LLDB로 이전되었다. 그 결과, GDB를 더이상 지원하지 않는다.
    • 서식 지정자(Formatting specifier)가 LLDB 표현식 평가에서 지원된다. 
    • 프로세스에 연결하고 LLDB에서 심볼을 로딩할 때 발생하던 이슈가 해소되었다.
    • LLDB로 바꾸는 것과 관련되었던 세트(set) 평가와 표현식(expression) 평가 관련 안드로이드32 문제가 해소되었다.
    • PAServer 새 버전
    • C++ Win64 디버거를 사용하여 사용자는 프로그램으로부터 분리될 수 있다.
    • Inspector Range 메뉴 옵션을 배열에서도 사용할 수 있다.
    • 안드로이드64에서 쓰레드 이름 붙이기를 지원한다.

    4 라이브러리 향상

    RAD 스튜디오 11.3에는 Delphi RTL, C++ RTL, VCL, 파이어몽키, FireDAC, DB RTL, HTTP 클라이언트 라이브러리, HTTP 서버와 관련하여 많은 품질 개선과 기능 강화가 반영되었다. 상당히 변경된 주요 사항은 다음과 같다.

    4.1 델파이 RTL

    델파이 RTL과 관련하여, RAD 스튜디오 11.3에서 향상된 점은 다음과 같다.

    • 안드로이드가 버전 12와 13에서 안드로이드 네이티브 메모리 매니저의 realloc C-API에 대한 기반 구현을 변경한 점을 감안하여, RAD 스튜디오는 pre-allocation 로직을 변경하여 (메모리 흔적인 64K 바이트 이상인 경우, String과 Dynamic-array의 길이가 변경될 때 마다 256 바이트가 추가된다) 필요한 것보다 많은 메모리를 미리 할당함으로써, 운영 체제 호출인 realloc 와 그로 인한 복사 동작이 줄어들도록 했다.

    알아둘 점: 귀하의 코드가 메모리를 매우 많이 사용한다면, 귀하의 앱에 구현된 로직을 다시 보는 것이 좋다.

    • 시스템 RTL 함수인 Move가 최적화되어서, 현대식 CPU에서 성능이 더 좋아졌다. 2배에서 5배까지 더 빠르게 동작한다. 단, 실제 CPU 패밀리와 해당 비트(bitness)에 따라 달라진다.
    • ZLib가 1.2.13으로 업데이트되었다.
    • _InitializeRecord 성능이 향상되었다.
    • TDirectory.GetFiles가 많은 파일을 다룰 때의 성능이 향상되었다.

    4.2 VCL

    VCL과 관련하여, RAD 스튜디오 11.3에서 향상된 점은 다음과 같다.

    • VCL 컴포넌트인 TControlList에 아래의 프로퍼티와 이벤트가 추가되었다. 그 결과, 다수의 항목을 선택할 수 있게 되었다.
      • TCustomControlList.MultiSelect 프로퍼티
      • TCustomControlList.Selected 프로퍼티
      • TCustomControlList.ClearSelection 메소드
      • TCustomControlList.SelectAll 메소드
    • 배율 확대/축소 이슈를 TDBGrid, TComboBox, TStringGrid 등등 여러 컨트롤에서 해소했다. 그리고 TListView, TComboBox, TStringGrid 컨트롤 등에서 DPI 변경 이슈를 해소했다. 또한 폼의 Scaled 프로퍼티가 False 일 때 전반적인 동작이 향상되었다.
    • TBalloonHint에 퇴행했던 것들을 해소했다.
    • 발생할 수 있는 액세스 위반(Access Violation)을 방지하기 위해 StyleHook 코드를 향상했다.
    • 배율 확대/축소 시 TreeView의 그래픽 향상, 몇가지 컨트롤에서 그래픽 요소 표현력 향상
    • TRichEdit 컨트롤에서 SpellChecking와 커스텀 Popup 메뉴 사이의 충돌을 해소
    • NumberBox 입력 시, 활성 MinValue를 통해 향상됨
    • TControlList 컨트롤에 매우 많은 (가상) 항목들이 있을 때에 대한 지원 향상
    • 커스텀 타이틀 바 버튼(custom title bar button) 배치와 크기에 있던 이슈 해소 (canvas size와 left caption margin 등)

    4.3 파이어몽키 (FireMonkey)

    RAD 스튜디오 11.3에서는 새 TBiometricAuth가 제공된다. 이것을 사용하면 얼굴 인식 ID, 지문 등 생체 정보를 통한 인증을 안드로이드와 iOS에서 구현할 수 있다.

    알아둘 점: 안드로이드에서는 현재 TBiometricAuth가 안드로이드 10과 그 이상에서만 지원된다.

    컴포넌트 팔레트에서 TBiometricAuth를 사용하여 원하는 프로퍼티를 지정하면 된다. 애플리케이션을 안드로이드에서 작동시키는 경우라면, 적어도 PromptDescriptionPromptTitle에 프롬프트 프로퍼티 값을 꼭 넣어야 한다. 또한 BiometricStrengths 프로프티에 원하는 강도를 지정해야만 한다. 또한, OnAuthenticateSuccess 또는 OnAuthenticateFail 이벤트에 대한 핸들러를 만들 수 있으므로 해당 상황에 대한 처리를 할 수 있다.

    이 새 API 사용법을 알아 보고 시작하려면,

    파이어몽키와 관련하여, RAD 스튜디오 11.3에서 추가로 향상된 점은 다음과 같다.

    • IFMXPhoneDialerListenerService 인터페이스가 새로 추가되었다. 이것은 전화 시스템 서비스 (통화, 통신사, 통화상태)의 상태 변화를 추적 기록할 수 있다.

    알아둘 점: 안드로이드 전용. 통화를 직접 추적하기 전에, 사용자는 android.permission.READ_PHONE_NUMBERS 권한을 요청해야 한다.

    사용자에게 접근이 허용되고 나서, 서비스를 요청하고 Start 메소드를 부르도록 한다. 그렇지 않으면, 이 권한이 필요한 이유를 사용자가 설명해야 한다.

    통화 추적이 끝나면 Stop 메소드를 호출한다.
     

    • 파이어몽키 앱은 이제 윈도우 다시시작 매니저에서 보내는 종료 요청을 알맞게 처리한다.
    • 맥OS ARM 64이 Radiant Shape를 지원하는 플랫폼에 추가되었다. 
    • 파이어몽키에서 Accessibility Insights를 사용하여 검사할 때 윈도우용 접근성 지원이 향상되었으며, FMX.ScreenReader.Win.pas. 안의 AV가 해소되었다.
    • TWebBrowser에서 윈도우 지원이 향상되었다. 여기에는 3D FMX 앱 을 활용하는 능력, 엣지(Edge)용 TCustomWebBrowser.CaptureBitmap 구현 등이 포함된다.
    • iOS 가상키포드 Done 버튼과 iOS 선택기 버튼(pickers button)를 위한 iOS 플랫폼 해석 능력 일부가 향상되었다. TDateEdit, TTimeEdit, TComboBox, TiOSAddressBook.SaveContact에서 iOS 스크롤 이슈 해소. 
    • 안드로이드용 DocumentFile Provider 지원
    • 안드로이드에서 TMemo 안에서 손가락 밀기로 커서를 옮기는 기능과 TAddressBook 컴포넌트가 향상되었다. 
    • 윈도우에서 TForm Cursor, TWinMultiDisplay.FindDisplay가 향샹되었다.
    • 파이어몽키 그래픽 향상 (TBitmap.AssignFromSurface, TCanvas.TransformRect, TBitmap.Canvas.BeginScene) 그리고 , plus removed artifact lines in TMemo와 TGridPanelLayout 안의 인공 줄이 제거되었다
    • 많은 컨트롤 향상 및 이슈 해소: Multiview (의 controltype = platform), SpeedButton (isPressed이 TFrame 안에서 사용될 때 ), Label (FocusControl), TTreeViewItem의 IsChecked, TEdit가 TVertScrollBar 안에서 작동한다.
    • ClipChildren에서 XRadius와 YRadius를 고려한다.
    • 모든 컨트롤에서 Tab 키 순환이 개선되었다.

    4.4 Data

    Data 라이브러리와 관련하여, RAD 스튜디오 11.3에서 향상된 점은 다음과 같다.

    • UTF8에 대한 사전 지원이 RTL (TStringField), FireDAC ODBC, DatS, 또는 DataSet에 추가되어, 리눅스에서 ODBC 지원이 향상되었다.
    • FireDAC에서 PostgreSQL를 사용할 때 성능이 향상되었다. PostgreSQL용 새 연결 설정이 생겼다. FastFetchMode=Choose|Default|All|First
      • Choose: 가장 최적화된 옵션을 FireDAC이 선택한다. 기본 설정이다.
      • Default: FireDAC은 최적화를 하지 않는다. 이전 버전의 기본 동작
      • All: FireDAC은 항상 결과 세트 (Resultset) 최적화를 반영하여 모든 레코드를 가져오기를 완료한다.
      • First: FireDAC은 항상 결과 세트 (Resultset) 최적화를 반영하여 첫 레코드를 가져오기를 완료한다.
    • TFDQuery Editor Options에 대해서 그리고 쿼리 에디터의 글자 크기에 대해서 한 High-DPI 비례 확대/축소가 향상되었다.
    • MongoDB 버전에 맞는 클라이언트 라이브러리가 추가되어서, MongoDB 서버에 로그 기록하기 그리고 새 트랜젝션 기능을 지원한다.
    • TBindingExpression이 대소문자를 가리지 않는다
    • PostgreSQL 14 버전과 15.1 버전에 대한 FireDAC 드라이버의 호환성이 검증되었다
    • 새 NCharReplacement 구성이 FireDAC의 오라클 연결에 추가되었고, q['...'] “NCHAR String Literal Replacement” 지원이 추가되었다.

    4.5 HTTP와 REST 클라이언트 라이브러리

    HTTP와 REST 클라이언트 라이브러리와 관련하여, RAD 스튜디오 11.3에서 향상된 점은 다음과 같다.

    • TMultipartContentParser 프로퍼티는 ContentType이 있는 모든 부분을 파일(File)로 처리하는 것을 방지한다.
    • 토큰 자동 새로고침이 TOAuth2Authenticator에 추가되어, 구글 REST 서비스 인증을 지원하고 TOAuth2Authenticator 액세스 토큰 만료가 개선되었다.
    • TRESTResponseDataSetAdapter에서 NestedElements에 대한 지원이 향상되었다.
    • 안드로이드에서 REST 컴포넌트가 클라이언트 인증서를 사용할 수 있도록 지원한다.
    • RAD 서버: TEMSDataSetResource 컴포넌트의 LIST 기능은 JSON 구조 안에 담긴 서식이 반영된 날짜를 올바로 반환한다.
    • SOAP 서버에서 첨부파일을 제공할 때 있었던 메모리 누수(leak)가 해소되었다. 

    4.6 기타 향상

    RAD 스튜디오 11.3은 XCode 14부터 Apple이 도입한 macOS용 새로운 공증 프로세스를 제공한다. 또한 이제 Windows 서명에 MSIX 파일의 타임스탬프 지원이 포함된다.

    5 기타 참고 (See Also)




    User Feedback

    표시할 리뷰가 없습니다.


×
×
  • Create New...

중요한 정보

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