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

이 사이트 검색

검색 태그: '11.1'.

  • 태그로 검색

    태그 사이를 쉼표(,)로 구분하세요.
  • 작성자로 검색

콘텐츠 유형


게시판

  • 엠바카데로 (Embarcadero) 개발도구: 델파이 (Delphi), C++빌더 (C++Builder), RAD 스튜디오 (RAD Studio)
    • [기술 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [설치/등록 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [기술 기고 게시판] 델파이, C++빌더, RAD 스튜디오
    • [포트폴리오 게시판] 내가 참여한 프로젝트/프로그램 소개
    • [구인 게시판] 개발자 채용/프로젝트 의뢰
  • 엠바카데로 (Embarcadero) DBMS: 인터베이스 (InterBase)
    • [기술 Q&A 게시판] 인터베이스
    • [설치/등록 Q&A 게시판] 인터베이스
    • [기술 기고 게시판] 인터베이스
  • 비주얼 스튜디오 (Visual Studio) 관련 도구
    • [기술 Q&A 게시판] 비주얼 어시스트
    • [설치/등록 Q&A 게시판] 비주얼 어시스트
    • [기술 기고 게시판] 비주얼 어시스트
  • 구록 (Gurock) 테스트도구: 테스트레일 (TestRail)
    • [기술 Q&A 게시판] 테스트레일
    • [설치/등록 Q&A 게시판] 테스트레일
    • [기술 기고 게시판] 테스트레일
  • 아이데라 (Idera) 데이터 도구: 아쿠아 데이터 스튜디오 (Aqua Data Studio), ER/Studio 등
    • ER스튜디오 (ER/Studio)
    • 아쿠아 데이터 스튜디오 (Aqua Data Studio)
  • API레이어 (Apilayer) 개발 도구: API레이어 (Apilayer)
    • [Q&A 게시판] API레이어 (Apilayer)
  • 엠바카데로 (Embarcadero) 라이선스 서버: ELC (Enterprise License Center)
    • [게시판] ELC (Enterprise License Center) 라이선스 서버
  • 이 사이트 이용 관련
    • [게시판] 이 사이트 관련 이용 팁과 Q&A

Categories

  • 이달의 기술자료: 엠바카데로
  • 비디오 세미나
    • UX Summit
    • DelphiCon
    • CodeRage
    • 데브기어 세미나
    • Skill Sprint
  • 기술백서(PDF)

Categories

  • 시작하기
  • 설치/등록/라이선스
  • 튜토리얼
  • 도서

Categories

  • RAD 스튜디오 역사관
  • 11 알렉산드리아
  • 10.4 시드니
  • 10.3 리오
  • 10.2 도쿄
  • 10.1 베를린
  • 10.0 시애틀
  • XE8~XE
  • 2010~6.0

...에서 결과 찾기

검색어 일치 조건


최초 작성일

  • Start

    End


최종 변경일

  • Start

    End


개수로 필터링...

가입

  • Start

    End


Group


자주 쓰는 도구

  1. Kori

    [11.1.5] 알렉산드리아 - 릴리스 1.5

    << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1.5"를 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 7월 14일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. 이 릴리즈 1.5 (즉, 11.1.5 버전)은 C++빌더 코드 인사이트를 업데이트한 버전이다. 이 버전은 C++빌더 또는 RAD 스튜디오를 구입하여 C++빌더의 기능을 사용하는 사용자 만을 위해 C++ 코드 자동 완성 그리고 이와 관련된 C++ 기능을 향상하였다. 전적으로 C++에 집중된 버전이므로, 델파이 고객에게는 전혀 좋은 점이 없으며, 델파이 고객이 이 11.1.5 버전을 설치하는 것은 권장하지 않는다. 이 버전은 완전한 설치본이며 11.1 이후의 모든 핫픽스가 포함되어 있다. RAD 스튜디오 11.1.5 알렉산드리아에는 아래와 같은 새로운 기능과 강화된 기능이 포함되었다. 목차 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 1.2 프로젝트 생성 시 자동 저장 옵션 1.3 진행 알림 (Progress Notifications) 1.4 다중 코드 이동 위치 (Multiple Navigation locations) 1.5 색인 지연하기 (Delayed indexing) 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 1.7 품질 향상 1.8 기타 참고 (See Also) 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 새 C++ 프로젝트를 저장할 때, IDE에는 해당 프로젝트를 저장하는 창이 먼저 표시되고 나서 새 유닛(들)을 저장하는 창이 표시된다. 사전에 컴파일된 헤더는 프로젝트가 저장될 때 자동으로 함께 저장되며 따로 파일명과 위치를 입력하도록 요청하지 않는다. 1.2 프로젝트 생성 시 자동 저장 옵션 다른 C++ IDE들의 방식과 맞출 수 있도록, 프로젝트가 생성되면 코드 인사이트(Code Insight)도 즉시 활성화할 수 있는 옵션이 추가되었다. 이 옵션이 켜져있으면 프로젝트가 생성될 때 해당 프로젝트와 파일이 바로 저장된다. 이 기능을 변경하려면 IDE 메뉴, Options > Desktop > Saving에서 해당 설정을 변경한다. 1.3 진행 알림 (Progress Notifications) RAD 스튜디오 11.1.5에서 C++ LSP 파싱(parsing) 진행 상태는, 델파이와 마찬가지로, Projects 화면 맨 아래에 있는 LSP 진행 막대 안에 표시된다. 1.4 다중 코드 이동 위치 (Multiple Navigation locations) RAD 스튜디오 11.1.5에서 드롭 다운 목록은 코드 완성과 유사하게 보이는데, 키보드 또는 마우스를 이용하여 해당 코드로 이동할 수 있다. 만약 해당 위치가 이미 에디터(코드 편집 화면)에 열려있는 상태라면, 문맥에 맞는 더 많은 정보가 여기에 표시된다. 1.5 색인 지연하기 (Delayed indexing) 소스 코드 색인(index) 작업은 CPU 소모가 매우 클 수도 있다. RAD 스튜디오에 있는 LSP 서버는 파일이 변경될 때 마다 기본 색인을 한다. 11.1.5 버전부터는 개발자가 저장을 하는 (Ctrl+S) 경우에만 색인을 하도록 선택할 수 있는 새로운 설정 옵션이 추가되었다. 알아둘 점: 이 기능이 켜져있으면, 표시되는 코드 완성 드롭 다운 목록, 코드 이동 결과 위치 등 코드 인사이트가 작동한 결과는 개발자가 저장하기를 누르기 전까지는 업데이트 되지 않는다. 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 IDE의 Tools Options 메뉴 중에서, Tools > Options > User Interface > Editor > Language 를 보면, C++ LSP 페이지 안에 “LSP Behavior”라는 탭이 있다. 11.0 버전에서 이미 이 탭이 추가되었었는데, 여기에 새 옵션이 하나 더 추가되어 세번째 옵션으로 ‘Index all files in the project group’이 생겼다. 더 자세한 정보를 알고 싶으면, 도움말의 Configuring C++ Code Insight 을 통해서 각자의 프로젝트와 니즈에 맞게 설정하는 방법을 알 수 있다. 1.7 품질 향상 RAD 스튜디오 11.1.5에는 C++빌더 11.1과 RAD 스튜디오 11.1을 사용하고 있는 C++ 개발자를 위한 품질 개선 등이 포함되었다. 여기에는 성능 향상, 코드 완성 결과 표시, 코드 이동 향상 등이 해당되며, 클래식 컴파일러 사용자들이 보고한 이슈와 프로젝트 안에서 모든 파일을 저장할 때 발생하는 이슈 등등이 해소되었다. 1.8 기타 참고 (See Also) 11.1 새기능 Installation Notes Release Notes New features and fixed issues 과거 버전의 새기능
  2. << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1.5"를 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 7월 14일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. 이 릴리즈 1.5 (즉, 11.1.5 버전)은 C++빌더 코드 인사이트를 업데이트한 버전이다. 이 버전은 C++빌더 또는 RAD 스튜디오를 구입하여 C++빌더의 기능을 사용하는 사용자 만을 위해 C++ 코드 자동 완성 그리고 이와 관련된 C++ 기능을 향상하였다. 전적으로 C++에 집중된 버전이므로, 델파이 고객에게는 전혀 좋은 점이 없으며, 델파이 고객이 이 11.1.5 버전을 설치하는 것은 권장하지 않는다. 이 버전은 완전한 설치본이며 11.1 이후의 모든 핫픽스가 포함되어 있다. RAD 스튜디오 11.1.5 알렉산드리아에는 아래와 같은 새로운 기능과 강화된 기능이 포함되었다. 목차 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 1.2 프로젝트 생성 시 자동 저장 옵션 1.3 진행 알림 (Progress Notifications) 1.4 다중 코드 이동 위치 (Multiple Navigation locations) 1.5 색인 지연하기 (Delayed indexing) 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 1.7 품질 향상 1.8 기타 참고 (See Also) 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 새 C++ 프로젝트를 저장할 때, IDE에는 해당 프로젝트를 저장하는 창이 먼저 표시되고 나서 새 유닛(들)을 저장하는 창이 표시된다. 사전에 컴파일된 헤더는 프로젝트가 저장될 때 자동으로 함께 저장되며 따로 파일명과 위치를 입력하도록 요청하지 않는다. 1.2 프로젝트 생성 시 자동 저장 옵션 다른 C++ IDE들의 방식과 맞출 수 있도록, 프로젝트가 생성되면 코드 인사이트(Code Insight)도 즉시 활성화할 수 있는 옵션이 추가되었다. 이 옵션이 켜져있으면 프로젝트가 생성될 때 해당 프로젝트와 파일이 바로 저장된다. 이 기능을 변경하려면 IDE 메뉴, Options > Desktop > Saving에서 해당 설정을 변경한다. 1.3 진행 알림 (Progress Notifications) RAD 스튜디오 11.1.5에서 C++ LSP 파싱(parsing) 진행 상태는, 델파이와 마찬가지로, Projects 화면 맨 아래에 있는 LSP 진행 막대 안에 표시된다. 1.4 다중 코드 이동 위치 (Multiple Navigation locations) RAD 스튜디오 11.1.5에서 드롭 다운 목록은 코드 완성과 유사하게 보이는데, 키보드 또는 마우스를 이용하여 해당 코드로 이동할 수 있다. 만약 해당 위치가 이미 에디터(코드 편집 화면)에 열려있는 상태라면, 문맥에 맞는 더 많은 정보가 여기에 표시된다. 1.5 색인 지연하기 (Delayed indexing) 소스 코드 색인(index) 작업은 CPU 소모가 매우 클 수도 있다. RAD 스튜디오에 있는 LSP 서버는 파일이 변경될 때 마다 기본 색인을 한다. 11.1.5 버전부터는 개발자가 저장을 하는 (Ctrl+S) 경우에만 색인을 하도록 선택할 수 있는 새로운 설정 옵션이 추가되었다. 알아둘 점: 이 기능이 켜져있으면, 표시되는 코드 완성 드롭 다운 목록, 코드 이동 결과 위치 등 코드 인사이트가 작동한 결과는 개발자가 저장하기를 누르기 전까지는 업데이트 되지 않는다. 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 IDE의 Tools Options 메뉴 중에서, Tools > Options > User Interface > Editor > Language 를 보면, C++ LSP 페이지 안에 “LSP Behavior”라는 탭이 있다. 11.0 버전에서 이미 이 탭이 추가되었었는데, 여기에 새 옵션이 하나 더 추가되어 세번째 옵션으로 ‘Index all files in the project group’이 생겼다. 더 자세한 정보를 알고 싶으면, 도움말의 Configuring C++ Code Insight 을 통해서 각자의 프로젝트와 니즈에 맞게 설정하는 방법을 알 수 있다. 1.7 품질 향상 RAD 스튜디오 11.1.5에는 C++빌더 11.1과 RAD 스튜디오 11.1을 사용하고 있는 C++ 개발자를 위한 품질 개선 등이 포함되었다. 여기에는 성능 향상, 코드 완성 결과 표시, 코드 이동 향상 등이 해당되며, 클래식 컴파일러 사용자들이 보고한 이슈와 프로젝트 안에서 모든 파일을 저장할 때 발생하는 이슈 등등이 해소되었다. 1.8 기타 참고 (See Also) 11.1 새기능 Installation Notes Release Notes New features and fixed issues 과거 버전의 새기능 View full RAD 스튜디오 버전별 신기능
  3. 엠바카데로 블로그에 마르코 칸투가 쓴 "RAD Studio 11.1 and Windows PE Security Flags"를 번역한 글 (원문 작성일: 2022년 3월 25일, 번역일: 2022년 3월 30일) Delphi and C++Builder in 11.1 enable by default a number of PE security flags for Windows applications, some of which were already available, but a bit hidden. 델파이와 C++빌더는 11.1에서 윈도우 애플리케이션용 여러 PE 보안 플래그를 기본적으로 활성화한다. 그 중 일부는 살짝 숨겨져 있었을 뿐 이미 있었던 것들이다. -------- Delphi has long had some support for ASLR and some of the other recommended Windows security flags. In the recent 11.1 release, Embarcadero made it easier to use those flags in both Delphi and C++Builder, by surfacing specific linker options, enabling them by default, and also building packages and applications that are part of RAD Studio with those flags enabled. 델파이는 오랫동안 ASLR 및 기타 권장 윈도우 보안 플래그를 지원해 왔다. 최근 11.1 릴리스에서 엠바카데로는 델파이와 C++빌더 모두에서 해당 플래그를 더 쉽게 사용할 수 있도록 했다. 여기에는 특정 링커 옵션을 쉽게 찾을 수 있도록 꺼내 놓기, 옵션을 기본적으로 활성화하기, RAD 스튜디오의 일부인 패키지와 애플리케이션을 해당 플래그를 활성화한 상태에서 빌드하기 등이 포함된다. 해당 윈도우 PE 플래그에 대한 추가 사항 (More on these Windows PE Flags) 데이터 실행 방지(DEP, Data Execution Prevention) Allows the system to mark one or more pages of memory as non-executable preventing code from running from these regions of memory, making it harder to exploit buffer overruns. You can read more about it in the Microsoft documentation here. 시스템은 하나 이상의 메모리 페이지를 실행 불가능으로 표시하여 이 메모리 영역에서 코드가 실행되지 않도록 할 수 있다. 그 결과, 버퍼 오버런을 악용하기 어렵게 만든다. 더 자세한 내용은 마이크로소프트 설명서에 있다. 주소 공간 배치 무작위화(ASLR, Address Space Layout Randomization) Randomly arranges the address space positions of key data areas of a process, including the base of the executable and the positions of the stack, heap and libraries. Prevents exploitation of memory corruption vulnerabilities. You can read more about ASLR on Wikipedia. 프로세스의 주요 데이터 영역이 차지하는 주소 공간 위치를 무작위로 배정한다. 여기에는 실행 파일의 기반 뿐만 아니라 스택(stack), 힙(heap), 라이브러리의 위치도 포함된다. 그 결과, 메모리 손상 취약점을 악용하지 못하게 방지한다. 더 자세한 내용은 위키피디아에 있는 ASLR에 대한 설명을 읽기 바란다. 고-엔트로피(High-entropy) 64비트 ASLR (64-비트 애플리케이션에서만) Allows ASLR to use the entire 64-bit address space, as you can read here. ASLR은 전체 64비트 주소 공간을 사용할 수 있다. 자세한 내용은 여기를 참고 터미널 서비스 (Terminal Services) Create Terminal Server aware (TSAWARE) applications. This is not related with security and covered by Microsoft here. 터미널 서버를 인식하는 (TSAWARE) 애플리케이션을 생성한다. 이것은 보안과 관련이 없으며 마이크로소프트가 여기에서 설명한다. RAD 스튜디오 지원 능력 향상 (RAD Studio Improved Support) While compiler flags existed before, the RAD Studio IDE now exposes these flags as linker options. You can see below the settings for Delphi and C++ Windows compilers (thanks for the images to Jim McKeeth) 컴파일러 플래그는 이미 예전부터 있었다. 하지만 이제는 RAD 스튜디오 IDE 안에 있는 링커 옵션에서 쉽게 설정할 수 있다. 아래 그림은 델파이와 C++에서 윈도우 컴파일러 옵션을 설정하는 화면이다 (이미지를 제공해준 Jim McKeeth에게 감사한다). 몇 가지 주의 사항 (A Couple of Caveats) The ASLR compiler configuration works as expected for Delphi applications that use runtime package. For programs that link in libraries in the executable, there is a conflict with the way programs refer to delayed loaded DLL functions, which is preventing the expected behavior. This is an issue Embarcadero found after the release and would provide a fix for in the (near) future. ASLR 컴파일러 구성은 런타임 패키지를 사용하는 델파이에서 예상대로 작동한다. 실행 파일의 라이브러리에 연결된 프로그램인 경우에는 프로그램이 지연 로드된 DLL 함수를 참조하는 방식과 충돌하여 예상되는 동작을 방해한다. 엠바카데로는 11.1 릴리스 이후에 이 이슈를 발견했으며, (가까운) 미래에 대한 픽스(fix)를 제공할 것이다. As you can see below, for an app with runtime packages, you get the proper configuration, as shown by SysInternals Process Explorer: 아래에서 볼 수 있듯이 런타임 패키지를 사용하는 앱의 경우 SysInternals Process Explorer에 표시된 대로 적절한 구성을 얻을 수 있다. In general notice that these flags enforce security and there is a chance that an application using low-level code might not work any more. For example, we discovered that some old ActiveX control don’t work in the IDE any more, due to a conflict with the DEP flag. 대체로, 지금까지 설명한 플래그들은 보안을 강화한다. 그리고 로우-레벨 코드를 사용한 애플리케이션이 더 이상 동작하지 않을 가능성도 있다. 예를 들어, 우리는 IDE 안에 있던 오래된 ActiveX 컨트롤 몇가지가 더이상 작동하지 않는다는 사실을 발견했는데, DEP 플래그와 충돌이 원인이었다. If you see any issue in your applications, you can disable these flags, but we recommend looking into the underlying issue, as some companies as starting to require that all of the software they use is built with all of the Microsoft recommended security flags enabled. 당신의 애플리케이션에서 이슈가 있다면, 이 플래그들을 비활성화 해도 된다. 하지만, 이슈의 근본 원인 파악을 권장한다. 이미 몇몇 회사들에서는 마이크로소프트에서 권장하는 모든 보안 플래그를 활성화하여 구축한 소프트웨어 만을 요청하기 시작했기 때문이다.
  4. 엠바카데로 블로그에 마르코 칸투가 쓴 "Announcing the Availability of RAD Studio 11.1 Alexandria"를 번역한 글 (원문 작성일: 2022년 3월 15일, 번역일: 2022년 3월 18일) RAD 스튜디오 11 알렉산드리아 릴리스 1 (RAD 스튜디오 11.1이라고도 부름)을 델파이 11.1, C++빌더 11.1과 더불어 발표하게 되어서 기쁘다. RAD 스튜디오 11.1 알렉산드리아 버전은 RAD 스튜디오 11에서 새로 도입되었던 좋은 기능들을 강화했다. 주로 사용성, 성능, 안정성 향상에 주력했다. 새 데이터베이스 드라이버 등을 포함하여 새로 추가된 기능들도 있다. 또한 RAD 스튜디오 11.0 버전이 출시된 후에 공식적으로 발표된 운영체제들을 이제 RAD 스튜디오 11.1 버전에서 공식적으로 지원한다: 윈도우 11, 맥OS 12 몬터레이, iOS 15, 안드로이드 12가 해당된다. 델파이에서는 일부 플랫폼등에 대해 디버거 기술을 새것으로 교체했다. 이 블로그 글은, 품질 업데이트를 주로 반영한 RAD 11.1에 담긴 새 기능과 향상된 점 중 핵심적인 몇가지를 뽑아서 알려준다. IDE 향상 11.1 버전에서는 최근 버전에서 새로 도입된 기능 다듬기를 목표로 특히 IDE에 가장 집중했다. IDE의 high DPI 품질이 확장되었고, 원격 데스크탑에서 IDE를 더 잘 사용할 수 있도록 향상되었다. High DPI 디자이너(VCL용과 파이어몽키용)와 스타일이 반영된 VCL 폼 디자이너가 향상되었다. 11.0에서 새로 도입된 웰컴 페이지에 이제 배경 이미지를 넣을 수 있고 새 Open Tools API를 통해 맞춤(Custom) 프레임을 넣을 수 있다. 겟잇(GetIt) 라이브러리 매니저는 이미지를 캐시(caching)할 수 있으며, UI 구현이 전면 재작업 되었다(VCL 컴포넌트인 TControlList 컴포넌트 사용). IDE 새기능 몇가지는 다음과 같다. 메시지(Messages) 뷰에서 컴파일 에러, 메시지, 힌트 등이 서로 다른 색으로 표시되므로 이슈가 더 잘 눈에 띈다 (원하는 색상 지정도 가능). 새 항목 (New Items) 대화창에 나오는 각 항목에는 그것이 사용될 수 있는 플랫폼이 표시된다. 컴파일 (Compile) 대화창에는 현재 컴파일 작업에 적용된 플랫폼과 빌드 구성이 표시된다. 더 자세히 보기: [DocWiki 번역] "IDE 향상" 부분으로 바로 가기 델파이와 C++빌더 전반에 걸친 코드 인사이트(Code Insight) 코드 인사이트(Code Insight)는 RAD 스튜디오 11.1에서 크게 주력한 품질 향상 중 하나이다. 델파이와 C++ 모두 해당된다. C++ 언어 코드 인사이트 구현은 LSP(Language Server Protocol) 아키텍처와 cquery를 기반으로 하고 있는데, 이제 품질과 성능 면에서 향상되었다. 그리고 우리가 지금도 주력하고 있는 영역이므로 이 부분에 촛점을 맞춘 새 업데이트가 조만간 출시될 수도 있다. 델파이 LSP 엔진은 선능이 크게 향상되었다. 프로젝트 대부분에서 에러 인사이트가 로딩되고 업데이트되는 시간이 5배에서 30배까지 빨라졌다. 그밖에도 클래스 선언을 완성할 때 타입 파라미터가 나타나도록 변경되었다. 여기에는 제네릭 선언 안의 T도 해당된다. 그리고 Set Type이 표시된다. 더 자세히 보기: [DocWiki 번역] "LSP 향상 (델파이와 C++)" 부분으로 바로 가기 컴파일러와 디버거 델파이와 C++ 모두에서 컴파일러는 안정성과 성능 면에서 다양한 플랫폼에 대해 향상되었다. 델파이와 C++빌더의 윈도우 컴파일러에는 ASLR, DEP/NX, TSAWARE 플랫폼 보안 설정을 추가로 지원한다. 그리고 기본 설정으로 이 기능이 켜져있다. RAD 스튜디오 바이너리와 런타임 패키지는 이제 이 보안 셋팅이 켜진 상태에서 빌드된다. 디버거와 관련해서는, 일반적인 품질 작업말고도, 델파이 맥OS 64-bit ARM 디버거와 델파이 안드로이드 64-bit 디버거가 이제는 LLDB 디버거 아키텍처를 기반으로 한다, 이 아키텍처는 이미 델파이 iOS 64-bit 디버거에서 사용되고 있었다. 우리의 의도는 지원하는 플랫폼에서 사용되고 있는 델파이 디버거 대부분을 이 기술로 일원화하여 시간이 지날 수롤 더 좋은 품질 향상을 제공할 수 있도록 하는 것이다. 게다가, C++ STL과 RTL의 품질이 향상되었다. 여기에는 델파이 RTL 통합도 해당된다. 예를 들어 동적 배열은 STL 반복자(iterator)를 사용하도록 향상되었다. 더 자세히 보기: [DocWiki 번역] "컴파일러와 툴체인 향상" 부분으로 바로 가기 RTL, UI, 데이터베이스 라이브러리 RAD 스튜디오 11.1 버전에서 델파이의 핵심 RTL 몇가지가 최적화와 품질 향상이 있었다. 새롭게 TURLStream 클래스가 생겼다. TURLStream은 TStream의 자손이며 비동기 동작을 지원한다. 그리고 TOSVersion 데이터 구조에서 윈도우 11과 윈도우 서버 2022을 지원한다. VCL 품질 작업은 최근에 추가된 강화된 기능, 즉 TTreeView, TRichEdit, TEdgeBrowser, TNumberBox 등과 관련된 깜빡임, 더블버퍼링, VCL High-DPI와 확대/축소 이슈 등을 해소하고 품질을 향상하는 데 주력했다. 추가로, 최근 겟잇 패키지 매니저에 데모를 추가하여 델파이에서 WinUI 3 라이브러리 사용하는 방법을 제시했다. 윈도우 앱 SDK를 지원 능력을 한 차원 높이기 위한 이 기술(이미 웹뷰2와 MSIX를 지원할 때 사용되던 것들이다)에 대해서 더 많은 정보는 여기를 참고하기 바란다. 파이어몽키 품질 작업은 TListView 품질, 안드로이드 SDK 통합, TWebBrowser, 윈도우에서 HighDPI-관련 이슈 해소, 성능 향상에 주력하였다. 데이터베이스 라이브러리 영역에서, 11.1 부터 FireDAC용 스트럭처 뷰가 통합되었고, MariaDB 10.6, SQLite SEE, Firebird 4 새 데이터 타입 지원을 제공한다. RAD 스튜디오 11.1에서 데이터스냅 역시 품질이 향상되었으며, 이제 웹브로커 애플리케이션을 안드로이드 장비에도 배포할 수 있다. 마지막으로, RAD 서버와 관련하여, 11.1에서는 SysAdmin 엔드포인트가 새로 추가되어서, 로그 다루기, 백업 관리, 데이터베이스 검증을 할 수 있게 되었으며, RS라이트(RSLite) 통합 배포가 추가되었다. 더 자세히 보기: [DocWiki 번역] "라이브러리 향상" 부분으로 바로 가기 품질 이미 언급했듯이, RAD 스튜디오 11.1 알렉산드리아 버전은 품질에 집중하였으며, 여기에는 특히 고객이 리포트한 이슈들아 해당된다. 650개가 넘는 공개 이슈와 고객의 기능 요청이 이번 품질 향상에 반영되었다 (품질 포털인 QP 안에 있는 내용은 즉시 동기화 되지 않는 다는 점을 참고하기 바란다) 몇가지 더 있다: AWS와 파이썬(Python) 11.0 버전부터 엠바카데로는 엔터프라이즈와 아키텍트 에디션 고객에게 델파이용 AWS SDK (Appercept에서 제공하는 라이선스)를 추가로 제공해왔다는 점을 다시 언급하고 싶다. 새 버전에서 이 AWS SDK가 보다 지속적으로 제공될 것으로 예상한다. 게다가 엠바카데로는 파이썬 개발자에게 무료 델파이 UI 라이브러리를 제공하기 시작했으며, RAD 스튜디오 애플리케이션 안에서 파이썬을 사용하는 라이브러리도 장려하고 있다. 보다 자세한 정보는, 아래 링크를 참고하자. Appercept의 델파이용 “AWS SDK for Delphi”가 RAD 스튜디오와 델파이에 포함되었다. 파이썬 통합에 대한 더 자세한 내용 시작하기 평가판은 홈페이지에서 받을 수 있다. 업데이트 서브스크립션을 유지하고 있는 고객은 새 버전을 다운로드 받고 기존 라이선스를 사용하여 설치할 수 있다는 이메일을 받았을 것이다. 다운로드는 새 고객 포털인 https://my.embarcadero.com 에서 받을 수 있다. 더 많은 정보: 11.1 알렉산드리아 새기능 (엠바카데로 웹페이지) [DocWiki 번역] 11.1 알렉산드리아 - 릴리스 1 새 기능 RAD 스튜디오 11.1에서 해소된 고객 이슈 리포트 목록 RAD 스튜디오 기능 명세표 깃허브(GitHub)에 업데이트된 RAD 스튜디오 11 데모 RAD 스튜디오 11.1 알렉산드리아 출시 웨비나 다시 보기 우리는 RAD 11.1의 품질에 매우 만족하고 있다. 사용자 역시 새 버전을 즐길 것으로 확신한다.
  5. Kori

    [11.1] 알렉산드리아 - 릴리스 1

    << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1"을 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 3월 15일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. RAD 스튜디오 11 알렉산드리아 - 릴리스 1 (11.1이라고도 부름)을 이제 설치할 수 있다. RAD 11.1은 11의 기능을 바탕으로 하여 제품 전반에 걸쳐 기존 기능을 강화하고 몇가지 새 기능을 추가했다. 업데이트 서브스크립션을 유지 중인 사용자는 누구나 델파이 11, C++빌더 11, RAD 스튜디오 11을 다운로드 받을 수 있다. RAD 스튜디오 11.1은 품질 향상에 주력했다. 집중한 주요 품질 영역은 다음과 같다. IDE 원격 데스크탑 컴파일러: 델파이, C++ C++ 툴체인 델파이 LSP C++ LSP 델파이 RTL VCL 파이어몽키 데이터 인터넷 [11.1] 에서 강화된 점을 제품 영역 별로 보기 11 알렉산드리아 - 릴리스 1 제품 영역 별로 보기 1. IDE 향상 1.1 IDE 일반 향상 1.2 IDE High DPI 품질 1.3 웰컴 페이지 1.3.1 ToolsAPI 지원! 1.4 겟잇(GetIt) 대화창 향상 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 2.2 델파이 디버거: macOS ARM용과 Android용 2.3 C++ 컴파일러와 툴체인 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP 3.2 C++과 cquery 3.2.1 Performance 향상 4. 라이브러리 향상 4.1 델파이 RTL 4.1.1 최적화 작업 4.1.2 새 TURLStream 클래스 4.1.3 RTL 기타 향상 4.1.4 TMemIniFile 및 섹션 중복 4.2 VCL 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 4.3.2 TWebBrowser 4.3.3 FMX 기타 품질 4.4 데이터 4.4.1 일반 사항 4.4.2 FireDAC(파이어닥) 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 4.5.2 데이터스냅 (DataSnap) 4.5.3 RAD 서버 4.5.4 기타 5. 기타 참고 (See Also) 1. IDE 향상 1.1 IDE 일반 향상 설치가 완료되면, IDE가 "작업 시작하기"가 작동하면서, IDE를 다시 시작하므로, 첫 실행을 높은 사용 권한이 아닌 일반 사용자 권한으로 진행한다. 이제 프로젝트 구성 설정에서 ‘Enable runtime themes (런타임 테마 활성화)’의 기본값은 "켜짐"이다. dproj/cbproj 파일 안에 있는 ProjectRoot는 항상 일관되게 정렬된다. IDE Wait 대화창에서 사용하는 ToolsAPI 인터페이스의 일부 파라미터 이름이 변경되어서 기능을 보다 잘 반영한다. 이제 ‘New Edit Window (새 에디트 창)’은 복제를 지원하지 않는 화면인 경우 메뉴 항목이 비활성화되어 있다. 웰컴 페이지도 여기에 해당된다. 웰컴 페이지는 중복될 수 없고 다른 창에 끌어다 놓을 수 없기 때문이다. Options > Saving and Desktop (저장 및 데스크탑) 페이지가 둘로 나누어져 새 페이지가 2개 생겼다: Saving and Recovering (자동-복구, 자동-저장 옵션을 지정하는 곳) Desktop and Layout (기존 페이지에 있던 나머지 옵션을 지정하는 곳) Options 대화창 안에 있는 메시지 화면에서 에러(Error), 경고(Warning), 힌트(Hint)를 표현하는 색상을 바꿀 수 있다. IDE 테마별로 각각 다른 색상 조합을 지정할 수도 있다 (예: 라이트 테마, 다크 테마, 기타 테마 별로 각각 다른 색상 조합 지정). IDE에서 사용되는 사소한 대화창들에서도 스타일이 지원된다. 사용자 승인을 요청하는 창, 파일 덮어쓰기를 경고하는 창, 유니코드 프로젝트 이름을 확인하는 창, 유효하지 않은 코드 페이지 사용을 알리는 창 등이 해당된다. 프로젝트 파일 안에 있는 배포 파일이 일관성있는 순서로 정렬되지 않던 이슈를 해소했다. 의미를 훼손하지 않으면서 변경된다. 기본 C++ 콘솔 앱이 향상되었다. 그리고 콘솔 앱 생성은 C++과 델파이 모두에서 File > New (와 Create New) 메뉴에 있는 바로가기이다. IDE 교정(Fix) 팩 항목 일부가 통합되었다. (편집 툴바 등) IDE 툴바 이슈 Options 대화창 페이지 안에 스크롤바가 나타나지 않음 오브젝트 인스펙터 렌더링 결함 디버깅할 때, IDE와 코드 에디터가 비어 있음 FMX 폼 디자이너 텍스트 입력에서 (윈도우 키 등) 특별 키 이슈 프로젝트 뷰의 목록 모드 기타 다양한 예외... New Items (새 항목) 대화창에서 항목 별 해당 플랫폼 표시 New Items (새 항목) 대화창을 열고 새 항목을 프로젝트에 추가하려고 할 때, 현재 프로젝트에서 활성화된 플랫폼에 해당하지 않는 항목은 숨김 처리됨 New Items (새 항목) 대화창에서 보기 스타일이 다양하게 제공됨. 이제는 목록을 수직으로 보기 뿐만 아니라 카드, 리스트, 아이콘, 작은 아이콘 보기가 제공됨 New Items (새 항목) 대화창은 이제 VCL 컨트롤인 TControlList를 사용함. 그 결과 스크롤 기능이 향상됨 Compile (컴파일) 대화창에서는 플랫폼과 빌드 구성이 표시됨. 그리고, 우선 순위를 고려하여 에러가 경고와 힌트보다 앞에 표시됨. 1.2 IDE High DPI 품질 데이터 모듈 (Data module)은 PixelsPerInch 프로퍼티의 값이 96 (기본값)일 때 해당 값을 저장한다. VCL 폼도 동일하다함. 동적으로 생성된 프레임이 high DPI에서 디자인되는 경우 이제 올바르게 확대/축소된다. 1.3 웰컴 페이지 웰컴 페이지에서 이제 배경 이미지를 지원한다. 이미지를 선택하면 웰컴 페이지 영역에 맞게 확대/축소 된다. 가로 세로 비율이 저장되므로 한쪽 축이 웰컴 페이지 크기에 맞으면 다른 축의 일부는 영역을 벗어날 수도 있다. 웰컴 페이지 설정 페이지가 IDE Options 대화창에 새로 추가되었다. 이 페이지에서는 배경(각 테마 별로)을 설정할 수 있고 "프로젝트를 열면 웰컴 페이지 닫기"를 선택할 수 있다. 이것은 "웰컴 페이지 Layout Editor"에서도 설정할 수 있다. 웰컴 페이지 프레임은 이제 투명이 기본값이다. 월페이퍼(wallpaper) 이미지를 지정하면 프레임 뒤에서 배경으로 배경으로 표현된다. 웰컴 페이지 투명도는 ToolsAPI에서 접근할 수 있는 메트릭스(metrics) 중 하나이다. 웰컴 페이지 안에 있는 각 프레임 간의 간격과 웰컴 페이지의 상하 여백이 살짝 조정되었다. 1.3.1 ToolsAPI 지원! 이제 ToolsAPI를 이용하여, 웰컴 페이지 안에 프레임을 생성할 수 있도록 완전하게 지원한다! 엠바카데로에서 제공하는 프레임들도 동일한 API를 사용한다. 즉 우리가 넣어둔 프레임에서 할 수 있는 것이라면 당신도 할 수 있다. 웰컴 페이지 데모 2개가 엠바카데로 공개 깃허브(Github)에서 제공된다. 간단 사용법과 고급 사용법을 볼 수 있다. 가장 간단한 형태를 보자면, 당신은 TFrame의 자손을 하나 생성하고 캡션(Caption)을 넣어서 표현할 수 있다. 생성한 프레임에는 당신이 원하는 무엇이든 넣을 수 있다. 원한다면, 더 복잡한 기능들도 활용할 수 있다. 프레임 캡션(Caption)에는 커스텀 UI 크롬 (두번째 프레임을 통해 구현된다)이 포함될 수 있다. 우리가 제공한 Open Recent 프레임 (버튼 구현), Create New 프레임 (델파이와 C++ 간 토글 기능 구현) 에 있는 것들을 당신도 구현할 수 있다. 우리가 제공한 프레임은 MVC 패턴을 사용하며, 데이터는 백그라운드 쓰레드에서 적재된다. 당신은 우리가 프레임을 만들 때 사용한 것과 동일한 프레임과 리스트뷰 등을 사용하여 우리가 구현을 것을 그대로 활용할 수도 있다. 당신은 우리가 제공한 동작과 룩앤필을 동일하게 얻을 수 있기 때문에, 우리의 설정을 흉내내지 않아도 되고 향후 우리가 기본 레이아웃과 크기 등을 변경을 신경쓰지 않을 수도 있다. 1.4 겟잇(GetIt) 대화창 향상 겟잇 대화 상자가 재설계 되었다. 눈에 보이는 UI는 비슷하게 유지되었지만, 새롭게 ControlList 컴포넌트를 사용하여 패키지 목록을 담았다. 그 결과 눈에 띄는 성능 향상 효과가 생겼다. RAD 스튜디오에서는 이제 겟잇(GetIt) 안에 들어가는 페키지의 아이콘들을 캐싱(cache)하기 때문에 대화창을 다시 열 때 걸리는 시간이 짧아졌다. 겟잇 안에 패치 무시하기 옵션이 새로 추가되었다. 그 결과 패치 설치를 건너뛸 수 있다. 또한 보류 중인 패치 알림을 중지할 수 있다. 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 델파이와 C++ 모두에서, 윈도우 링커(Linker)들이 플랫폼 보안 구성을 더 잘 지원한다. 델파이에서는: 이 기능은 이미 Compiler/linker 플래그 형태로 제공되고 있었다. {$DYNAMICBASE} ASLR 용 플래그 {$SetPEOptFlags $40} DEP/NX 용 플래그, 또는 같은 기능인 ‑‑peflags 옵션 C++에서는: -GE 플래그 사용: 이 플래그들을 켜거나 끄기 위한 링커(linker) 옵션: **-GE:option|0xNNNN[=on|off] Set DLL characteristics flags ALLOWBIND | ALLOWISOLATION | DYNAMICBASE | HIGHENTROPYVA NXCOMPAT | TSAWARE HIGHENTROPYVA 는 ASLR; NXCOMPAT 는 DEP/NX; TSAWARE 는 터미널 서버용이다. 델파이와 C++ 모두에서: 이제 이 설정의 기본값은 "켜짐"이다. 우리는 보안 구성이 활성화된 (패키지 BPL 파일 등과 같은) 재배포가 허용되는 바이너리를 구축(Build)한다. 2.2 델파이 디버거: macOS ARM용과 Android용 macOS 애플리케이션을 애플 ARM 장비에서 실행할 때 사용되는 새 디버거가 생겼다. 이 디버거는 앱을 인텔 장비에서 실행하는 경우에는 사용되지 않는다. 새 디버거는 LLDB 최근 빌드이며, 델파이 구문의 하위 집합을 이해하는 델파이 파서가 핵심 기술이다. (예를 들어, 당신이 새 클래스를 정의할 수 없어도 이 디버거는 델파이 표현을 이해할 수 있다. 이 기술은 당신이 사용할 필요가 있는 모든 디버거 표현을 델파이로 충분히 이해할 수 있어야 한다.) 이 구문은 진정으로 델파이다워야 한다. 대소문자를 가리지 않고 델파이 구문 안의 복잡한 표현을 평가할 수 있어야 한다. 우리는 이 디버거를 안드로이드 64-bit 용에도 사용할 수 있도록 했다. 이 디버거는 ‘Disconnected(연결 끊김)’ 에러가 발생하거나 중단될 가능성이 훨씬 적다. 2.3 C++ 컴파일러와 툴체인 UnicodeString의 기본 생성자(constructor)가 더이상 인라인(inline) 되지 않는다. 따라서 개발자가 문자열(string)을 반환하는 함수를 호출하고 디버깅할 때 해당 생성자 안으로 들어가고 싶지 않다면, 이 변경은 도움이 된다. AnsiStringT는 System:: namespace 접두사를 가진다. 이제 많은 내장 헤더(xmmintrin.h 등)를 사용할 수 있다. 이번 릴리스에는 하위 호환성을 깨는 C++ RTL 변경이 있다. 따라서 C++ 라이브러리는 11.1에서 다시 빌드되어야 한다 (예: 11.0에서 빌드된 오브젝트 파일 또는 .lib-s를 링크하지 말라). 이 변경은 윈64용 핸들을 올바르게 다루기와 관련이 있다. 일부 내부 RTL 구조는 과거에 확장되지 않아서 핸들 잘림 현상이 발생될 수 있었다; 이제는 충분히 확장되었다. 이제 더 많은 내장 (예, SSE-AVX)이 RTL과 함께 제공된다. System::DynamicArray에는 begin()과 같은 반복(iteration)을 위한 일부 STL이 포함되었다. 델파이의 헬퍼 클래스 안에 들어있던 몇가지 문자열 함수들을 이제 C++에서 사용할 수 있다. 예전 IDE에서는 (제공되는 상황이라면)클래식 디버그 라이브러리를 Clang 릴리스 바이너리보다 먼저 링커에서 찾을 수 있다는 링킹 경로 이슈가 있었기 때문에, 만약 당신이 당신의 컴포넌트 또는 라이브러리를 디버그 빌드로 제공하고 두 컴파일러를 모두 지원했었다면 당신의 고객이 잘못된 컴파일러 버전을 링크하게 되는 결과를 초래할 수 있었다. 이제는 해결되었다. 디버거 (특히 윈64용에서)에 있던 많은 컴파일러 버그와 디버그 정보가 개선되었다; 릴리스 모드에서 TDS 파일을 사용; 로케일(locale)과 기타 많은 RTL 및 STL 영역을 조정; 라이브러리 임포트가 많이 개선; 생성된OMF 라이브러리에 대한 coff2omf 수정, 등등 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP DelphiLSP는 품질과 속도에 주력했다. 그 결과 11.1은 성능이 크게 향상되었다. 새롭게 더 향상된 성능은 모든 프로젝트 유형(패키지 프로젝트 포함)에 적용된다는 점이 핵심적인 변화이다. 예외 정보(Exception info)가 헬프 인사이트 안에 다시 표시된다. 이제 배열 및 세트에 대해서 헬프 인사이트 안에 줄 번호 정보를 사용할 수 있다. 비활성화된 macro/ifdef 안에서 Ctrl-Shift-아래 방향키를 누르면 선언된 다음 메서드의 구현부로 이동한다. 별칭이 지정된 제네릭 타입에서 Ctrl-클릭 이동을 할 수 있다. 예를 들어, 만약 IntArray가 TArray<Integer> 타입이라면, IntArray를 Ctrl-클릭하면 System.pas 유닛 안에 있는 TArray<>가 있는 곳으로 이동하는 것이 아니라, TArray<Integer>가 있는 곳으로 이동한다. 유닛 안에 지시자(Directive)가 포함되었을 때 ctrl-shift-위 방향키/아래 방향키 이동이 올바로 작동하지 않던 이슈가 해소되었다. 다른 드라이브에 있는 파일을 프로젝트에 넣어서 사용하는 프로젝트에서 에러 인사이트(Error Insight)가 작동하지 않던 문제가 해소되었다. 일반 프로젝트가 이제 훨씬 더 빠르게 로딩된다. 프로젝트를 로드할 때 파싱을 훨씬 더 적게 하는 등 관련된 기술을 크게 변경했다. 그리고 DelphiLSP는 프로젝트 로딩을 끝내고 훨씬 더 빠르게 요청에 반응한다. 이제 에러 인사이트 결과가 훨씬 더 빠르게 업데이트 된다. 5배에서 30배까지 속도 향상을 기대할 수 있다. 가장 현격한 향상을 볼 수 있는 경우는 (다른 유닛을 많이 사용하는) 의존성이 많은 유닛들이 있는 상황이다. 기타 향상된 점: 매크로 (정의) 다루기가 개선되어서 IFDEF가 있을 때 메소드의 구현부와 선언부를 오가는 동작이 더 향상되었고 클래스 선언 부의 코드 완성도 더 잘 동작한다. 인클루드된 파일 안에 선언된 매크로 (정의)가 있는 경우에도 찾을 수 있다. 위 향상에 영향을 주었다. 프로퍼티를 선언할 때, 코드 완성(Code Completion)에서 겟터(Getter)와 셋터(Setter)를 제안한다. 코드 완성에서 Set type을 보여준다. 클래스 선언부 코드 안에 타입 파라미터가 나타난다. 제네릭 선언 안에 있는 제네릭 타입 (예: T)도 해당된다. 제네릭 타입의 인스턴스를 만들려고 할 때 파라미터 툴팁/헬프가 표시된다. 레코드 선언부 안에서 코드 완성을 할 때, AfterConstruction와 같이 TObject-고유한 완성이 나타났었다. 이제는 해결되었다. 3.2 C++과 cquery LSP Behavior 탭이 새로 생겼다. 이제 cquery LSP 서버가 파일을 인덱싱하는 방식을 통제하는 2가지 옵션이 제공된다. 즉, 코드 완성, 이동 등을 수행할 때 사용하는 정보를 어떻게 저장하는가를 지정하는 옵션이다. 여기에는 Restart server each time a project 옵션 (기본 설정에서 미리 선택되어 있음)과 Index only files that are opened in the editor 옵션이 있다. 주의: 인덱싱 작업은 부하가 CPU에 집중된다. 대체로 인덱싱이 완료될 때가지 코드 인사이트를 사용할 수 없다. LSP 서버를 재시작하기, 예를 들어 플랫폼 바꾸기 등은 저장된 인덱스를 모두 지운다. 기타 향상된 점: 코드 완성에 나타나는 목록은 cquery가 반환하는 순서대로 정렬된다. 그 순서는 범위(scope) 순서이다. 순서를 바꾸고 싶으면 (기본 설정에서 꺼져있는) Alpha Sort(알파벳 정렬)을 켠다. 기본 설정으로 모든 C++ 프로젝트의 Project Options에서 인덱싱이 켜져 있어야 한다. 프로젝트 안에 직접 들어있지 않은 헤더 파일 (예: cpp/header 유닛 짝이 아닌 부분) 에서도 코드 완성을 사용할 수 있다. 프로젝트 옵션(Project Options)이나 활성 플랫폼을 변경하면 새 프로젝트 설정에 맞게 LSP 서버가 다시 시작된다. LSP 서버는 파일이 언제 저장되었는 지를 알고 올바르게 업데이트 한다. 이점은 새 파일인 경우 특히 중요하다. 왜냐하면, 이 버전의 경우, 파일이 디스크에 존재하기 않으면 코드 인사이트가 작동하지 않기 때문이다. 기타 C++ 기능: IDE는 LSP 서버가 준비될 때까지 올바르게 기다린다. 프로젝트의 메인 소스 파일에서 코드 완성을 사용할 수 있다. 3.2.1 Performance 향상 코드 완성이 나타나는 시간은 프로젝트의 규모와 관계없이 2초 이내이다. VCL 프로젝트에서 글로벌 범위에서 코드 완성이 작동하면, 80,000개가 넘는 항목이 반환된다는 점에 주의하라. 4. 라이브러리 향상 FMX와 VCL로 구축된 프로젝트들 사이에 코드 공유를 돕기 위해, 프레임워크 별 사전 정의 심볼을 추가했다. FRAMEWORK_VCL - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 VCL 프레임워크를 사용한다. FRAMEWORK_FMX - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 파이어몽키 (FMX) 프레임워크를 사용한다. 4.1 델파이 RTL 4.1.1 최적화 작업 델파이 RTL 측면에서 우리는 성능 최적화와 관련된 작업을 했다. 또한 _CopyArray, _IntToStr64, _IntToStr32, InitInstance, InvokeRecordInitializer, _FinalizeRecord, _UStrAsg (including purepascal version), _LStrAsg, _LStrLAsg, AnsiLowerCase / AnsiUpperCase, TStringHelper.IndexOf가 향상되었다. 4.1.2 새 TURLStream 클래스 새 스트림 클래스인 TURLStream가 새로 생겼으며, 일반 기반 클래스인 TAsyncStream은 비동기 스트림을 위한 새 기반 클래스이다. 이것은 TMemoryStream으로부터 상속받는다. TURLStream은 비동기 스트림 중 하나로서 URL 경로를 지원하며 TAsyncStream으로부터 상속받는다. TAsyncStream.Create는 해당 백그라운드 쓰레드 안에서 APopulate(채우기)를 시작한다. 완료되기 전까지는 TAsyncStream에 대한 모든 TStream 메소드 호출이 차단된다. 활용 방식은, IAsyncResult를 사용하여 TAsyncStream 채우기 완료를 기다리고 확인한다. TAsyncStream은 IAsyncResult를 지원한다. AProvide 익명 메소드를 제공한다. 이것은 채우기가 완료되면 호출된다. TURLStream 생성자(constructor)는 자신의 기반 클래스 생성자를 확장하여 아래와 같이 선언된다. constructor TURLStream.Create(const AURL: string; const AProvide: TAsyncStream.TStreamer; ASynchronizeProvide, AFreeOnCompletion: Boolean); TURLStream은 기반 클래스인 TAsyncStream의 행위를 상속받지만, 안에서는 URL 스키마에 따라 THttpClient 또는 TFileStream을 사용한다. TAsyncStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, AfterConstruction, Read, Write, Seek, SetSize(Int64), SetSize(Longint), SaveToStream. TURLStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, RegisterSyncReqExexcutor, UnRegisterSyncReqExecutor. 4.1.3 RTL 기타 향상 TOSVersion 데이터 구조에서 윈도우 11과 윈도우 서버 2022을 지원한다. TURI.ToString이 포트를 고려한다. TMetaFile은 이제 큰 스트림에서 데이터를 로드할 수 있다. 4.1.4 TMemIniFile 및 섹션 중복 TIniFile이 변경되어 10.3 이전의 행위와 섹션이 중복되는 경우에 대한 호환성이 더 좋아졌다. 4.2 VCL 최근에 추가된 강화된 기능 (예, TTreeView, TRichEdit, TEdgeBrowser, TNumberBox 등)과 관련된 이슈 해소에 주력했다. 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 advmanager를 위해 android.bat 파일 도구에 대한 의존을 제거했다. 그리고 안드로이드 플랫폼용 IDE SDK 관리자 대화창을 업데이트 했다. DEX 컴파일과 DEX 병합이 C++/델파이 링킹 이후로 지연되어서, 배포 없이 컴파일하는 속도가 더 빨라졌다. 안드로이드 플랫폼 코어를 통합할 수 있도록, 메소드 오버로드로 Java 인터페이스를 구현하도록 델파이 클래스에 대한 지원을 추가했다. 이는 안드로이드 12와 안드로이드 센서 접근 문제를 해소하는 데 도움이 된다. (SensorInfo 데모 교정). Java 인터페이스를 구현하는 델파이 클래스는 이제 Int8, Int16, Int64, Float32, Float64 값을 반환하는 함수를 가질 수 있다. 4.3.2 TWebBrowser 윈도우에서 TWebBrowser (WebView 2 지원) 향상, 윈도우의 웹브라우저 엔진을 하나 이상 바꿀 수 있는 기능이 추가되었다. WindowsEngine 프로퍼티의 기본값이 변경되었다. TWebBrowser의 크기 변경과 투명도 이슈가 해소되었다. 또한 모바일에서 로컬 파일 작업 기능이 향상되었다. 4.3.3 FMX 기타 품질 윈도우에서 HighDPI-관련 이슈 해소 TMessageManager.Unsubscribe 성능 향상 TMemo 컨텍스트 메뉴에 Undo(되돌리기) 추가 및 내용 자동 스크롤링 이슈 해소 안드로이드와 iOS에서 이모티콘 색상 향상 macOS 플랫폼에서 메탈 GPU 드라이버 지원 향상 4.4 데이터 4.4.1 일반 사항 필드 링크 디자이너(Field Link Designer)와 새 필드 대화창(New Field Dialog)을 더 크고 더 사용하기 쉽게 만들었다. Firebird 4의 긴 필드 이름 (최대 63자) 지원하기 위해 데이터베이스 RTL 안에 있던 필드 이름 31-글자 제한을 없앴다. 4.4.2 FireDAC(파이어닥) FireDAC용 스트럭처 뷰를 구현 했다. 또한 일부 FireDAC 창들이 High DPI를 더 잘 지원하게 되었다. 데이터베이스 지원 추가: MariaDB 10.6 서버 (10.6 클라이언트 사용) 데이터베이스 지원 추가: SQLite SEE, C++빌더에서 FireDAC 정적 바인딩(static binding)을 할 때, SQLite OBJ들을 빌드할 수 있도록 명령줄 배치(Batch)를 제공한다. readme 파일인 sqlite_see.txt에 절차가 설명되어있다 (RAD 스튜디오 11.0에서는 이미 겟잇을 통해 이것을 받아서 사용할 수 있었다). FireDAC의 Firebird 4 드라이버를 향상했다. 추가된 데이터 타입을 지원한다: INT128 NUMERIC 정밀도 19..38 TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE (제한있음) DECFLOAT(16/34) 네이티브 구문 시간제한 FireDAC에 FireBird 4 페이지크기 32768 지원이 추가되었다. 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 웹브로커 서버 애플리케이션을 이제 안드로이드 장비에도 배포할 수 있다. 또한 (안드로이드 OS를 실행하는 라즈베리 파이와 같은) 개발자 보드에도 배포할 수 있다. 안드로이드 32-비트와 64-비트 모두 해당된다. 4.5.2 데이터스냅 (DataSnap) Web.Win.ISAPIThreadPool을 확장하여 쓰레드를 64개 이상 허용할 수 있게 되었다. NumberOfThreads 변수 타입이 Cardinal로 변경되었다. ShutdownTimeout 변수 (쓰레드 풀에서 모든 작업 쓰레드를 끝내기 위해 기다릴 시간 제한을 밀리초 단위로 지정하는 곳)의 기본값은 2분이다. 4.5.3 RAD 서버 데이터베이스 구조 일부가 향상되었고, 새 엔드포인트인 REST SysAdmin가 제공된다. GET /sysadmin/log - LOG 테이블 내용에 대한 정보를 반환한다. POST /sysadmin/log?minTime=<ISO8601 date> - 지정된 날짜/시간보다 오래된 레코드를 LOG 테이블에서 모두 삭제한다. GET /sysadmin/backup?backupFile=<file path> - emsserver.ib 데이터베이스 백업 파일을 만든다. 백업 파일은 인터베이스 서버 안에서 사용할 수 있다. POST /sysadmin/backup?backupFile=<file path> - 지정한 백업 파일로부터 emsserver.ib 데이터베이스를 복구한다. GET /sysadmin/validate - emsserver.ib 데이터베이스 평가를 수행하고, 데이터베이스의 상태를 반환한다. RAD 서버 사용자가 동시에 세션 한개 이상에서 로그인할 수 있도록 허용한다. RS라이트(RSLite)용 새 배포 기능 EMS.INI의 새 옵션으로, Data 섹션 안에 ClientLib 엔트리를 사용하여, 특정 인터베이스 클라이언트 라이브러리 (임베이드 DB 또는 일반 DB 중 하나)를 고를 수 있도록 했다. 이제 RS라이트용 즉시 배포 기능이 있다. 4.5.4 기타 REST 디버거에서 클라이언트측 인증서를 선택할 수 있는 옵션이 추가되었다. REST 디버거가 이제 DPI-인식 창이 되었다. TCustomRESTRequest 클래스에 새 BodyCodePage 프로퍼티가 생겼다. 이 프로퍼티는 요청 바디의 코드 페이지 (Request body code page)를 명시한다. 특별한 값들이 몇개 있다. -1 (기본값) - 플랫폼의 기본 인코딩을 사용 0 - 현재 활성화된 코드 페이지 사용 65001 - UTF8 사용 AmazonAPI에서 지역(Region) 변경을 지원한다. 5. 기타 참고 (See Also) Installation Notes Release Notes New features and fixed issues What Was New in Past Releases
  6. << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1"을 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 3월 15일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. RAD 스튜디오 11 알렉산드리아 - 릴리스 1 (11.1이라고도 부름)을 이제 설치할 수 있다. RAD 11.1은 11의 기능을 바탕으로 하여 제품 전반에 걸쳐 기존 기능을 강화하고 몇가지 새 기능을 추가했다. 업데이트 서브스크립션을 유지 중인 사용자는 누구나 델파이 11, C++빌더 11, RAD 스튜디오 11을 다운로드 받을 수 있다. RAD 스튜디오 11.1은 품질 향상에 주력했다. 집중한 주요 품질 영역은 다음과 같다. IDE 원격 데스크탑 컴파일러: 델파이, C++ C++ 툴체인 델파이 LSP C++ LSP 델파이 RTL VCL 파이어몽키 데이터 인터넷 [11.1] 에서 강화된 점을 제품 영역 별로 보기 11 알렉산드리아 - 릴리스 1 제품 영역 별로 보기 1. IDE 향상 1.1 IDE 일반 향상 1.2 IDE High DPI 품질 1.3 웰컴 페이지 1.3.1 ToolsAPI 지원! 1.4 겟잇(GetIt) 대화창 향상 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 2.2 델파이 디버거: macOS ARM용과 Android용 2.3 C++ 컴파일러와 툴체인 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP 3.2 C++과 cquery 3.2.1 Performance 향상 4. 라이브러리 향상 4.1 델파이 RTL 4.1.1 최적화 작업 4.1.2 새 TURLStream 클래스 4.1.3 RTL 기타 향상 4.1.4 TMemIniFile 및 섹션 중복 4.2 VCL 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 4.3.2 TWebBrowser 4.3.3 FMX 기타 품질 4.4 데이터 4.4.1 일반 사항 4.4.2 FireDAC(파이어닥) 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 4.5.2 데이터스냅 (DataSnap) 4.5.3 RAD 서버 4.5.4 기타 5. 기타 참고 (See Also) 1. IDE 향상 1.1 IDE 일반 향상 설치가 완료되면, IDE가 "작업 시작하기"가 작동하면서, IDE를 다시 시작하므로, 첫 실행을 높은 사용 권한이 아닌 일반 사용자 권한으로 진행한다. 이제 프로젝트 구성 설정에서 ‘Enable runtime themes (런타임 테마 활성화)’의 기본값은 "켜짐"이다. dproj/cbproj 파일 안에 있는 ProjectRoot는 항상 일관되게 정렬된다. IDE Wait 대화창에서 사용하는 ToolsAPI 인터페이스의 일부 파라미터 이름이 변경되어서 기능을 보다 잘 반영한다. 이제 ‘New Edit Window (새 에디트 창)’은 복제를 지원하지 않는 화면인 경우 메뉴 항목이 비활성화되어 있다. 웰컴 페이지도 여기에 해당된다. 웰컴 페이지는 중복될 수 없고 다른 창에 끌어다 놓을 수 없기 때문이다. Options > Saving and Desktop (저장 및 데스크탑) 페이지가 둘로 나누어져 새 페이지가 2개 생겼다: Saving and Recovering (자동-복구, 자동-저장 옵션을 지정하는 곳) Desktop and Layout (기존 페이지에 있던 나머지 옵션을 지정하는 곳) Options 대화창 안에 있는 메시지 화면에서 에러(Error), 경고(Warning), 힌트(Hint)를 표현하는 색상을 바꿀 수 있다. IDE 테마별로 각각 다른 색상 조합을 지정할 수도 있다 (예: 라이트 테마, 다크 테마, 기타 테마 별로 각각 다른 색상 조합 지정). IDE에서 사용되는 사소한 대화창들에서도 스타일이 지원된다. 사용자 승인을 요청하는 창, 파일 덮어쓰기를 경고하는 창, 유니코드 프로젝트 이름을 확인하는 창, 유효하지 않은 코드 페이지 사용을 알리는 창 등이 해당된다. 프로젝트 파일 안에 있는 배포 파일이 일관성있는 순서로 정렬되지 않던 이슈를 해소했다. 의미를 훼손하지 않으면서 변경된다. 기본 C++ 콘솔 앱이 향상되었다. 그리고 콘솔 앱 생성은 C++과 델파이 모두에서 File > New (와 Create New) 메뉴에 있는 바로가기이다. IDE 교정(Fix) 팩 항목 일부가 통합되었다. (편집 툴바 등) IDE 툴바 이슈 Options 대화창 페이지 안에 스크롤바가 나타나지 않음 오브젝트 인스펙터 렌더링 결함 디버깅할 때, IDE와 코드 에디터가 비어 있음 FMX 폼 디자이너 텍스트 입력에서 (윈도우 키 등) 특별 키 이슈 프로젝트 뷰의 목록 모드 기타 다양한 예외... New Items (새 항목) 대화창에서 항목 별 해당 플랫폼 표시 New Items (새 항목) 대화창을 열고 새 항목을 프로젝트에 추가하려고 할 때, 현재 프로젝트에서 활성화된 플랫폼에 해당하지 않는 항목은 숨김 처리됨 New Items (새 항목) 대화창에서 보기 스타일이 다양하게 제공됨. 이제는 목록을 수직으로 보기 뿐만 아니라 카드, 리스트, 아이콘, 작은 아이콘 보기가 제공됨 New Items (새 항목) 대화창은 이제 VCL 컨트롤인 TControlList를 사용함. 그 결과 스크롤 기능이 향상됨 Compile (컴파일) 대화창에서는 플랫폼과 빌드 구성이 표시됨. 그리고, 우선 순위를 고려하여 에러가 경고와 힌트보다 앞에 표시됨. 1.2 IDE High DPI 품질 데이터 모듈 (Data module)은 PixelsPerInch 프로퍼티의 값이 96 (기본값)일 때 해당 값을 저장한다. VCL 폼도 동일하다함. 동적으로 생성된 프레임이 high DPI에서 디자인되는 경우 이제 올바르게 확대/축소된다. 1.3 웰컴 페이지 웰컴 페이지에서 이제 배경 이미지를 지원한다. 이미지를 선택하면 웰컴 페이지 영역에 맞게 확대/축소 된다. 가로 세로 비율이 저장되므로 한쪽 축이 웰컴 페이지 크기에 맞으면 다른 축의 일부는 영역을 벗어날 수도 있다. 웰컴 페이지 설정 페이지가 IDE Options 대화창에 새로 추가되었다. 이 페이지에서는 배경(각 테마 별로)을 설정할 수 있고 "프로젝트를 열면 웰컴 페이지 닫기"를 선택할 수 있다. 이것은 "웰컴 페이지 Layout Editor"에서도 설정할 수 있다. 웰컴 페이지 프레임은 이제 투명이 기본값이다. 월페이퍼(wallpaper) 이미지를 지정하면 프레임 뒤에서 배경으로 배경으로 표현된다. 웰컴 페이지 투명도는 ToolsAPI에서 접근할 수 있는 메트릭스(metrics) 중 하나이다. 웰컴 페이지 안에 있는 각 프레임 간의 간격과 웰컴 페이지의 상하 여백이 살짝 조정되었다. 1.3.1 ToolsAPI 지원! 이제 ToolsAPI를 이용하여, 웰컴 페이지 안에 프레임을 생성할 수 있도록 완전하게 지원한다! 엠바카데로에서 제공하는 프레임들도 동일한 API를 사용한다. 즉 우리가 넣어둔 프레임에서 할 수 있는 것이라면 당신도 할 수 있다. 웰컴 페이지 데모 2개가 엠바카데로 공개 깃허브(Github)에서 제공된다. 간단 사용법과 고급 사용법을 볼 수 있다. 가장 간단한 형태를 보자면, 당신은 TFrame의 자손을 하나 생성하고 캡션(Caption)을 넣어서 표현할 수 있다. 생성한 프레임에는 당신이 원하는 무엇이든 넣을 수 있다. 원한다면, 더 복잡한 기능들도 활용할 수 있다. 프레임 캡션(Caption)에는 커스텀 UI 크롬 (두번째 프레임을 통해 구현된다)이 포함될 수 있다. 우리가 제공한 Open Recent 프레임 (버튼 구현), Create New 프레임 (델파이와 C++ 간 토글 기능 구현) 에 있는 것들을 당신도 구현할 수 있다. 우리가 제공한 프레임은 MVC 패턴을 사용하며, 데이터는 백그라운드 쓰레드에서 적재된다. 당신은 우리가 프레임을 만들 때 사용한 것과 동일한 프레임과 리스트뷰 등을 사용하여 우리가 구현을 것을 그대로 활용할 수도 있다. 당신은 우리가 제공한 동작과 룩앤필을 동일하게 얻을 수 있기 때문에, 우리의 설정을 흉내내지 않아도 되고 향후 우리가 기본 레이아웃과 크기 등을 변경을 신경쓰지 않을 수도 있다. 1.4 겟잇(GetIt) 대화창 향상 겟잇 대화 상자가 재설계 되었다. 눈에 보이는 UI는 비슷하게 유지되었지만, 새롭게 ControlList 컴포넌트를 사용하여 패키지 목록을 담았다. 그 결과 눈에 띄는 성능 향상 효과가 생겼다. RAD 스튜디오에서는 이제 겟잇(GetIt) 안에 들어가는 페키지의 아이콘들을 캐싱(cache)하기 때문에 대화창을 다시 열 때 걸리는 시간이 짧아졌다. 겟잇 안에 패치 무시하기 옵션이 새로 추가되었다. 그 결과 패치 설치를 건너뛸 수 있다. 또한 보류 중인 패치 알림을 중지할 수 있다. 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 델파이와 C++ 모두에서, 윈도우 링커(Linker)들이 플랫폼 보안 구성을 더 잘 지원한다. 델파이에서는: 이 기능은 이미 Compiler/linker 플래그 형태로 제공되고 있었다. {$DYNAMICBASE} ASLR 용 플래그 {$SetPEOptFlags $40} DEP/NX 용 플래그, 또는 같은 기능인 ‑‑peflags 옵션 C++에서는: -GE 플래그 사용: 이 플래그들을 켜거나 끄기 위한 링커(linker) 옵션: **-GE:option|0xNNNN[=on|off] Set DLL characteristics flags ALLOWBIND | ALLOWISOLATION | DYNAMICBASE | HIGHENTROPYVA NXCOMPAT | TSAWARE HIGHENTROPYVA 는 ASLR; NXCOMPAT 는 DEP/NX; TSAWARE 는 터미널 서버용이다. 델파이와 C++ 모두에서: 이제 이 설정의 기본값은 "켜짐"이다. 우리는 보안 구성이 활성화된 (패키지 BPL 파일 등과 같은) 재배포가 허용되는 바이너리를 구축(Build)한다. 2.2 델파이 디버거: macOS ARM용과 Android용 macOS 애플리케이션을 애플 ARM 장비에서 실행할 때 사용되는 새 디버거가 생겼다. 이 디버거는 앱을 인텔 장비에서 실행하는 경우에는 사용되지 않는다. 새 디버거는 LLDB 최근 빌드이며, 델파이 구문의 하위 집합을 이해하는 델파이 파서가 핵심 기술이다. (예를 들어, 당신이 새 클래스를 정의할 수 없어도 이 디버거는 델파이 표현을 이해할 수 있다. 이 기술은 당신이 사용할 필요가 있는 모든 디버거 표현을 델파이로 충분히 이해할 수 있어야 한다.) 이 구문은 진정으로 델파이다워야 한다. 대소문자를 가리지 않고 델파이 구문 안의 복잡한 표현을 평가할 수 있어야 한다. 우리는 이 디버거를 안드로이드 64-bit 용에도 사용할 수 있도록 했다. 이 디버거는 ‘Disconnected(연결 끊김)’ 에러가 발생하거나 중단될 가능성이 훨씬 적다. 2.3 C++ 컴파일러와 툴체인 UnicodeString의 기본 생성자(constructor)가 더이상 인라인(inline) 되지 않는다. 따라서 개발자가 문자열(string)을 반환하는 함수를 호출하고 디버깅할 때 해당 생성자 안으로 들어가고 싶지 않다면, 이 변경은 도움이 된다. AnsiStringT는 System:: namespace 접두사를 가진다. 이제 많은 내장 헤더(xmmintrin.h 등)를 사용할 수 있다. 이번 릴리스에는 하위 호환성을 깨는 C++ RTL 변경이 있다. 따라서 C++ 라이브러리는 11.1에서 다시 빌드되어야 한다 (예: 11.0에서 빌드된 오브젝트 파일 또는 .lib-s를 링크하지 말라). 이 변경은 윈64용 핸들을 올바르게 다루기와 관련이 있다. 일부 내부 RTL 구조는 과거에 확장되지 않아서 핸들 잘림 현상이 발생될 수 있었다; 이제는 충분히 확장되었다. 이제 더 많은 내장 (예, SSE-AVX)이 RTL과 함께 제공된다. System::DynamicArray에는 begin()과 같은 반복(iteration)을 위한 일부 STL이 포함되었다. 델파이의 헬퍼 클래스 안에 들어있던 몇가지 문자열 함수들을 이제 C++에서 사용할 수 있다. 예전 IDE에서는 (제공되는 상황이라면)클래식 디버그 라이브러리를 Clang 릴리스 바이너리보다 먼저 링커에서 찾을 수 있다는 링킹 경로 이슈가 있었기 때문에, 만약 당신이 당신의 컴포넌트 또는 라이브러리를 디버그 빌드로 제공하고 두 컴파일러를 모두 지원했었다면 당신의 고객이 잘못된 컴파일러 버전을 링크하게 되는 결과를 초래할 수 있었다. 이제는 해결되었다. 디버거 (특히 윈64용에서)에 있던 많은 컴파일러 버그와 디버그 정보가 개선되었다; 릴리스 모드에서 TDS 파일을 사용; 로케일(locale)과 기타 많은 RTL 및 STL 영역을 조정; 라이브러리 임포트가 많이 개선; 생성된OMF 라이브러리에 대한 coff2omf 수정, 등등 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP DelphiLSP는 품질과 속도에 주력했다. 그 결과 11.1은 성능이 크게 향상되었다. 새롭게 더 향상된 성능은 모든 프로젝트 유형(패키지 프로젝트 포함)에 적용된다는 점이 핵심적인 변화이다. 예외 정보(Exception info)가 헬프 인사이트 안에 다시 표시된다. 이제 배열 및 세트에 대해서 헬프 인사이트 안에 줄 번호 정보를 사용할 수 있다. 비활성화된 macro/ifdef 안에서 Ctrl-Shift-아래 방향키를 누르면 선언된 다음 메서드의 구현부로 이동한다. 별칭이 지정된 제네릭 타입에서 Ctrl-클릭 이동을 할 수 있다. 예를 들어, 만약 IntArray가 TArray<Integer> 타입이라면, IntArray를 Ctrl-클릭하면 System.pas 유닛 안에 있는 TArray<>가 있는 곳으로 이동하는 것이 아니라, TArray<Integer>가 있는 곳으로 이동한다. 유닛 안에 지시자(Directive)가 포함되었을 때 ctrl-shift-위 방향키/아래 방향키 이동이 올바로 작동하지 않던 이슈가 해소되었다. 다른 드라이브에 있는 파일을 프로젝트에 넣어서 사용하는 프로젝트에서 에러 인사이트(Error Insight)가 작동하지 않던 문제가 해소되었다. 일반 프로젝트가 이제 훨씬 더 빠르게 로딩된다. 프로젝트를 로드할 때 파싱을 훨씬 더 적게 하는 등 관련된 기술을 크게 변경했다. 그리고 DelphiLSP는 프로젝트 로딩을 끝내고 훨씬 더 빠르게 요청에 반응한다. 이제 에러 인사이트 결과가 훨씬 더 빠르게 업데이트 된다. 5배에서 30배까지 속도 향상을 기대할 수 있다. 가장 현격한 향상을 볼 수 있는 경우는 (다른 유닛을 많이 사용하는) 의존성이 많은 유닛들이 있는 상황이다. 기타 향상된 점: 매크로 (정의) 다루기가 개선되어서 IFDEF가 있을 때 메소드의 구현부와 선언부를 오가는 동작이 더 향상되었고 클래스 선언 부의 코드 완성도 더 잘 동작한다. 인클루드된 파일 안에 선언된 매크로 (정의)가 있는 경우에도 찾을 수 있다. 위 향상에 영향을 주었다. 프로퍼티를 선언할 때, 코드 완성(Code Completion)에서 겟터(Getter)와 셋터(Setter)를 제안한다. 코드 완성에서 Set type을 보여준다. 클래스 선언부 코드 안에 타입 파라미터가 나타난다. 제네릭 선언 안에 있는 제네릭 타입 (예: T)도 해당된다. 제네릭 타입의 인스턴스를 만들려고 할 때 파라미터 툴팁/헬프가 표시된다. 레코드 선언부 안에서 코드 완성을 할 때, AfterConstruction와 같이 TObject-고유한 완성이 나타났었다. 이제는 해결되었다. 3.2 C++과 cquery LSP Behavior 탭이 새로 생겼다. 이제 cquery LSP 서버가 파일을 인덱싱하는 방식을 통제하는 2가지 옵션이 제공된다. 즉, 코드 완성, 이동 등을 수행할 때 사용하는 정보를 어떻게 저장하는가를 지정하는 옵션이다. 여기에는 Restart server each time a project 옵션 (기본 설정에서 미리 선택되어 있음)과 Index only files that are opened in the editor 옵션이 있다. 주의: 인덱싱 작업은 부하가 CPU에 집중된다. 대체로 인덱싱이 완료될 때가지 코드 인사이트를 사용할 수 없다. LSP 서버를 재시작하기, 예를 들어 플랫폼 바꾸기 등은 저장된 인덱스를 모두 지운다. 기타 향상된 점: 코드 완성에 나타나는 목록은 cquery가 반환하는 순서대로 정렬된다. 그 순서는 범위(scope) 순서이다. 순서를 바꾸고 싶으면 (기본 설정에서 꺼져있는) Alpha Sort(알파벳 정렬)을 켠다. 기본 설정으로 모든 C++ 프로젝트의 Project Options에서 인덱싱이 켜져 있어야 한다. 프로젝트 안에 직접 들어있지 않은 헤더 파일 (예: cpp/header 유닛 짝이 아닌 부분) 에서도 코드 완성을 사용할 수 있다. 프로젝트 옵션(Project Options)이나 활성 플랫폼을 변경하면 새 프로젝트 설정에 맞게 LSP 서버가 다시 시작된다. LSP 서버는 파일이 언제 저장되었는 지를 알고 올바르게 업데이트 한다. 이점은 새 파일인 경우 특히 중요하다. 왜냐하면, 이 버전의 경우, 파일이 디스크에 존재하기 않으면 코드 인사이트가 작동하지 않기 때문이다. 기타 C++ 기능: IDE는 LSP 서버가 준비될 때까지 올바르게 기다린다. 프로젝트의 메인 소스 파일에서 코드 완성을 사용할 수 있다. 3.2.1 Performance 향상 코드 완성이 나타나는 시간은 프로젝트의 규모와 관계없이 2초 이내이다. VCL 프로젝트에서 글로벌 범위에서 코드 완성이 작동하면, 80,000개가 넘는 항목이 반환된다는 점에 주의하라. 4. 라이브러리 향상 FMX와 VCL로 구축된 프로젝트들 사이에 코드 공유를 돕기 위해, 프레임워크 별 사전 정의 심볼을 추가했다. FRAMEWORK_VCL - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 VCL 프레임워크를 사용한다. FRAMEWORK_FMX - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 파이어몽키 (FMX) 프레임워크를 사용한다. 4.1 델파이 RTL 4.1.1 최적화 작업 델파이 RTL 측면에서 우리는 성능 최적화와 관련된 작업을 했다. 또한 _CopyArray, _IntToStr64, _IntToStr32, InitInstance, InvokeRecordInitializer, _FinalizeRecord, _UStrAsg (including purepascal version), _LStrAsg, _LStrLAsg, AnsiLowerCase / AnsiUpperCase, TStringHelper.IndexOf가 향상되었다. 4.1.2 새 TURLStream 클래스 새 스트림 클래스인 TURLStream가 새로 생겼으며, 일반 기반 클래스인 TAsyncStream은 비동기 스트림을 위한 새 기반 클래스이다. 이것은 TMemoryStream으로부터 상속받는다. TURLStream은 비동기 스트림 중 하나로서 URL 경로를 지원하며 TAsyncStream으로부터 상속받는다. TAsyncStream.Create는 해당 백그라운드 쓰레드 안에서 APopulate(채우기)를 시작한다. 완료되기 전까지는 TAsyncStream에 대한 모든 TStream 메소드 호출이 차단된다. 활용 방식은, IAsyncResult를 사용하여 TAsyncStream 채우기 완료를 기다리고 확인한다. TAsyncStream은 IAsyncResult를 지원한다. AProvide 익명 메소드를 제공한다. 이것은 채우기가 완료되면 호출된다. TURLStream 생성자(constructor)는 자신의 기반 클래스 생성자를 확장하여 아래와 같이 선언된다. constructor TURLStream.Create(const AURL: string; const AProvide: TAsyncStream.TStreamer; ASynchronizeProvide, AFreeOnCompletion: Boolean); TURLStream은 기반 클래스인 TAsyncStream의 행위를 상속받지만, 안에서는 URL 스키마에 따라 THttpClient 또는 TFileStream을 사용한다. TAsyncStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, AfterConstruction, Read, Write, Seek, SetSize(Int64), SetSize(Longint), SaveToStream. TURLStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, RegisterSyncReqExexcutor, UnRegisterSyncReqExecutor. 4.1.3 RTL 기타 향상 TOSVersion 데이터 구조에서 윈도우 11과 윈도우 서버 2022을 지원한다. TURI.ToString이 포트를 고려한다. TMetaFile은 이제 큰 스트림에서 데이터를 로드할 수 있다. 4.1.4 TMemIniFile 및 섹션 중복 TIniFile이 변경되어 10.3 이전의 행위와 섹션이 중복되는 경우에 대한 호환성이 더 좋아졌다. 4.2 VCL 최근에 추가된 강화된 기능 (예, TTreeView, TRichEdit, TEdgeBrowser, TNumberBox 등)과 관련된 이슈 해소에 주력했다. 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 advmanager를 위해 android.bat 파일 도구에 대한 의존을 제거했다. 그리고 안드로이드 플랫폼용 IDE SDK 관리자 대화창을 업데이트 했다. DEX 컴파일과 DEX 병합이 C++/델파이 링킹 이후로 지연되어서, 배포 없이 컴파일하는 속도가 더 빨라졌다. 안드로이드 플랫폼 코어를 통합할 수 있도록, 메소드 오버로드로 Java 인터페이스를 구현하도록 델파이 클래스에 대한 지원을 추가했다. 이는 안드로이드 12와 안드로이드 센서 접근 문제를 해소하는 데 도움이 된다. (SensorInfo 데모 교정). Java 인터페이스를 구현하는 델파이 클래스는 이제 Int8, Int16, Int64, Float32, Float64 값을 반환하는 함수를 가질 수 있다. 4.3.2 TWebBrowser 윈도우에서 TWebBrowser (WebView 2 지원) 향상, 윈도우의 웹브라우저 엔진을 하나 이상 바꿀 수 있는 기능이 추가되었다. WindowsEngine 프로퍼티의 기본값이 변경되었다. TWebBrowser의 크기 변경과 투명도 이슈가 해소되었다. 또한 모바일에서 로컬 파일 작업 기능이 향상되었다. 4.3.3 FMX 기타 품질 윈도우에서 HighDPI-관련 이슈 해소 TMessageManager.Unsubscribe 성능 향상 TMemo 컨텍스트 메뉴에 Undo(되돌리기) 추가 및 내용 자동 스크롤링 이슈 해소 안드로이드와 iOS에서 이모티콘 색상 향상 macOS 플랫폼에서 메탈 GPU 드라이버 지원 향상 4.4 데이터 4.4.1 일반 사항 필드 링크 디자이너(Field Link Designer)와 새 필드 대화창(New Field Dialog)을 더 크고 더 사용하기 쉽게 만들었다. Firebird 4의 긴 필드 이름 (최대 63자) 지원하기 위해 데이터베이스 RTL 안에 있던 필드 이름 31-글자 제한을 없앴다. 4.4.2 FireDAC(파이어닥) FireDAC용 스트럭처 뷰를 구현 했다. 또한 일부 FireDAC 창들이 High DPI를 더 잘 지원하게 되었다. 데이터베이스 지원 추가: MariaDB 10.6 서버 (10.6 클라이언트 사용) 데이터베이스 지원 추가: SQLite SEE, C++빌더에서 FireDAC 정적 바인딩(static binding)을 할 때, SQLite OBJ들을 빌드할 수 있도록 명령줄 배치(Batch)를 제공한다. readme 파일인 sqlite_see.txt에 절차가 설명되어있다 (RAD 스튜디오 11.0에서는 이미 겟잇을 통해 이것을 받아서 사용할 수 있었다). FireDAC의 Firebird 4 드라이버를 향상했다. 추가된 데이터 타입을 지원한다: INT128 NUMERIC 정밀도 19..38 TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE (제한있음) DECFLOAT(16/34) 네이티브 구문 시간제한 FireDAC에 FireBird 4 페이지크기 32768 지원이 추가되었다. 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 웹브로커 서버 애플리케이션을 이제 안드로이드 장비에도 배포할 수 있다. 또한 (안드로이드 OS를 실행하는 라즈베리 파이와 같은) 개발자 보드에도 배포할 수 있다. 안드로이드 32-비트와 64-비트 모두 해당된다. 4.5.2 데이터스냅 (DataSnap) Web.Win.ISAPIThreadPool을 확장하여 쓰레드를 64개 이상 허용할 수 있게 되었다. NumberOfThreads 변수 타입이 Cardinal로 변경되었다. ShutdownTimeout 변수 (쓰레드 풀에서 모든 작업 쓰레드를 끝내기 위해 기다릴 시간 제한을 밀리초 단위로 지정하는 곳)의 기본값은 2분이다. 4.5.3 RAD 서버 데이터베이스 구조 일부가 향상되었고, 새 엔드포인트인 REST SysAdmin가 제공된다. GET /sysadmin/log - LOG 테이블 내용에 대한 정보를 반환한다. POST /sysadmin/log?minTime=<ISO8601 date> - 지정된 날짜/시간보다 오래된 레코드를 LOG 테이블에서 모두 삭제한다. GET /sysadmin/backup?backupFile=<file path> - emsserver.ib 데이터베이스 백업 파일을 만든다. 백업 파일은 인터베이스 서버 안에서 사용할 수 있다. POST /sysadmin/backup?backupFile=<file path> - 지정한 백업 파일로부터 emsserver.ib 데이터베이스를 복구한다. GET /sysadmin/validate - emsserver.ib 데이터베이스 평가를 수행하고, 데이터베이스의 상태를 반환한다. RAD 서버 사용자가 동시에 세션 한개 이상에서 로그인할 수 있도록 허용한다. RS라이트(RSLite)용 새 배포 기능 EMS.INI의 새 옵션으로, Data 섹션 안에 ClientLib 엔트리를 사용하여, 특정 인터베이스 클라이언트 라이브러리 (임베이드 DB 또는 일반 DB 중 하나)를 고를 수 있도록 했다. 이제 RS라이트용 즉시 배포 기능이 있다. 4.5.4 기타 REST 디버거에서 클라이언트측 인증서를 선택할 수 있는 옵션이 추가되었다. REST 디버거가 이제 DPI-인식 창이 되었다. TCustomRESTRequest 클래스에 새 BodyCodePage 프로퍼티가 생겼다. 이 프로퍼티는 요청 바디의 코드 페이지 (Request body code page)를 명시한다. 특별한 값들이 몇개 있다. -1 (기본값) - 플랫폼의 기본 인코딩을 사용 0 - 현재 활성화된 코드 페이지 사용 65001 - UTF8 사용 AmazonAPI에서 지역(Region) 변경을 지원한다. 5. 기타 참고 (See Also) Installation Notes Release Notes New features and fixed issues What Was New in Past Releases View full RAD 스튜디오 버전별 신기능
×
×
  • Create New...

중요한 정보

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