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

    [11.2] 알렉산드리아 - 릴리스 2

       (0 reviews)

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

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

    업데이트된 RAD 스튜디오 11.2 알렉산드리아 릴리스 출시 (2022년 9월 7일)

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

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

    RAD 스튜디오 11 알렉산드리아 - 릴리스 2 (11.2 라고도 부름)를 이제 설치할 수 있다. RAD 11.2는 11과 11.1의 기능을 바탕으로 하여 제품 전반에 걸쳐 기존 기능을 강화하고 몇가지 새 기능을 추가했다. 업데이트 서브스크립션을 유지 중인 사용자는 누구나 델파이 11, C++빌더 11, RAD 스튜디오 11을 다운로드 받을 수 있다.

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

    • 델파이에서 iOS 시뮬레이터(Simulator) 지원
    • 마크다운(Markdown) 지원
    • VCL, FMX, RTL 품질
    • RTL 성능
    • Delphi 코드 인사이트(Code Insight) - DelphiLSP
    • C++ 코드 인사이트(Code Insight) - cquery
    • IDE High DPI, VCL 폼 디자이너(form designer), 품질
    • 겟잇(GetIt)
    • 안드로이드 타겟 API
    • FireDAC (FDMonitor, FDExplorer 등등)
    • 델파이와 C++의 툴체인(Toolchain) 품질
    • 디버거(Debugger) 품질
    • RAD 서버

    목차


     

    2 IDE 향상

    2.1 High DPI VCL 디자이너

    VCL 디자이너(designer)에서는 이제 디자인 화면이 윈도우(Windows)-같은 스타일 방식을 사용한다. 즉, 디자이너 화면 안에 있는 컨트롤들은 언제나 이 방식을 사용하여 표현된다. 단, 사용자가 직접 이 스타일 방식을 비활성화하는 경우에는 그렇지 않다. 이 방식은 해당 윈도우의 밝은(light) 테마 또는 어두운(dark) 테마에 맞추는데 두 가지 중 현재 윈도우에서 사용 중인 테마를 반영한다. RAD 스튜디오의 폼 디자이너에 VCL 스타일이 표현되도록 지원하는 기능이 추가되었다. 스타일이 적용된 폼과 컨트롤이 실행 시에 표현될 모습 그대로를 개발환경에서 미리 보면서 작업할 수 있는 기능은 11.0에서 들어갔는데, 당시 그 옵션은 '사용하지 않음' 이 기본(default) 설정이었다. VCL 디자이너가 이제 스타일 방식을 사용하기 때문에, RAD 스튜디오를 새로 설치할 때 디자이너에서 VCL 스타일을 일반적으로 사용하도록 하는 옵션 역시 이제는 '사용함'이 기본 설정이다. 11.2로 업그레이드를 하는 경우에는 이 옵션을 직접 켜야 할 수도 있다. 윈도우의 기본 룩앤필(look and feel)용 스타일 사용하기와 VCL 디자이너에서 스타일 사용하기 둘 모두 꺼놓을(turn off) 수도 있다. Options > User Interface > Form Designer 페이지에 있는, ‘Enable VCL Styles’ ‘Mimic the system style’ 옵션에서 지정할 수 있다.

    2.2 코드 에디터(Editor)의 탭

    RAD 스튜디오 11.2 버전에서는, 탭의 유형 따라, 예를 들어 소스 컨트롤 에디터 또는 COM-타입 라이브러리 에디터 같은 것들에 각각 다른 색상이 반영되어서 일반 코드 탭과 쉽게 구별된다. 탭 색상 구성(tab colors configuration)이 새로 추가되었으므로 탭에 맞춤 색상을 지정할 수도 있다.

    spacer.png

    INTACustomEditorView280 인터페이스 안에서 ToolsAPI를 통해 탭에 맞춤 색상을 지정할 수 있는 지원이 새로 추가되었다.

    텝에 있는 ‘X’ 닫기 버튼 표시 여부를 이제는 선택할 수 있다. 새로 추가된 설정(Settings) 페이지 즉 IDE Options > User Interface > Editor > Tabs에서 사용자는 ‘X’ 버튼 표시 여부를 지정할 수 있다: 항상 보이기, 항상 숨기기, 활성화된 탭에서만 보이기

    디버깅 중에 열린 탭은 다르게 표시된다. 즉 탭 제목이 기울림꼴로 표시된다.

    읽기-전용 파일은 이제 탭에 자물쇠 아이콘이 표시된다. 자물쇠 아이콘은 탭의 내용이 변경되었음을 알려주는 '점(dot)'이 표시되는 그 위치에 표시된다. 또한 에디터(editor) 안에서 읽기-전용이 지정되는 방식을 이제는 직접 구성할(configurable) 수 있다. 파일 시스템의 상태에 맞추는 것이 기본(default) 설정이다. 실수로 RTL/VCL/FMX/include 등의 파일을 편집하게 되는 이슈를 방지하기 위함이다. 이제 새 옵션인 ‘Read-only status matches file system’이 추가되었다. 체크 표시를 풀면, 예전 방식으로 동작하므로 디스크 상에서 해당 파일에 지정되어 있는 읽기-전용 표시에 맞추지 않는다.

    2.3 CPU 뷰에서 구문 강조 표시

    RAD 스튜디오 11.2 버전에서, CPU 뷰는 이제 화면에 표시되는 어셈블리(assembly) 코드에 구문-강조 표시가 반영된다.사용자는 이제 IDE Options > Debugger > Disassembly 에서 'no extra coloring' (예전 방식), 'using the IDE theme colors or,the editor colors' 중 하나를 선택할 수 있다.

    spacer.png

    2.4 마크다운(Markdown) 지원

    RAD 스튜디오 11.2 IDE는 이제 마크다운(.md) 파일을 지원하고, 마크다운(Markdown)과 HTML 둘 모두 미리보기(Previews)를 제공한다. 마크다운(.md) 파일을 열면 서식이 반영된 미리보기가 표시된다.  마크다운(Markdown)과 HTML 파일은 모두 오직 코드 에디터(code editor) 안에서만 편집할 수 있으며, Preview(미리보기) 화면에서는 편집하지 못한다.

    spacer.png

    마크다운(Markdown) 파일 지원:

    • 이메일 주소와 웹 링크, (이메일 주소는) 시스템의 기본 이메일 클라이언트 앱에서 열리고, (웹 링크)는 웹 브라우저에서 열린다.
    • 파일 링크, IDE 안에서 해당 파일이 열린다.
    • 이미지(Image)
    • 표(Table)

    또한 기타 표준 마크다운(Markdown) 서식 지원.

    이미지 링크와 파일 링크는 모두 절대(absolute) 경로, 또는 해당 마크다운 파일을 기준으로 한 상대(relative) 경로를 지정할 수 있다. 현재는 오직 로컬 경로만 지원되므로. 마크다운(Markdown) 파일이 웹 링크를 참조하고 있다면, 예를 들어 서버에서 이미지를 받아서 표시하도록 되어 있다면, 받아오지 못할 것이다.

    마크다운 파일을 프로젝트의 기본 ReadMe 파일로 지정할 수 있다. 그러면 프로젝트가 열릴 때 기본 ReadMe로 지정된 마크다운 파일이 나타난다. Project > Project Page Options 메뉴를 통해서 구성(configure)할 수 있다.

    2.5 인터넷 익스플로러(Internet Explorer)가 제거됨

    RAD 스튜디오 11.2 에서, IDE에 내장되었던 인터넷 익스플로러(Internet Explorer) 컨트롤은 IDE의 모든 곳에서 완전히 제거되었다. HTML 표현, 마크다운 지원, 헬프 인사이트(HelpInsight) 모두 이제는 네이티브 VCL HTML 컨트롤을 사용한다.

    2.6 폰트(Font)와 스타일(Styles)

    이전 버전까지는 IDE의 주요 화면에 표시되는 글꼴과 글자 크기를 편집하고 싶으면, 레지스트리 키(registry key)를 편집해야 했다. RAD 스튜디오 11.2 에서는 IDE의 UI 글꼴과 글자 크기를 변경하는 옵션이 제공된다. IDE Options > User Interface 페이지 안에 있는 ‘IDE Font’ 영역에서 지정하면 된다. 이와 유사하게, IDE가 커스텀 스타일을 사용하도록 설정하는 옵션이 예전 IDE의 UI 설정에서 안보였는데, 이제는 다시 사용할 수 있게 되었다. Options > User Interface > IDE Style 페이지에서 Light, Dark, Mountain Mist 스타일 뿐만 아니라 커스텀 VCL 스타일도 사용하도록 지정할 수 있다.

    2.7 Projects 뷰

    11.2 버전은 Projects 뷰 안에서 항목을 더블-클릭하면, 실행되는 동작이 달라졌다. 즉 트리의 항목(tree entry)이 폴더의 역할을 하는 경우, 펼치기/접기 동작만 실행되었지만, 이제는 더블-클릭을 할 때, 아래와 같이 작동한다.

    • 유닛(unit)을 더블-클릭하면 해당 유닛이 열린다.
    • 폴더(folder)를 더블-클릭하면 해당 폴더를 펼치거나 접는다.
    • 프로젝트(project)를 더블-클릭하면, 해당 프로젝트가 활성 프로젝트가 아니면, 활성 프로젝트가 된다. 만약 이미 활성 프로젝트인데 더블-클릭을 했다면, 해당 프로젝트를 펼치거나 접는다.
    • C++ 폼(form)을 더블-클릭하면, 해당 폼을 연다. 이때 해당 노드는 펼쳐지지 치지는 않는다.

    효과적으로, 더블-클릭은 마땅히 '옳은' 즉 예상되는 동작을 기본적으로 수행해야 한다. 무조건 트리(tree) 노드(node)를 펼치기만 하는 것은 좋지 않다.

    2.8 겟잇(GetIt) 향상

    RAD 스튜디오 11.2에서는, 사용자가 겟잇 패키지 매니저(GetIt package manager) 대화 창 안에서 언어 별로 필터링 할 수 있다. 이 옵션은 사용자가 RAD 스튜디오를 사용하는 경우, 즉 델파이와 C++을 모두 설치하여 사용하는 경우,에만 표시된다 (델파이, C++빌더 중 하나만 설치했다면 표시되지 않는다). 이 언어 필터를 사용하면 델파이 패키지만 또는 C++빌더 패키지만 나열된다. 자세한 내용은 겟잇 패키지 매니저 (Tools> GetIt Package Manager) 참조.

    겟잇 패키지 매니저(GetIt package manager) 대화 창에서, 사용자는 이제 로컬 파일 패키지 또는 온라인 패키지를 설치할 수 있다. 겟잇 패키지 매니저(GetIt package manager) 대화 창 왼쪽 가장 아래 즉 필터링 옵션 아래에 있는 ‘Load Local Package’를 사용하면 된다. 그러면, 패키지를 다운로드 할 수 있고 인터넷에 연결되지 않은 컴퓨터에서도 겟잇 패키지를 설치할 수 있다. 겟잇 패키지를 게시하기 전에 개발할 수도 있으며, 같은 팀에 소속된 여러 개발자들이 패키지들을 설치하는 단계를 단순화 할 수 있다. 이 기능은 업데이트 서브스크립션을 유지하고 있는 고객에게만 제공된다.

    2.8.1 웰컴 페이지

    • 웰컴 페이지에 ‘New In GetIt’ 창이 다시 들어왔다. 겟잇(GetIt) 안에서 가장 최근에 변경된 패키지들을 보여준다. 즉 라이브러리와 패키지 중에서 새로 추가되거나 업데이트된 것들을 찾아서 제시한다.
    • 모든 프로젝트가 닫히면 웰컴 페이지가 다시 열리는 것이 기본(default) 설정이다. 

    2.8.2 기타 IDE 향상

    • Reopen 목록이 채워지는 시점은 프로젝트가 열릴 때이다. 닫을 때가 아니다. 즉, 프로젝트를 닫지 않고 그냥 IDE를 종료해도, Reopen 목록에는 가장 최근에 열었던 프로젝트가 나타난다.
    • 원격 데스크탑 환경에서 IDE를 실행 할 때와 관련하여, 몇가지 성능 향상과 전반적인 품질 픽스가 반영되었다.
    • '컴파일 진행 대화창'과 '로컬 파일 캐시(Cache) 업데이트 진행 대화창(원격 SDK를 업데이트할 때 사용됨)'에서 코드 줄과 바이트 숫자가 해당 현지 로케일에 맞게 표시된다. 해당 숫자들을 더 쉽게 읽을 수 있다.
    • 항목을 더 쉽게 찾을 수 있도록, File > New > Other > Inheritable Items 안에 있는 옵션들을 이제 정렬할 수 있다.
    • IDE에서 설정을 변경할 때 우리는 ‘Options’ (예: IDE > Options 또는 Project > Options)를 사용한다. 하지만 몇몇 메뉴 항목들은 'Options'가 아니라  ‘Properties’를 사용하여 옵션을 연다. 이런 이름들이 이제 조정되었다. 이제는 코드 에디터의 탭에서 컨텍스트 메뉴를 열면  ‘Tab Options’가 표시되고, 코드 에디터에서 컨텍스트 메뉴를 열면  ‘Editor Options’가 표시된다. 그리고 코드 에디터의 상태 바(status bar)에  ‘Status Bar Options’가 새로 추가되었다.
    • 이외에도, IDE 전반에 걸쳐 다양한 품질 픽스가 반영되었다. 특히 high DPI와 관련된 것들이 많다.

    3 LSP 향상 (델파이와 C++)

    3.1 델파이 LSP

    3.1.1 비활성 코드를 다르게 표현

    RAD 스튜디오 11.2부터 코드 에디터(code editor)는 IFDEF 안에 있는 비활성 코드(조건에 따라 컴파일 대상에서 빠지는 / 컴파일 되지 않는 코드)를 컴파일 되는 코드와 다르게 표현한다.

    비활성화되는 코드들은 탈색된 색상 즉 배경 색이 반영되어 반투명하게 흐린 색상으로 표현된다. 비활성되는 구역 안에 있는 모든 코드와 에디터 표시는, 코드이든 아니면 괄호 강조 표시이든, 선택되었다는 표시이든 모두가 활성화되는 코드 구역보다 약하게 표현된다. 비활성화되는 코드는 한글자만 있을 수도 있지만, 꽤 길어서 몇줄에 걸쳐서 들어가는 경우도 상당하다.

    델파이LSP(DelphiLSP)가 이 기능을 제공하기 때문에, 해당 LSP 서버가 알고 있는 정의된 매크로($define-s) 지식을 반영한다. 이 방식은 DelphiLSP 애드-온을 통해 VSCode에서 DelphiLSP를 사용할 때에도 작동한다.

    spacer.png

    (소개 비디오 보기)

    3.1.2 XSLT Transforms for Help Insight

    RAD 스튜디오 11.2에서 Help Insight가 향상되었다. Help Insight 툴팁(tooltip)은 델파이LSP를 사용하는데, 해당 XML에 XSLT 변형을 실행하여 생성한다. HelpInsight.xsl를 편집하면 이 변형 규칙을 변경할 수 있다. 주의! 해당 XML 안에 있는 HTML이 전달되어만, 10.4 이전에 있던 기능이 복구된다.

    3.1.3 색상 상수가 코드 완성(Code Completion)과 툴팁 인사이트(Tooltip Insight)에 표시됨

    VCL 또는 FMX의 색상 상수 (예: clWindow, clRed, 등등)를 완성할 때, 코드 완성 창에는 해당 색상의 미리보기와 16진수(hex) 값이 나타난다. 

    spacer.png

    색상 상수 위에 마우스를 올렸을 때에도 툴팁이 나타나고 같은 방식으로 색상이 표시된다.

    3.2 C++과 cquery

    Cquery 성능이 현격하게 향상되었다.  크게 향상된 성능, 프로젝트와 프로젝트 그룹 관리 개선, CPU 사용 제한과 같은 것들이 11.2에 반영되었다.  C++ 업데이트만 반영한 버전인 11.1.5이 그 기반이다. 

    3.2.1 C++ LSP

    IDE의 도구 옵션, 즉 Tools > Options > User Interface > Editor > Language 안에 있는 C++ LSP 페이지에는 “LSP Behavior”이라는 탭이 있다. 11.0부터 있었지만, 이번에 세번째 설정 즉 ‘Index all files in the project group’이 추가되었다. 더 많은 정보를 Configuring C++ Code Insight 도움말을 보면, 당신의 프로젝트와 니즈(needs)에 알맞게 튜닝할 수 있다.

    4 컴파일러와 툴체인(Toolchain) 향상

    4.1 안드로이드 타겟 API

    이 버전은 안드로이드 API Level 32를 타겟으로 한다 (11.1 버전에서 지원된 API level 30에서 더 올라왔다). 주된 이유는 구글 플레이 스토어에서 안드로이드 API level 31을 필수 조건으로 지정했기 때문이다. 일정 유예 기간이 지나면, 새 앱은 2022년 8월부터, 앱을 업데이트하는 경우에는 2022년 11월 부터 강제 사항이 된다.

    안드로이드 툴체인(toolchain)에 관련된 변경이 몇가지 있었다. 아래 내용들은 델파이 (32-bit와 64-bit),  C++Builder (32-bit) 모두에 적용된다.

    • RAD 스튜디오가 설치될 때 함께 설치되는 JDK의 버전이 업데이트되었다 (최신 안드로이드 SDK와 도구들을 위해 필요).
    • 'targetSdkVersion' 매니페스트(manifest ) 어트리뷰트의 기본 값이 32로 올라갔다. 
    • 'AndroidManifest.xml' 템플릿을 업데이트하여 'FMXNativeActivity' 액티비티의 선언 안에서 'exported' 어트리뷰트의 값을 설정하도록 했다 (API Level 31 지원을 위해 필요).

    RAD 스튜디오 11.2 버전에서는 이제 PKCS12 키스토어(Keystore)를 지원하며, 새 퍼미션(permissions)들이 프로젝트 옵션 대화창 안에 있는 Application > Uses Permissions 페이지 안에 추가되었다. 또한 안드로이드 자바 SDK 파인더(finder)가 업데이트 되어 Eclipse Adoptium JDK를 사용할 수 있는 경우, 이제는 다른 JDK를 제치고 이것을 사용하도록 되었다.

    4.2 AndroidManifest.template.xml 파일 업데이트

    이전 RAD 스튜디오 버전에서 만든 안드로이드 플랫폼을 타겟으로 해서 만든 파이어몽키 애플리케이션 프로젝트가 있는 경우, AndroidManifest.template.xml 파일을 당신의 프로젝트 루트(root) 디렉토리에서 제거해야 한다. AndroidManifest 페이지에 있는 단계를 따라 진행하여 해당 AndroidManifest.template.xml 파일이 FMXNativeActivity 액티비티 선언 안에서 해당 'exported' 어트리뷰트에 값을 지정할 수 있도록 확실히 보장 해야 한다.

    4.3 델파이 iOS 시뮬레이터(Simulator) 지원

    RAD 스튜디오 11.2 버전은 델파이에서 iOS 시뮬레이터(Simulator)를 지원한다. 이 기능은 오직 ARM-64에서 작동하는 맥OS 장비 (M1 또는 M2)용 iOS 시뮬레이터 바이너리만 생성할 수 있다. (소개 글 보기)

    알아둘 점: 애플은 인텔 맥OS를 단계적으로 중단하고 있다. 따라서 RAD 스튜디오는 인텔 맥OS 하드웨어용 iOS 시뮬레이터를 지원하지 않으며 그 대신 ARM-64 만을 목표로 집중한다.

    RAD 스튜디오 IDE는 ARM-64용 iOS 시뮬레이터를 타겟으로 하는 애플리케이션을 컴파일, 배포, 실행, 디버깅 할 수 있다.

    spacer.png

    (소개 비디오 보기)

    4.4 델파이 컴파일러 향상

    RAD 스튜디오 11.2의 델파이 컴파일러 향상의 일환으로, 주소 공간 배치 무작위화 (ASLR, Address Space Layout Randomization) 지원을 확대하여, 윈64 플랫폼에서 Entropy ASLR (HE ASLR)을 지원하도록 높은 위치에서 메모리 주소 무작위화할 수 있는 능력이 추가되었다.

    4.5 C++ 컴파일러와 툴체인(Toolchain) 향상

    이 버전은 C++ 툴체인(toolchain) 내부의 품질이 향상되었다. 해당되는 품질 향상 몇가지를 꼽으면 다음과 같다.

    • Ilink64에 여러 가지 픽스가 반영되었다.
    • VIRDEF 최대값을 초과하면 C++ 컴파일러는 이제 에러를 일으킨다. 최대값 초과는 이전 버전까지 해당 링커에 에러가 생기는 원인이었다.
    • STL IO스트림 성능이 크게 향상되어서 이제는 이전보다 처리 시간이 25% 이내로 줄어든다
    • 오브젝트 컨버터 (omf2coff)가 향상되었다.
    • 지연 로딩(delay loading)이 향상되었다.
    • 델파이에 있는 수많은 레코드 헬퍼(record helper)가 C++ 안에 통합되었다.
    • C++ 컴파일러와 RTL 내부의 품질이 전반적으로 향상되었다.

    4.6 디버거(Debuggers)

    4.6.1 Win64 C++용 LLDB

    Win64용 C++ 디버거를 사용하여 원격 디버깅을 할 수 있다.

    4.6.2 델파이용 LLDB

    11.2 버전은 iOS64와 iOS 시뮬레이터를 대상으로 디버깅을 할 수 있다.

    RAD 스튜디오 LLDB의 델파이 지원이 많이 향상되어 델파이 언어 이해 수준이 높아졌다. 예를 들면 세트(Sets), 동적 배열(dynamic arrays), nil, 포인터 캐스트(pointer casts), 빈 스트링(string), 등등을 기본적으로 지원한다.

    11.2에서, LLDB 디버거가 사용되는 플랫폼은 다음과 같다.

    • C++ Win64
    • 델파이 맥OS ARM 64
    • 델파이 맥OS Intel 64
    • 델파이 안드로이드 64
    • 델파이와 C++ iOS 64
    • 델파이 iOS ARM 시뮬레이터 (ARM 64)
    • 델파이 리눅스 64

    LLDB로 옮기겠다는 우리의 장기 전략의 일환이다.

    4.6.3 LLDB의 델파이 리눅스 지원

    이 버전에서 LLDB의 델파이 리눅스(Linux) 64bit 지원이 추가되었다. 예전에 리눅스64는 GDB를 사용했으며, 기본(basic) 타입이 아니면 무엇이든 평가(evaluating)와 관련된 이슈가 많이 보고되었다. 우리는 LLDB를 사용하면 크게 향상될 것이라고 믿는다.

    표준 입력(예: ReadLn)을 사용하는 리눅스 콘솔 애플리케이션을 디버깅하려면, using a launcher application 에 대한 도움말을 보라.

    4.6.3.1 파이썬 3 (Python 3) 연결하기

    PAServer를 통해서 리눅스에서 LLDB를 실행하려면, 파이썬 3(Python 3)이 설치되어야 하고, LLDB가 그것을 찾을 수 있어야 한다. 파이썬 참조와 관련하여 에러가 난다면, Known Issues for info on configuring Python 3을 보라.

    5 VCL과 파이어몽키(FireMonkey) 변경

    5.1 TEdgeBrowser와 TWebBrowser 안에 있는 웹뷰2(WebView2)

    • 새로 추가된 TWebBrowser.EdgeUserDataFolder 프로퍼티를 사용하면, 사용자 데이터 (쿠키, 캐시, 리소스, 등등)를 저장할 수 있다.
    • 새로 추가된 TWebBrowser.EdgeBrowserExecutableFolder 프로퍼티를 사용하면, 당신의 앱에서 해당 시스템의 웹뷰2(WebView2) 런타임을 사용하지 않고, 당신이 지정한 웹뷰2 런타임을 사용하도록 할 수 있다.
    • Web View 2 API의 정의를 업데이트 했다 (해당 VCL 컴포넌트와 바이너리 호환이 되지 않는다) ICoreWebView2_2 인터페이스 지원 등이 여기에 해당한다. 

    5.2 VCL 일반 향상

    이 버전은 새 기능 보다는 품질에 집중했다. 몇가지 주요 개선 사항은 다음과 같다.

    • TNumberBox의 입력 관리 향상
    • TDateTimePicker의 형식(format) 설정 향상
    • CardPanel들을 프레임 안에서 사용하기
    • TCardPanel을 삭제하기
    • bsSplitButton을 통해 TButton의 PopupComponent 프로퍼티를 향상
    • OwnerData가 True 일 때, TListView 겹침 개선
    • TBalloonHint의 High DPI 개선

    5.3 파이어몽키(FireMonkey)

    이 버전은 새 기능 보다는 품질과 성능에 더 집중했다. 몇가지 주요 개선 사항은 다음과 같다.

    • TBufferedLayout은 담겨있는 컨트롤의 스타일 업데이트에 반응한다.
    • FMX 스타일 디자이너의 버튼에 힌트(hint)가 추가되었다.
    • Metal iOS에서 비트맵(bitmap) 처리가 향상되었다.
    • iOS의 상태 바(status bar)를 지원하기 위해 어두운(dark) 아이콘을 제공한다.
    • TPathData에 대한 처리(processing)와 렌더링(rendering) 둘 다 품질과 성능 면에서, 향상되었다. quadratic Bézier curve commands와 기타 변형|(transformations) 등이 여기에 해당된다.
    • GPU 캔버스(canvas) 에서 TPath 렌더링(rendering) 속도가 향상되었다.
    • TListBox에서 Shift+클릭을 지원하여 범위를 선택할 수 있게 되었다.

    6 RTL과 Data

    6.1 FireDAC의 reFind 유틸리티

    FireDAC 리파인드(reFind) 유틸리티dbGo 프로젝트를 FireDAC으로 마이그레이션 하는 것을 도와 줄 수 있다. 마이그레이션 스크립트 뿐만 아니라, 호환성 유닛인 FireDAC.ADO.Migrate.pas도 제공된다.

    reFind.exe을 사용하여 코드를 교체할 때, "기존 코드를 삭제하지 말고 주석처리하여 남겨 놓기" 옵션이 새로 추가되었다. /C 옵션을 포함하여 reFind를 실행하면 이전 코드를 삭제하지 않고 주석으로 남겨둔다.

    6.2 FireDAC의 드라이버 업데이트

    FireDAC이 MS-SQL 서버용 최신 마이크로소프트 ODBC 드라이버를 지원한다(version 18).

    MSSQL 드라이버를 향상하여 M1 맥OS에서 SQL_C_WCHAR를 더 잘 다룬다.

    MongoDB의 새 트랜잭션 기능을 지원한다. 주요 MongoDB API는  FireDAC.Phys.MongoDBWrapper.pas 유닛에 있다. 이 새 API에서 새 트랜잭션을 지원하는 기능은 아래 요소에 들어있다.

    • TMongoTransactionOptions 클래스
    • TMongoSession 클래스
    • TMongoConnection.NewSession 메소드
    • TMongoCollection.Session 메소드

    6.3 FDMonitorFDExplorer

    FDMonitor 도구가 향상되었다. 특히,

    • FDExplorer / FDMonitor는 이제 SQL 뷰 안에서 구문 강조 표시(syntax highlighting)를 반영한다. (소개 비디오 보기)
    • FDMonitor에 "SQL Output" 뷰가 새로 추가되었다. 이것은 오직 SQL 명령(command) 만을 추적한다.
    • FDMonitor에 "SQL Output" 뷰를 추적하는 옵션이 새로 추가되었다.
    • FDExplorer / FDMonitor에 이제 Search / Search Next 명령이 들어있다.
    • TFDMoniEventKind에 새 항목으로 ekSQL, ekSQLVarIn, ekSQLVarOut이 추가되었다. 이것들은 "SQL Output"에 결과를 생산한다.
    • ODBC 드라이버를 최적화하여 ekVendor가 빠져있을 때 추적(tracing)이 활성화된다.
    • TFDConnectionDef 로딩을 최적화했다.
    • HighDPI에서 글자 크기가 개선되어서 FDExplorer와 FDMonitor 모두에 반영되었다.

    또한, 내장된 FireDAC SQL 텍스트 프로퍼티 에디터에서 이제 SQL 구문 강조 표시가 반영되고, 줄 번호를 표시한다. 또한  Ctrl+F, Ctrl+R, F3, Alt-G 와 같은 자주쓰는 단축키를 지원한다.

    6.4 RTL 향상

    델파이의 RTL 향상은 다음과 같다.

    6.4.1 ZLib

    내장된 ZLib를 1.2.12로 업데이트했다. 그 결과 최근에 패치된 취약점을 해결했다. 일부 기타 ZIP 파일의 동작 즉 압축되지 않고 "저장된" 파일 사용하기, 주석(comment) 관리, 잘린 ZIP 데이터를 다루는 ZDecompressStream는 동작 등이 향상되었다. 또한 System.Zip은 이제 리눅스에서 심링크(symlink)를 보존할 수 있다. 

    작은 데이터 패키지를 작성할 때의 Zlib 성능이 향상되었다.

    6.4.2 일반

    • TProxySubrangeStream 클래스가 System.Classes.pas 유닛에 새로 생겼다. 이 새 스트림 클래스는 "다른 스트림의 일부 범위"를 나타내고 프록시(proxy)처럼 동작한다.
    • PCRE 정규표현(regex) 엔진은 JIT를 활성화하여 컴파일 한다. 따라서 성능이 훨씬 더 좋다. 또한 이 라이브러리는 이제 TRegEx 레코드 안에서 TPerlRegEx.Study 프로시저를 노출한다.
    • 몇가지 RTTI-관련 향상이 있었다. 여기에는 TVirtualMethodInterceptor에서 const 파라미터 사용, "pascal" 호출 컨벤션(calling  convention)을 사용하여 호출(invocation), iOSDevice64에서 float 타입 값으로 인한 TVirtualInterface 이슈 등이 해당된다.
    • 몇가지 핵심 기능이 최적화되었다. 여기에는 (여러가지 중에)  TStringHash, InternalUniqueStringA, InternalUniqueStringU, 그리고 System 유닛에 들어있는 함수인 _UStrEqual과 _UStrCmp, 그리고 SysUtils.CompareStr 등이 해당된다.
    • System.SysUtils.StrToFloatDef는 해당 숫자 예외(exception) 마스크(mask)를 더 이상 변경하지 않는다.

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

    TRestRequest에서 MIME 타입과 multipart/form-data를 다루는 능력이 향상되었다. 또한, Windows에서 프록시 탐지(proxy detection)가 향상되었고, THTTPNetClient는 안드로이드에서 SSL-certificate(인증서) 확인 기능이 향상되었다.

    7 RAD 서버

    Rad 서버 향상:

    • New! RAD 서버용 인증 토큰(token)/세션(session) 만료. RAD 서버 구성 파일 (EMS.INI) 안에 SessionTimeoutAdded 라는 새 파라미터가 추가되었다. emsserver.ini 파일 안에 새 구성 옵션을 통해 FireDAC 구성 파일인 FDConnectionDefs.ini와 FDDrivers.ini 파일에 대한 경로를 명시할 수 있다.
    • 커스텀 세션 토큰을 이용하여 TEMSFireDACClient.PostUpdates를 사용하는 것이 가능해졌다.
    • TEMSFileResource의 목록 기능이 향상되었다.
    • RAD 서버 라이트 (RAD Server Lite) 안에 있던 부정확한 사용자 2명 제한이 제거되었다
    • RAD 서버 로그 기능에 접속자의 IP 주소와 날짜/시각(DateTime)이 추가되었다.
    • TEMSFireDACClient 컴포넌트 (TRESTRequest 컴포넌트와 유사하게) 컨텍스트 메뉴 항목 실행()이 추가되었다. 따라서, 당신은 결과 세트(result set)를 기반으로 영속 필드(persistent field)를 생성할 수 있다.

    8 명령 줄(Command Line)과 ToolsAPI에서 SKU와 플랫폼 조회(Querying)

    RAD 스튜디오 11.2에서, 써드-파티(third-party) 컴포넌트나 플러그인(plugin)을 제공하는 벤더들은 설치된 SKU (아키텍트, 커뮤니티 등)가 무엇인지, 설치된 플랫폼이 무엇인지 (윈64, 맥OS ARM, 등), 설치된 Personality(델파이, C++, 또는 둘다)가 무엇인지, 평가판인지 아닌지 등을 조회할 수 있다. 설치된 SKU가 무엇인지 알 수 있으면 컴포넌트를 설치할 때, 당신의 설치자(installer) 안에 기능을 넣을 때, IDE 안에서 개발 화면의 동작을 변경할 때와 같은 상황에서 의사 결정을 하는데 도움이 된다.

    bds.exe를 실행할 때 /ProductInfo:KIND 파라미터를 넣으면 콘솔에서 결과를 얻을 수 있다. KIND는 평가판(Trial), 플랫폼(들), 또는 Personality 등이 될 수 있다. 더 자세한 내용는 General options for BDS.EXE 페이지에 있다.

    새로 추가된 IOTAVersionSKUInfoService 인터페이스를 이용하면 설치된 플랫폼(들), 해당 SKU, 평가판 여부를 조회할 수 있다.

    8.1 기타 참고 (See Also)




    User Feedback

    표시할 리뷰가 없습니다.


×
×
  • Create New...

중요한 정보

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