이 글은 Sarina DuPont가 작성한 엠바카데로 블로그 글을 번역(및 일부의역)한 것입니다


(RAD스튜디오 10.4 시드니 30일 무료 평가판을 받아서 경험해보세요

델파이, C++빌더 그리고 RAD 스튜디오 10.4 시드니 출시를 발표하게되어 매우 기쁩니다. RAD 스튜디오 10.4는 Windows 10 VCL 데스크톱 개발, 멀티-디바이스 개발 그리고 개발 생산성을 향상시켜 개발자들의 코드 작성 및 유지보수 작업에 소요되는 시간을 줄여주고 애플리케이션 성능을 최적화합니다.

RAD 스튜디오 10.4 시드니, 델파이 10.4 시드니, C++ 빌더 10.4 시드니의 설치 프로그램은 다음 링크(tech.devgear.co.kr/463474)에서 확인할 수 있습니다.

새로운 기능들과 업데이트 내용들을 다음의 순서로 정리했습니다:

무료 평가판 다운로드

 

새로운 델파이 기능

  • 델파이 코드 인사이트 개선 (자세히 보기)
    • RAD 스튜디오 10.4는 델파이의 코드 작성도구(tooling) 기능 중 최근 수년간 가장 크고, 가장 향상된 기능인 언어 서버 프로토콜(LSP: Language Server Protocol) 기반 코드 인사이트를 선보입니다. LSP는 별도의 프로세스에서 코드 완성, 코드 탐색등의 결과를 계산하는 기술입니다. 이는 해당 작업 중 IDE가 절대 멈추지 않고도 코드 인사이트는 정확한 결과를 제공합니다. 10.4는 수백만 줄의 코드를 갖는 대규모 프로젝트 작업 시 더욱 향상된 개발자 생산성을 경험할 수 있을 것입니다.

  • 델파이의 새로운 언어 기능: 커스텀 관리 레코드 (자세히 보기)
    • 델파이 언어에 추가된 주요 문법으로, 델파이 레코드 타입은 이제 초기화(Initialization), 종료(finalization), 그리고 복사 연산자를 직접 작성할 수 있습니다. 개발자들은 레코드 생성, 복사, 파괴하는 각 단계에서 실행될 코드를 직접 작성해 지정할 수 있습니다. 이 추가기능을 잘 활용한다면 클래스보다 더 효과적으로 사용할 수도 있습니다.

  • 통합 메모리 관리
    • 델파이 메모리 관리는 지원하는 모든 플랫폼(모바일, 데스크톱 및 서버)에서 전통적인 객체 메모리 관리 방식으로 일원화되었습니다. 자동 참조카운트(ARC: Automatic Reference Counting)에 비해 기존 코드와의 호환성이 높아지고, 컴포넌트, 라이브러리, 애플리케이션 개발에 필요한 코드도 간결해집니다. ARC 모델은 모든 플랫폼에서 문자열 관리와 인터페이스 타입 참조를 위해 유지됩니다.
    • C++의 경우, 이 변화는 C++에서 델파이-방식 클래스를 생성하고 삭제할 때, 힙에 할당하는 C++ 클래스와 마찬가지로 일반적인 메모리 관리 방식으로 통일되므로 복잡성이 현격하게 줄어듭니다.

 

새로운 C++빌더 기능

  • C++ 라이브러리 지원 확장
    • 10.4에서는 인기 있는 수많은 C++ 라이브러리를 C++빌더로 이식해 C++빌더에서 사용할 수 있도록 최적화했습니다. libSIMDpp, NemTode, SDL 등을 겟잇 패키지 매니저를 통해 다운로드할 수 있습니다. Boost 1.70도 다운로드 받을 수 있습니다.

  • C++용 Win64 디버깅과 링커 (자세히 보기)
    • C++빌더 10.4에서 윈도우 64비트 C++ 디버거가 새로 도입되었습니다. 새 디버거는 LLDB 기반이며, 64비트 애플리케이션을 디버깅할때 안정성이 크게 향상되었습니다. 추가된 핵심 기능으로는 C++문자열과 델파이 문자열과 같은 타입을 뿐만 아니라, std::vector, std::map 등 STL 컬렉션도 검사하고 파악합니다. 또한 여러가지 디버그 포맷을 이용하여 앱의 디버그 정보를 생성합니다. 포맷터는 확장할 수도 있습니다. 요컨데, 더 안정적인 디버거가 되었고, 더 많은 디버깅 기능이 제공됩니다. 그리고 디버깅 시, 검사와 파악 능력이 훨씬 강력해졌습니다.

  • 툴체인 성능 및 품질 개선
    • 수많은 Dinkumware STL 향상
    • 주요 RTL 메소드 및 영역 개선 (공통 C++ 라이브러리와 호환성이 향상된 결과)
    • CMake 지원 능력 강화
    • 품질 및 안정성 측면에서 수많은 향상

 

VCL 업데이트

  • VCL 스타일의 High-DPI 지원
    • 10.4에서 VCL 스타일 아키텍처가 크게 확장되어 고해상도 DPI와 4K 모니터를 지원합니다.
      VCL 스타일 폼안에 있는 모든 UI 컨트롤이 모니터의 해상도에 맞게 자동으로 크기자 조정됩니다.
    • 스타일 API를 전면 개편하여, 고해상도 DPI 스타일을 지원합니다. 멀티-스케일 버전 라이브러리에서 DPI에 알맞은 UI 요소가 선택되어 반영되므로, 모든 모니터에서 각 요소가 산뜻하게 표현됩니다.

  • 새로운 고해상도 DPI 스타일
    • 많은 내장 및 프리미엄 VCL 스타일이 고해상도 DPI 스타일 모드를 지원하도록 업데이트 되었습니다. 어떤 모니터에서도 멋지게 표현되는 애플리케이션을 만들 수 있습니다.
  • VCL 개별 컨트롤(Per-Control) 스타일링 (자세히 보기)
    • VCL 개발자들은 이제 단일 애플리케이션 안의 각 폼별로 다양한 VCL 스타일을 적용할 수 있습니다. 또한 같은 폼 안의 각 비주얼 컨트롤마다 다른 스타일을 적용할 수도 있습니다. 기본 플랫폼 테마가 적용된 경우에도 각 화면 요소를 스타일링 할 수 있습니다. 이와 같이 스타일링의 유연성을 높이는 것 외에도, 스타일 기반 VCL 애플리케이션 안에서 스타일이 지원되지 않는 써드파티 컨트롤을 쓸 수도 있습니다.

  • 새로운 VCL 컴포넌트: 엣지 브라우저 컨트롤 (자세히 보기)
    • 10.4에는 TEdgeBrowser 라는 VCL 웹브라우저 컴포넌트가 새로 추가되었습니다. TEdgeBrowser는 마이크로소프트가 크로미움 기반으로 새로 만든 Edge WebView2 콘트롤을 사용합니다. 인터넷 익스플로러 기반인 오래된 TWebBrowser에 비해 훨씬 더 현대적이고 안전한 HTML 엔진입니다.
    • 또한, 클래식 TWebBrowser 컴포넌트 역시 강화되어, 인터넷 익스플로러와 엣지브라우저 두가지 중 애플리케이션 실행 환경에 들어있는 브라우저가 반영됩니다.

  • 새로운 VCL 컴포넌트: TTitleBarPanel과 CustomTiltleBar
    • 새 TTitleBarPanel 컨트롤과 TForm.CustomTitleBar 속성이 추가되었습니다. VCL 폼으로 만든 네이티브 윈도우의 제목 표시줄을 커스터마이징할 수 있습니다. 윈도우 제목 표시줄에 VCL 컨트롤을 배치하거나, 아이콘, 캡션과 같은 항목의 색상 등의 그리기를 제어할 수 있습니다. 최소화/최대화/닫기 버튼 근처에 새로운 시스템 버튼을 추가할 수 있으며, 심지어 제목 표시줄 전체를 커스터마이징하여 그리는 것이 가능합니다. 10.4에 새로 추가된 TitleBar 기능을 통해, 워드, 웹브라우저 등 요즘 가장 인기있는 애플리케이션과 같이 현대적이고 고급스러운 제목 표시줄을 작성할 수 있습니다.

  • 새로운 VCL 컴포넌트: 다중 해상도를 지원하는 이미지 컴포넌트
    •  
    • TVirtualImage 컴포넌트가 새로 추가되었습니다. 다중 해상도와 DPI 확대/축소를 지원합니다. 기존 TImage 컴포넌트를 TVirtualImage로 교체하면, 화면 해상도에 따라 확대/축소 시, 고품질 이미지와 표현을 실현할 수 있습니다.
       
  • 윈도우즈 API 업데이트
    • RAD 스튜디오가 제공하는 뛰어난 플랫폼 통합 능력을 더욱 향상하기 위해, 많은 API 선언을 개선하고, 필요한 몇가지를 더 추가했습니다.

 

파이어몽키 업데이트

  • macOS와 iOS에서 Metal 드라이버 GPU 지원: 맥OS 플랫폼(델파이)에서는 (애플에서 지원을 중단한) 기존 Quartz API와 OpenGL대신 Metal API 기반으로 애플리케이션을 빌드할 수 있습니다. 파이어몽키 Metal 지원은 화면 렌더링 성능을 향상 시키고, 향후 Apple의 마이그레이션 요구에 유연하게 대응할 수 있을 것입니다. 10.4에서는 iOS(델파이와 C++빌더)도 Metal API를 지원합니다.

  • RAD 스튜디오 10.4를 사용하는 개발자는 최신 iOS SDK 지원 뿐아니라, 내장 IDE 지원을 통해 Apple의 새로운 시작화면 스토리보드 요구사항을 해결할 수도 있습니다.

  • 이번 출시에는 윈도우즈 플랫폼에서 스타일 기반 TMemo 컴포넌트에 대해 새로운 FMX 구현이 포함되어, IME 지원 및 추가 기능이 향상되었습니다.
  • 엔터프라이즈 및 아키텍트 에디션 고객은 FMXLinux 통합 기능을 통해 리눅스 GUI 애플리케이션을 만들수 있습니다.
  • iOS용 TWebBrowser 컨트롤은 WKWebView API를 이용 구현됩니다.
  • macOS의 미디어 플레이어 컨트롤은 AVFoundation을 이용해 구현됩니다.
  • 파이어몽키 프레임워크를 사용하는 개발자는 지원되는 운영체제의 최신 버전을 대상으로 작업할 수 있습니다.

 

런타임 라이브러리 업데이트

  • 향상된 병렬(페러럴) 프로그래밍 라이브러리 지원: 병렬 프로그래밍 라이브러리(PPL: Parallel Programming Library)는 최신 멀티코어 CPU에서 병렬로 작업을 실행할 수 있는 기능을 제공합니다. 10.4에서는 PPL 라이브러리의 성능과 안정성이 크게 향상되었습니다.
     
  • 10.4에서는 FireDAC 데이터베이스 엑세스 라이브러리의 일부가 개선되었고, FireBird, PostgreSQL 및 SQLite 용 드라이버가 업데이트되었습니다. SQLite 임베디드 데이터베이스의 경우, 연결 방식을 정적(static) 및 동적(dynamic) 연결 중 하나를 선택할 수 있습니다.

  • HTTP와 REST 클라이언트 라이브러리의 추가 HTTPS 기능을 확장했으며, Amazon AWS 서비스에 대한 지원도 확장했습니다.
     
  • 라이브 바인딩 성능 및 기능 향상
    • 10.4에서 VCL과 파이어몽키 애플리케이션 모두에서 Visual LiveBindings 아키텍처와 구현의 큰 향상이 있었으며 특히 성능 향상에 중점을 두었습니다. 결과적으로 라이브 바인딩 작업이 훨씬 더 빨라졌습니다.
    • 추가 개선사항으로, TDataSet에 바인딩 된 VCL 및 FMX 컨트롤이 TField의 DisplayWidth, Alignment, EditMask와 같은 속성에 바인딩 할 수 있습니다.

 

IDE 업데이트

  • 겟잇 패키지 매니저 향상 (자세히 보기)
    • IDE의 겟잇 패키지 매니저가 10.4에서 대폭 개선되었습니다. 각 패키지에 출시 일자를 표시하고, 출시 일자별로 정렬해 표시할 수 있습니다. 설치된 패키지에 대한 새로운 필터링 옵션, 업데이트 구독 고객만을 위한 독점 컨텐츠, 업데이트가 가능한 패치 표시 등등...

 

  • 온라인과 오프라인 설치를 위한 통합 설치 프로그램
    • 10.4에서는 겟잇 설치 기술을 이용한 통합 설치 프로그램을 도입했습니다. 온라인(인터넷 연결) 설치와 오프라인 설치(ISO 이용)를 모두 지원하는 단일 설치 프로그램을 제공합니다. 이제 온라인과 오프라인 설치 모두에서 초기 설정(언어와 플랫폼 선택, 언어 지원, 도움말/리소스 등) 가능하고, 언제든지 옵션을 추가하거나 삭제할 수 있습니다. 

  • 코드 에디터의 상태 표시줄에는 파일의 코드페이지, 폰트 크기를 표시하고 설정을 포함한 몇가지 생산성 향상이 추가되었습니다.
  • IDE 및 핵심 대화상자에는 새로운 TCustomTitleBar 컨트롤을 이용해 제목 표시줄에 검색 및 설정하는 기능을 구현해 네이티브 룩앤필과 윈도우즈 DWM 동작이 가능합니다.

RAD 스튜디오 10.4는 현재 1,000개가 넘는 품질 및 성능 향상을 제공하는 가장 훌륭한 품질의 릴리즈  중 하나입니다. 여기에는 퀄리티 포털에 고객이 직접 등록해준 700건이 넘는 문제에 대한 수정사항이 포함되어 있습니다.

최상의 품질을 위해 다음 항목에 집중했습니다.

  • 비주얼 라이브 바인딩: 향상된 성능과 새로운 기능
  • 앱테더링 품질
  • 병렬 프로그래밍 라이브러리 품질향상 및 개선
  • C++ 툴체인(컴파일러, 링커, 디버거)
  • RTL 성능향상 및 새로운 작은 기능들(버퍼링, FreeAndNil)
  • FireDAC 드라이버 업데이트 (SQLite 등)
  • HTTP과 REST 그리고 클라우드와 SOAP 클라이언트 개선

기타 유용한 링크