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

[버전정보] [12.1] 아테네 - 릴리스 1


Recommended Posts

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

"RAD 스튜디오 12 아테네 - 릴리스 1"을 정리한 Docwiki (원문 보기)를 번역한 글입니다. 

메인 페이지(영문 )로 이동 >>
과거 버전들의 새 기능 모아 보기(영문)로 이동 >>

참고:

  • 12 아테네에서 새로 포함되었던 기능(영문)을 모두 볼 수 있다.

RAD 스튜디오 12 아테네 - 릴리스 1 (12.1이라고도 부름)을 이제 설치할 수 있다. RAD 12.1은 RAD 스튜디오 12의 기능을 바탕으로 하여 제품 전반에 걸쳐 기존 기능을 강화하고 몇가지 새 기능들을 추가했다.

RAD 스튜디오 12는 품질 향상에 주력했다. 하지만, C++ 도구 체인과 IDE에서 현격한 향상이 반영되었다.
주요 기능들과 품질 집중 영역은 다음과 같다:

  • C++ Clang 도구 체인
  • 분할 에디터 (Split Editor)
  • IDE (통합 개발 환경)
  • Debugger (디버거)
  • 안드로이드 타겟 API 레벨 34
  • VCL
  • VA
  • 델파이 컴파일러
  • 기타 라이브러리들

 

차례


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

1.1 C++ Clang 도구 체인

RAD 스튜디오 12.1은 윈64용 Clang 도구 체인 업그레이드를 IDE 안에 통합했다.

spacer.png

새 도구 체인 전체가 IDE 안에 완전히 통합되어서 일반 플랫폼처럼 사용된다. 이 도구 체인에 포함된 것들로는 새 Clang 15 컴파일러, LLVM lld 링커, libc++ STL, UCRT C 런타임, 등등이 있다.

이 도구 체인은 기존 윈64 플랫폼과 함께 병행 제공된다. 윈 64용으로는 VCL과 FMX 지원, DLL, 정적 라이브러리, 콘솔 애플리케이션 등이 지원된다. IDE 안에서 Target Platforms를 오른쪽 클릭하고 Win64 (Modern)를 추가하면 된다.

 

1.1.1 여러분이 할 수 있는 것은?

이 도구 체인은 VCL과 FMX로 실제 애플리케이션을 만들도록 준비가 되어 있다. IDE는 완전하게 통합되었다. 올바른 옵션들을 컴파일러 드라이버와 링커에게 전달한다. 여러분은 특별한 우회 조치 또는 컴파일러 명령-줄 플래그(flag)들이 전혀 필요하지 않을 것이다.

알아둘 점: 동적 패키지 설정이 되어 있다고 해도, 여러분의 앱은 패키지를 정적으로 링크한다.

spacer.png

위 이미지는 파이어몽키로 만든 미로 앱(우리 깃허브에 있음)을 새 Clang 도구 체인으로 만든 것이다.

 

1.1. 2 제한 사항 (Limitations)

  • 몇 가지 라이브러리들(예: SOAP)은 이 도구 체인 안에 들어 있지 않다. 이는 테스트 점검을 줄이기 위해서다. 즉 가장 많이 필요한 라이브러리들의 품질에 집중하기 위해서다. 사용할 수 있는 라이브러리들/패키지들에 대한 전체 목록은 아래와 같다.
  • 패키지(예: VCL 등등)들은 여러분의 앱에 정적으로 링크된다. RAD 스튜디오 12.1에는 동적 패키지 소비(예: BPL 파일들을 EXE와 함께 배포하여 동적으로 연결하기)기능이 들어 있지 않다. 패키지의 내용물들은 EXE 안에 정적으로 링크된다. 이는 ‘Runtime packages’ 설정을 Project Options에서 어떻게 지정해도 마찬가지이다.
  • 패키지를 C++로 생성하기. RAD 스튜디오 12.1이 지원하는 패키지는 현재 오직 델파이로 작성한 것들 뿐이다.

 

1.1.3 특별 참고 사항 (Special Notes)

1.1.3.1 가상 파일 시스템 (Virtual File System)

IDE는 가상 파일 시스템 (Virtual File System, VFS)을 유지한다. 즉 여러분은 프로젝트 생성하기, 파일 생성하기, 기존 파일 변경하기, 그것들을 컴파일하고 실행하기 등을 디스크에 저장하지 않고 할 수 있다.

예전엔, 그렇게 하기 위해, 우리 도구 체인들은 모두가 컴파일러와 링커의 DLL 버전을 가지고 있어서 IDE VFS 안으로 낚아 챘다(hooking). 새 Clang 업그레이드에서는 Clang VFS 오버레이(overlay)를 사용한다.

임시 VFS 파일들은 컴파일 후에 제거되는 것이 기본 설정이다. 이 설정을 끄려면, Project Options > C++ Compiler > Advanced로 가서, Remove temporary VFS files after compilation 옵션을 끄면 된다.

 

1.1.3.2 POSIX 및 기타 RTL 메서드들

RAD 스튜디오는 표준 윈도우 RTL 메서드 세트를 완전하게 준수하지 않았었다. 그래서 많은 POSIX 버전과 사용자 정의 함수들을 제공했었다. 그것들 중 몇 가지가 빠졌을 수도 있다.

 

1.1.3.3 C++ 표준 호환성

RAD 스튜디오는 libc++ 15.0을 사용한다. C++ 언어 표준 규약을 아래 페이지에서 확인하자.

참고:
포맷 라이브러리에는 libc++ 16에서 도입한 지원이 있다. 따라서, RAD 스튜디오 12.1은 아직 이것을 지원하지 않는다. ( {fmt} 라이브러리는 테스트되지 않았지만, 잘 작동할 것이다.) 기타 항목들, 예를 들어, Parallelism TS, spaceship operator 등등이 libc++ 안에 있다. 하지만 아직 그 버전에 대한 도움말에는 반영되지 않았다.

 

1.1.4 패키지와 라이브러리

새 lld 링커는 ilink보다 현격하게 빠르다(약 4배 더 빠름). 더 큰 파일 크기를 쉽게 처리한다. 따라서 동적 링크를 (링크 시간이나 링커 메모리 때문에) 우회용으로 사용할 필요가 없다.

동적 패키지 소비는 아키텍처상의 이유로 중요하다. 그리고 RAD 스튜디오는 다음 릴리스에서 동적으로 링크되는 델파이 런타임 패키지 업그레이드를 계획하고 있다.

포함된 라이브러리들과 포함되지 않은 라이브러리들에 대한 목록을 패키지 설명서 페이지에서 찾아보자.

 

1.2 분할 에디터(Split Editor)

RAD 스튜디오 12.1에서는, IDE에서 분할 에디터(Split Editor) 화면을 지원한다. 여러 에디터들을 나란히 그리고 위 아래에 놓고, 또는 섞어서 그 모든 화면을 같은 창 안에 배치할 수 있다. 또한, 모든 탭 세트들을 떠다니는 창 (floating window)으로 끌어 낼 수 있다, 또한 IDE 안으로 다시 끌어 넣을 수도 있다.

RAD 스튜디오의 에디터 화면은 수준 높은 방식으로 구현되었다. 따라서 복잡한 사용자 정의 배치와 조작이 가능하다. 즉, 간단한 2열 배치, 여러 행 배치 또는 여러분의 작업 흐름에 딱 맞는 맞춤 배치를 할 수 있다.

여러 탭 모두가 똑같은 유닛을 열어 놓고 편집할 수 있다. 또는 한 탭에는 폼 디자이너를 열어 놓고, 그 유닛의 코드를 다른 여러 탭에서 열어 놓고 작업할 수도 있다. 어느 탭에서 디자이너를 보여줄 것인지를 서로 이동할 수도 있다. 분할 에디터의 갯수에는 제한이 없다. 가로든 세로든 마찬가지다.

 

1.2.1 분할 에디터 사용하기

분할 에디터에 접근하려면, 탭을 마우스 오른쪽 버튼으로 클릭하고 Split > 또는 Move >를 선택한다. Split은 선택한 탭의 다른 버전을 새로 생성한다. 반면, Move는 그 위치에 있는 탭을 닫고 여러분이 IDE 안에서 선택한 위치에서 그 탭을 연다.

spacer.png

분할 에디터를 사용하는 또 다른 방법은, Projects 창 안에 있는 파일을 아무 에디터 안으로 끌어 놓는 것이다. 그러면, 그 파일은 해당 탭 그룹 안에서 새 탭으로 열린다.

두 개의 탭이 하나의 창 안에 있으면, 두 세트 모두 각자의 제목 표시줄을 가진다. 다음을 수행할 수 있다:

  • 에디터 탭 또는 에디터 탭 세트를 끌어서 IDE 창 안의 어느 측면이든 놓으면 그곳에 붙는다(docking).
  • 끌어서 도킹하기는 이미 열려있는 다른 에디터의 측면(왼쪽, 오른쪽, 위쪽, 아래쪽)에서도 작동한다.
  • 이미 열려있는 다른 탭 세트안에 탭을 병합하려면, 넣고 싶은 에디터의 중앙으로 끌어 놓으면 된다. (탭들을 담고 있는) 떠다니는 창도 끌어 넣을 수 있다.
  • 끌어서 바깥에 놓으면, 자체 창이 된다(탭 하나 또는 탭 집합).

더 많은 동작들을 각 탭에서 할 수 있다. 예를 들어, 도킹되어 있는 탭 세트들 사이에서 이동하기를 하려면, 개별 탭을 한 위치에서 다른 위치로 끌어 옮기면 된다.

각 탭 세트를 끌어서 끄집어 내면, 자체 창이 된다. 제목 표시줄을 끌어서 이동시킨다. (드래그를 할 때는 Ctrl 키를 누른 채 끌고 가자. 그러면, 도킹을 시도하지 않으므로, 떠다닐 수 있다)

마찬가지로, 각 창을 다른 탭 세트 옆에 도킹할 수도 있다. 그러려면, 제목 표시줄을 드래그하면 된다.

참고:
대부분의 에디터들/그룹들은, 닫히면, 그냥 사라진다. 그러나, 최초의 에디터, 즉 메인 창의 유일한 에디터로 사용되는 창을 'X' 버튼으로 닫으면 포함된 모든 탭들이 닫힌다. 그럼에도 불구하고, 그 공간은 여전히 열려있다. 원본 에디터는 닫을 수 없다. 그리고 화면에는 항상 그 공간이 있다. 여러분이 탭 그룹을 닫을 때까지 이 공간은 아무 영향도 미치지 않는다. 일상적인 작업에서 이것을 생성, 이동 또는 도킹하는 동작이 끼치는 영향은 전혀 눈에 띄지 않는다.

1.2.2 디자이너와 코드

분할 에디터들를 서로 옆에 놓고, 동일한 파일의 내용을 열어서 편집할 수 있다. 두 에디터 모두 동일한 파일의 내용을 볼 수 있다. 에디터 하나 안에서 타이핑을 하면서, 다른 에디터에서 그 위치로 간다면 입력한 텍스트가 이미 들어 있을 것이다.

그런데, 두 화면 모두 스크롤이 독립적이다. 따라서 동일한 파일 안의 여러 위치들을 편집할 수 있다. 동일한 파일을 편집하는 탭의 갯수에는 제한이 없다.

참고:
명실할 점은. 단 하나의 파일(내부 용어로 모듈 또는 파일 버퍼)을 여러 에디터 화면에서 열었을 경우에, 한 에디터에서 변경한 사항은 언제나 그 파일을 보고 있는 다른 모든 에디터에도 반영된다는 점이다. 하나의 편집기에서 내용을 변경하면 '복사', '중복' 등과 같은 동작을 전혀 하지 않는다. 파일 하나는 그 내용도 하나다. 비록 여러 에디터에서 열고 편집하더라도 말이다.
달리 설명하자면, 한 에디터에서 파일을 편집할 때 해당 변경 사항은 파일 자체에 반영된다. 그 에디터에만 반영되는 것이 아니다. 정의하자면, 동일한 파일을 열고 있는 다른 에디터들 안에도 언제나 변경 사항이 들어간다.

 

1.2.3 촛첨 추적하기

RAD 스튜디오에서 UI 디자인의 핵심 원칙은 초점을 명확하게 하는 것이다. RAD 스튜디오 12.1 이전 버전에서는, 현재 초점이 맞춰진 창은 강한 파란색이었다. 한쪽에 도킹된 창이든 (그때 당시에는 하나만 있었으므로 단일) 에디터 탭이든 관계없이 그랬다.

그와 동일한 기술이 적용된다. 그런데, 이제는 여러 에디터가 있으므로, 탭 그룹의 제목 표시줄과 해당 특정 탭이 진한 파란색으로 표시된다. 이로 인해 정말, 정말 명확하게 알 수 있게 된다.

촛점이 없는 에디터를 가진 각 에디터 그룹들은 제목 표시줄의 '배경' 색상이 창백하다. 심지어 그 그룹에서 맨 위에 있는 탭(해당 그룹이 촛점을 받은 경우 실제로 촛점을 가지게 되는 탭)조차도 회색으로 표시된다. 따라서 촛점이 없음을 알 수 있다.

 

1.2.4 도킹(Docking)과 배치(Layouts)

12.1부터는, RAD 스튜디오를 사용하면 Object Inspector와 같은 창들을 원하는 곳 어디든 이동하고 도킹할 수 있다. 실제 사용시, 도킹 가능한 창(Object Inspector, Structure view 등등)과 도킹 가능한 에디터/에디터 그룹 사이에 차이가 거의 없다. 따라서 필요에 맞게 강력한 배치를 구성할 수 있다.

데스크탑 레이아웃은 열려 있는 에디터(및 에디터 그룹, 해당 위치, 도킹된 위치 등)들과 예전 방식에서도 도킹 가능했던 창들이 함께 배치되는 세트이다. 여러 개의 창을 가질 수 있으며, 각 창마다 여러 개의 탭이 들어 있을 수 있다.

에디터를 구성했다면, 데스크탑 레이아웃으로 저장해야 한다. 그렇지 않으면 쉽게 잃게 된다.

또한, 그 구성은 해당 데스크톱 레이아웃이 변경되는 경우 바뀐다. 예를 들어, IDE가 디버깅을 시작하면, 디버그 레이아웃으로 전환되고, 그러면 디버그 레이아웃 구성이 적용된다.
레이아웃이 바뀔 때, 새로 전환되는 레이아웃 안에는 해당 위치가 없는 모든 탭 그룹(개별 탭도 마찬가지로, 별도로 도킹되어 있는 한)이라면 도킹이 해제되어 떠다니는 창이 된다.

 

1.3 IDE 향상

1.3.1 델파이LSP 코드 완성

RAD 스튜디오 12.0에서 코드 완성 기능이 추가되었었다. 즉, 타이핑할 때 자동으로 코드 완성 팝업이 나타나게 할 수 있다. 이 DelphiLSP 이전 기능은 도움이 되는 제안들을 목록으로 제공했다. 이전처럼 점을 찍어야만 즉 수작업으로만 불러낼 수 있는게 더 이상 아니다.

그러나, 타이핑할 때 이것이 자동으로 나타나면, 특정 항목을 타이핑하기가 어려운 경우들도 종종 있다. 예를 들어, 새 변수 이름은 (알려져 있지 않은 식별자이므로) 자동으로 제안되지 못한다.
코드 완성 기능에서는 여러분이 스페이스(Space) 키를 눌렀을 때 제안 목록의 맨 위에 있는 항목이 수락되었다. 그러므로, 여러분이 작성 중인 내용은 무시되었다.

RAD Studio 버전 12.1에서는 그 기능성을 보다 향상했다. 이제는 auto-invoke 기능은 On으로 되어있고, 코드 완성을 자동으로 불러낼 때는, 여러분이 현재 선택된 자동 완성을 수락하려면, 오직 TabEnter 키를 사용해야 한다. 다른 키 즉 스페이스(Space), 여는 중괄호, 점 등과 같은 다른 키는 효과가 없다. 즉, 코드 완성을 자동으로 불러낼 때는, 여러분이 반드시 완성을 수락하겠다고 선택해야 한다는 의미다. 이제 무언가를 실수로 자동 완성하는 일은 없을 것이다.

코드 완성을 일반 방식으로 불러낼 때는, 위 키들을 사용하여 제안된 내용을 수락할 수 있다. 이는 11.3 및 이전 버전에서와 마찬가지다. 다시 말하자면, 이 동작은 이전의 모든 일반 방식의 코드 완성에서 전혀 바뀐 것이 없다.

해당 auto-invoke 기능은 Off가 기본 설정이다. 이 기능을 켜고, 새 완성 키 탭들에 대해 더 알아보려면 Code Insight 설명서를 참고하자. 

 

1.4 디버거

버전 12.1에서, 델파이 윈32, 델파이 윈64, C++ 윈32만 제외하고, 모든 디버거들이 LLDB 15를 사용한다. 이는 Clang 업그레이드에서 사용되는 것과 동일한 디버거이다.

이전 버전에서는 LLDB 12를 이 플랫폼들에 사용했지만, 이제는 업그레이드되었다.

 

1.5 안드로이드 타겟 API 레벨 34

RAD Studio 버전 12.1은 Android API 레벨을 34로 업데이트한다. 이 변경을 위해 안드로이드 SDK 도구 사용 변경이 필요했으며, 몇 가지 추가 안드로이드 플랫폼 도구들이 필요했고, Java 런타임 업데이트도 필요했다. 자세한 내용은 다음과 같다:

  • 12.1 버전은 플랫폼 기능들 중에서 설치된다. 그리고 Eclipse Temurin JDK OpenJDK 17(핫스팟) JVM을 권장한다.
  • 12.1 버전에서는 명령-줄 도구 Android SDK 컴포넌트들이 우리의 기본 Android SDK 설치에서 나와서 업데이트되었다.
  • 기본 targetSdkVersion 매니페스트 애트리뷰트(attribute)는 이제 34이다.

RAD Studio 12.1은 .apk 파일 생성 시 성능이 눈에 띄게 향상되었다. 왜냐하면 12.1은 Google의 zipflinger 라이브러리와 signflinger 라이브러리를 패키징을 하는 명령-줄 도구 안에서 활용하기 때문이다. Android 패키징의 개선 사항은 다음과 같다:

  • Android DEX 작업 (DEX 컴파일 및 DEX 병합)은 이제 증분식이다 (이제 이 작업은 오직 입력 파일이 해당 출력 파일과 관련하여 오래된 것으로 간주되는 경우에만 시작된다).
  • 12.1 버전에서는 빌드 시스템이 이전되었다. 전에는 오래되고 단종된 Google의 AAPT 명령-줄 도구를 사용했지만, 이제는 Google의 새 도구인 AAPT2를 사용한다.
  • Google의 AAPT2 명령-줄은 이제 각 Android 리소스 파일을 컴파일하고 그것들을 모아서 하나의 .zip 파일 안에 패키징을 한다. 그 패키지 안에는 해당 매니페스트 파일과 Android 리소스 테이블도 들어 간다.
  • 새 Packager 명령-줄 도구는 패키지되는 리소스 파일, 네이티브 라이브러리, 자산 파일 및 .dex 파일을 최종 .apk 또는 기본 모듈 파일 안에 넣는다.

 

1.6 품질 향상

1.6.1 VCL

  • VCL TEdit은 이제 윈도우 최신 버전에 있는 쉬운 접근성(Ease of Access)의 텍스트 커서(Text Cursor)에서 올바르게 작동한다.  이 방식에 따라, 우리는 IDE에 대한 접근성을 다시 살려 놓았다. 예전에는 위 이슈 때문에 비활성화가 기본 설정이었다. JAWS를 IDE에서 기본 설정으로 (다시) 잘 사용할 수 있다.
  • NumberBox가 개선되었다. 음수 값을 사용할 수 있다.
  • ProgressBar State는 이제 VCL 스타일 하에서 지원된다.

 

1.6.2 C++용 Visual Assist

  • 파일을 저장하지 않고 닫는 경우, VA에 캐시가 남아 있는 문제가 해결되었다.
  • 이름바꾸기는 이제 이벤트 핸들러의 이름도 변경한다.
  • 컴포넌트의 이름을 바꾸면, 디자이너 안에서도 그 이름이 바뀐다. 이는 12.0에서 빠뜨렸던 기능이다.
  • 오브젝트의 프로퍼티에 대한 코드 완성은 이제 올바르게 작동한다.
  • 코드 완성 결과로 인해 예상치 못한 값이 표시되는 경우가 더 이상 없다.
  • 코드 완성이 발동하지 않는 이슈가 해소되었다.
  • VA가 써드 파티 라이브러리에서 작동하지 않는 이슈가 해소되었다.
  • #include 전처리기 지시문 자동 완성을 < 및 ""로 사용할 때 이제는 올바르게 작동한다.
  • 사소한 UI 향상들이 메뉴에 반영되었다.

 

1.6.2.1 기타 라이브러리

RAD Studio 12.1에서는 데이터베이스 부문에 다음과 같은 개선 사항들이 도입되었다:

  • TIBDataSet 에디터(IBX)가 개선됨.
  • FireDAC 지원에 Firebird 버전 5가 추가됨.여기에는 Firebird 5용 TFDFBBackup 안에서 병렬 작업이 되도록 하는 지원이 포함됨.
  • FireDAC 지원에 PostgreSQL 버전 16이 추가됨.
  • 최신 버전인 IBToGo 및 IBLite(InterBase 2020 업데이트 5에 맞춰짐)는 이제 안드로이드에서 작동한다.

파이어몽키의 12.1에는 다음이 포함되었다:

  • 맥OS에서 불투명 형식으로 저장된 투명 비트맵은 Windows에서처럼 동작한다(즉, 투명 색상이 검은색으로 변한다).

인터넷 부문에서, 12.1에는 다음이 포함되었다:

  • TRestClient는 현재 사용자 목록뿐만 아니라 로컬 컴퓨터 목록의 인증서 사용을 지원한다.
  • 웹 16진수 색상 구문을 StringToColor 함수에서 지원한다.
  • REST 디버거가 테이블 셀에서 값을 복사하는 기능.
  • RAD 서버 사용자의 사용자 이름을 변경하는 기능.

 

1.7 기타 참고 (See Also)


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

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

  • 어드민 pinned and featured this 토픽(기고/질문)

이 토의에 참여하세요

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

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...

중요한 정보

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