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

Kori

중재자그룹
  • 포스트

    1077
  • 가입

  • 마지막 방문

  • 방문일수

    69

Kori 님이 마직막으로 취득한 날:

Kori 님은 가장 좋아하는 콘텐츠를 가지고 있습니다!

3 팔로워

최근 프로필 방문자

최근 방문자 보기가 꺼져있어서 다른 사람에게 보이지 않습니다.

Kori 님의 성취

Mentor

Mentor (12/14)

  • One Year In
  • Posting Machine Rare
  • Reacting Well
  • One Month Later
  • Problem Solver Rare

최근 배지

92

평판

71

답변

  1. 원문 정보 (최종 번역일: 2026년 9월 7일): 제목: Football Playview Is An Outstanding Mobile Delphi App 작성자: Embarcadero Admin - 2021년 4월 링크 https://blogs.embarcadero.com/football-playview-quarterback-keep/ Football Playview을 사용하면, 코치와 선수들은 애니메이션으로 된 플레이, 드릴, 연습 계획을 휴대폰이나 태블릿에서 확인할 수 있다. 풋볼 플레이, 드릴, 연습 계획은, Jes-soft에서 만든 짝꿍 데스크탑 프로그램인 Football Playbook을 사용해 만들 수 있다. 이 프로그램은 무료로 체험할 수 있으며, http://www.jes-soft.com/football/index.html에서 받을 수 있다. 이 플레이북 프로그램은 최근 버전의 Windows와 모두 호환된다. 여러분의 플레이와 연습 계획을 데스크탑에서 만든다. 그것들을 클라우드 드라이브(예를 들어 gdrive, DropBox)에 저장한다. 그러면 클라우드 드라이브에서, 모바일 기기를 사용해 그 플레이와 연습 계획을 열어볼 수 있다. 웹사이트 Football Playview 스크린샷 갤러리 더 많은 사례를 알고 싶다면, 아래 모아 보기를 활용하면 된다. 엠바카데로 공식 블로그(영어): 영어 개발 사례(showcase) 기고들 데브기어 포럼(한국어): 한국어 개발 사례 기고들
  2. 원문 정보 (최종 번역일: 2026년 9월 4일): 제목: Coming in RAD Studio 13.2: Build Modern Windows User Interfaces with Two New VCL Controls 작성자: Marco Cantu - 2026년 9월 링크 https://blogs.embarcadero.com/coming-in-rad-studio-13-2-build-modern-windows-user-interfaces-with-two-new-vcl-controls/ TabView와 NavigationView 미리보기 정보 (VCL에 새로 추가하려고 하는 두 가지 컨트롤) 기능 미리보기: 이 블로그 글의 기반은 RAD Studio 소프트웨어의 사전 릴리스 버전이다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다. 엠바카데로가 지속적으로 집중해오고 있는 영역은 고객이 현대적인 UI로 Windows 애플리케이션을 만들 수 있도록 하는 것, 그러면서도 고객들이 투자해 온 VCL 라이브러리를 계속 관리할 수 있도록 하는 것이다. 최근 몇 년 동안, 우리는 새로운 탭 컨트롤들을 추가해 왔다. 그것들은 폼을 다루는 데 초점을 맞추어져 있다 (MDI 폼들을 오늘날의 방식으로 옮기는 것도 포함). 이 노력은 앞으로 나오는 릴리스에서도 계속된다. 이번에는 내비게이션을 위한 두 가지 새 VCL 컨트롤이다. 즉 TabView와 NavigationView다. 이 컨트롤들은 오늘날의 Windows 애플리케이션들이 사용하는 패턴(그리고 WinUI3 사용자 인터페이스 패러다임)을 따른다. 그런데, 이것들은 일반 VCL 컨트롤다. 그리고, 기존에 가지고 있는 폼, 프레임, 페이지 컨트롤, 애플리케이션 코드와 함께 동작하도록 설계되었다. 우리는 이 두 컨트롤을 동시에 함께 작업했다. 서로 연관된 문제들을 해결하는 것들이기 때문이다. TTabView는 주로 문서나 뷰를 위한 수평 탭을 제공한다. TNavigationView는, 수직 내비게이션을 제공한다. 애플리케이션의 주요 영역에 흔히 쓰이는 것이다. 목차 새 TabView 컨트롤 새 NavigationView 컨트롤 스타일링과 커스텀 드로잉 계속 개선되는 VCL 새 TabView 컨트롤 TabView 컨트롤은, TabSet 컨트롤을 대신할 새로운 대안이다. 탭 하나는 폼 하나 또는 다른 컨트롤 하나와 연결할 수 있다. 그래서 특정 콘텐츠 컨테이너를 강제로 사용할 필요가 없다. 각 탭마다 여러분은 이미지, 여러 줄 텍스트, 닫기 버튼(선택사항)을 넣을 수 있다. 예전에는 탭 스트립을 쓸만 하게 하기 위해 상당한 커스텀 코드를 넣어야 했지만, 그런 기능들이 이미 이 컨트롤에 들어 있다. 즉, 탭 추가 버튼, 모든 탭을 나열하는 드롭다운, 탭이 더 이상 들어가지 않을 때 나타나는 스크롤 버튼이 구현되어 있다. TTabView는 TTitleBarPanel 위에 배치할 수 있다. 그러면 요즘 브라우저나 개발 도구와 비슷하게, 커스텀 제목 표시줄 안에 탭 넣어 사용할 수 있다. 새 NavigationView 컨트롤 NavigationView 컨트롤은, 수직 목록이다. 그 안에는 내비게이션 항목들이 나열된다. 항목 하나는 멀티페이지 컨트롤 안에 해당되는 페이지 하나, 프레임 하나, TCardPanel 안에 있는 카드 하나, 또는 써드-파티(Third-Party) 페이지 컨트롤에 의해 관리되는 콘텐츠를 가리킬 수 있다. 이것의 느슨한 연결은 의도된 것이다. 그래야, 기존 애플리케이션이 모든 콘텐츠를 새로운 컨테이너로 옮기지 않아도 이 컨트롤을 사용할 수 있기 때문이다. 이 컨트롤에는 일반(normal) 모드와 컴팩트(compact) 모드가 있다. 일반 모드는 이미지와 텍스트를 표시한다. 컴팩트 모드는 이미지는 유지하고 내비게이션 영역의 너비를 줄인다. 내장된 메뉴 버튼을 사용하면 두 모드를 전환할 수 있다. 항목 안에는 여러 줄 캡션과 힌트를 넣을 수 있다. 마우스 휠로 스크롤할 수 있으며, 드래그 앤 드롭으로 순서를 바꿀 수 있도록 하는 것도 선택적으로 가능하다. 스타일링과 커스텀 드로잉 여러 내장 선택 스타일들이 있다. 여기에는 테마 적용형, 컬러형, 사각형, 둥근 모서리형 등이 해당된다, 색상은 현재 활성화된 VCL 스타일을 따를 수도 있고, 직접 선택할 수도 있다. 더 세밀한 제어가 필요한 애플리케이션을 위해, 드로잉 이벤트들이 제공된다. 그래서 항목 전체 또는 항목의 콘텐츠만 따로 커스터마이징할 수 있다. 이 두 컨트롤은 함께 사용할 수도 있다. 예를 들어, NavigationView로 애플리케이션의 주요 영역을 선택하고, 그 영역에서 열린 문서를 TabView가 담당하도록 할 수 있다. 아니면 두 컨트롤을 각각 독립적으로 사용할 수도 있다. 계속 개선되는 VCL 우리는 새 UI 컨트롤을 계속 추가해 왔다. 그래서 기존 VCL 애플리케이션을 현대화하는 데 도움이 되어 왔다. 또한, 현대적인 모습의 새 애플리케이션을 만드는 데도 쓰일 수 있는 것들이다. 이번 컨트롤들도 그 방향으로 가는 또 하나의 발걸음이다. 우리는 이 방향으로 계속 갈 계획이다. 또한 다른 한편으로는, 상당한 노력을 스타일, HiDPI, 등 라이브러리의 여러 현대적인 기능에 대한 지원을 향상시키는데 집중하고 있다. 또한, 이 영역에서 고객이 제보하는 티켓들을 반영하고 있다. 기능 미리보기: 이 블로그 글의 기반은 RAD Studio 소프트웨어의 사전 릴리스 버전이다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다.
  3. 원문 정보 (최종 번역일: 2026년 9월 2일): 제목: Coming in RAD Studio 13.2: Navigate Large Codebases Faster with the New Integrated Navigator 작성자: Marco Cantu - 2026년 9월 링크 https://blogs.embarcadero.com/coming-in-rad-studio-13-2-navigate-large-codebases-faster-with-the-new-integrated-navigator/ Goto, 에디터 미니맵, 현재 보고 있는 코드에 대한 더 많은 정보. 기능 미리보기: 이 블로그 글의 기반은 RAD Studio 소프트웨어의 사전 릴리스 버전이다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다. 13.1 릴리스에서 우리는 향상된 Bookmarks 기능을 통합했다. 원래는 Parnassus가 개발했고, GetIt(겟잇) 패키지로 제공되던 것이었다. 이제 Navigator에도 같은 작업을 하고 있다. 새로 통합된 Navigator 덕분에 이제는, Goto 창과 에디터 미니맵을 RAD Studio 안에 들어간다. 설정은 일반 IDE 옵션에서 하면 된다. Navigator는 대규모 프로젝트에서 가장 유용하다. 프로젝트가 크면, 많은 심벌의 이름과 위치를 찾아야 하고, 그것들은 여러 유닛들에 퍼져있다. 실제로, 우리 고객 대다수가 운영하고 있는 프로젝트들이 그렇다. 목차 유닛, 타입, 메서드로 이동하기(Goto) 미니맵 IDE의 일부가 되다 유닛, 타입, 메서드로 이동하기(Goto) Goto 창은 유닛, 타입, 메서드, 그 밖의 심벌을 검색한다. 또한 타이핑하는 동안 결과를 필터링한다. 심벌 이름 전체를 기억할 필요도, 프로젝트 트리를 일일이 각 유닛마다 훑어볼 필요도 없다. 결과에서 선택을 하면 IDE는 그곳으로 곧바로 이동한다. 이것은 조그마한 작업흐름 기능이다. 하지만 수십 번씩 사용하게 되는 기능이다. 호출 체인을 따라가거나 낯선 프로젝트를 익힐 때 주로 사용된다. GoTo 창은 미니맵과도 함께 동작한다. 그래서 도착하는 위치는 그저 고립된 한 줄이 아니다. 현재 소스 파일 안 어디에 있는지도 바로 확인할 수 있다. Navigator 구성, Goto 대화상자, 에디터(배경에 미니맵이 함께 보임) 미니맵 미니맵은, 에디터 옆에 전체 소스 파일을 축소해서 렌더링한다. 그 축소된 크기로는 코드를 읽을 수 없다. 그런 목적이 아니다. 선언, 메서드, 빈 영역, 주석의 형태를 통해 긴 유닛의 특정 부분을 알아챌 수 있다. 그리고 그것들 사이를 빠르게 이동할 수 있다. 원래 제공되던 이전 플러그인과 다르게, 우리는 활성 줄 표시(active-line marker)를 추가했다. 그래서 미니맵에서 현재 위치를 확인할 수 있다. 또한 스크롤바 주석(Editor Scrollbar Annotations)도 확장했다. 그래서, 중단점과 Error Insight 결과를 표시한다. 예를 들어, 유닛 아래쪽에 여러 오류가 모여 있다거나, 현재 보고 있는 코드 근처에 중단점이 있다는 것을 확인할 수 있다. 게다가 파일을 직접 스크롤하지 않고도 그 위치로 바로 이동할 수 있다. 에디터 미니맵이 실제로 동작하는 모습 IDE의 일부가 되다 여기서 핵심적인 변화는, 이 탐색 도구들이 에디터의 일부가 되었다는 점이다. 그래서 상태를 공유할 수 있게 되었다. Goto가 담당하는 것은 "이 메서드는 어디에 있는가?"라는 심벌 관련 질문이다. 미니맵이 담당하는 것은 "이 유닛 안에서 나는 지금 어디에 있는가?"라는 시각적 질문이다. 이 도구들을 IDE에 통합함으로써, 이런 것들을 이루어냈다. 품질도 함께 향상시켰다. 별도의 설치 단계도 없앴다. 향후 개선을 위한 탄탄한 기반도 마련했다. 만약 여러분이 대규모 Delphi나 C++ 프로젝트로 작업하고 있다면, 이 기능을 몇 일 동안 직접 써 보면 그 가치를 더 쉽게 판단할 수 있다. 다음 릴리스에서 만나게 될 RAD Studio IDE의 관련 개선 사항은 이것 말고도 많다. 나는 그중 몇 가지를 다른 블로그 글에서 소개할 예정이다. 기능 미리보기: 이 블로그 글의 기반은 RAD Studio 소프트웨어의 사전 릴리스 버전이다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다.
  4. 원문 정보 (최종 번역일: 2026년 8월 30일): 제목: Coming in RAD Studio 13.2: Faster Builds and Faster Applications with Delphi's LLVM-20 Compilers 작성자: Marco Cantu - 2026년 8월 링크 https://blogs.embarcadero.com/coming-in-rad-studio-13-2-faster-builds-and-faster-applications-with-delphis-llvm-20-compilers/ 병렬 코드 생성, LLVM 최적화, 메모리 관리자 변경이 Linux Intel 64비트와 Windows Arm64EC를 위해 준비 중이다. 기능 미리보기: 이 블로그 글은 RAD Studio 소프트웨어의 사전 릴리스 버전을 기반으로 한다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다. 이전 글에서 나는 Linux Intel 64비트용으로 새로 작업된 Delphi 컴파일러를 다뤘다. 그 컴파일러와 Windows Arm64EC용 Delphi 컴파일러는, 이제 동일한 LLVM 20 세대를 기반으로 한다. 그래서 우리 R&D는 두 플랫폼에 걸쳐 컴파일러 작업을 공유할 수 있다. 컴파일러 성능을 이야기할 때는, 서로 별개인 두 가지 질문이 있다. 1) 애플리케이션을 빌드하는 데 얼마나 걸리는가? 2) 빌드된 후, 컴파일러가 만들어내는 코드는 얼마나 빠른가? 최신 LLVM은 더 뛰어난 최적화를 제공한다. 하지만 그러려면 컴파일러가 더 많은 작업을 해야 하고, 시간도 더 걸린다. 우리 팀은 이 두 측면 모두를 다루기 위해 상당한 노력을 기울이고 있다. 목차 병렬 코드 생성(Delphi 최초) 이 새 최적화기가 바꾸는 것 Arm과 Linux의 메모리 관리자 런타임 패키지 그리고 기타 Windows on Arm 작업 병렬 코드 생성(Delphi 최초) 이제 64비트 컴파일러 실행은, 여러 Delphi 유닛들의 코드를 병렬로 만들어 낼 수 있다. 기본적으로, 이 컴파일러는 사용 가능한 프로세서 코어 수를 기준으로 워커(worker) 개수를 선택한다. 여러분은 그 값을 직접 재정의할 수 있다. 전역적으로 또는 프로젝트별로 또는 명령줄에서 하면 된다. 그래서, 컴파일러 문제를 격리해야 하는 경우에, 병렬 생성을 직접 끌 수도 있다. 새 "Number of workers" 옵션. Tools Options 대화상자 안에 있다 알아둘 점이 있다. 이 기능은 32비트 버전의 컴파일러와 32비트 IDE에서는 지원되지 않는다. 더 많은 메모리가 필요하기 때문이다. 즉, 대규모 애플리케이션을 빌드할 때, 사용 가능한 메모리를 초과할 가능성이 크기 때문이다. 향상 정도는 프로젝트와 빌드 구성에 따라 크게 좌우된다. 우리가 진행한 내부 테스트에서는, 10코어 Intel Core i9-13900H 시스템에서 FireMonkey 유닛을 다시 빌드했을 때, Debug 모드에서는 약 2배, Release 모드에서는 약 14배 더 빨랐다. 이 수치가 모든 프로젝트의 기준이라고 볼 수는 없다. 하지만 이 수치는, 병렬 작업이 왜 특히 최적화된 Release 빌드에서 중요한지를 보여준다. Release 빌드에서는 LLVM이 처리해야 할 작업이 훨씬 많다. 그러니, 상당히 느릴 수 있다. 이 기능이 없다면 말이다. 이 새 최적화기가 바꾸는 것 Linux Intel 64비트와 Windows Arm64EC 양쪽 모두에서, 이 컴파일러 프론트엔드는 이제 Delphi 코드를 더 폭넓은 LLVM IR 최적화 패스 집합들에 통과시키는 것을 할 수 있다. 여기에는 예외 처리도 해당된다. 예외 처리라는 영역은 언어의 의미론과 범용 최적화기가 정밀하게 맞춰져야 하는 영역 중 하나다. 우리 테스트 중 다수는, 런타임이 2배에서 4배 범위로 향상되는 것을 보여주고 있다. 특정 Conway's Life 테스트에서는 약 7배에 도달했다. Arm64EC의 Release 컴파일은 새 최적화를 켠 상태에서 더 오래 걸릴 수 있다. 현재 테스트에서 봤을 때는, 병렬 코드 생성을 고려하기 전 기준으로, 약 34%에서 42% 더 오래 걸린다. 이는 합리적인 트레이드오프(tradeoff)다. 컴파일러 시간을 더 들임으로써, 더 빠른 코드를 만들어낸다. 그런 다음, 사용 가능한 CPU 코어들을 활용해 기다리는 시간을 줄인다. Arm과 Linux의 메모리 관리자 우리는 또한, Delphi의 FastMM4 기반 메모리 관리자를 Windows Arm64EC로 포팅했다. 그리고 거기에서도 그것을 기본값으로 삼았다. 13.1에서 제공했던 플랫폼 할당자(platform allocator)가 특히 느렸던 건 일부 재할당 패턴이었다. 거기에는 반복적인 문자열 연결도 해당된다. FastMM은 더 균형 잡힌 동작을 제공한다. 또한 Windows Delphi 개발자에게 이미 익숙한 누수 보고 기능도 그대로 유지한다. FastMM4에 더해, 우리 팀은 rpmalloc 메모리 관리자도 도입하고 있다. Arm64EC와 Linux Intel 64비트 양쪽에서 대안으로 사용할 수 있다. 우리 테스트에서는 안정적이었다. 게다가 스레드가 대량으로 몰리는 멀티 스레드 할당 부하에서는 매우 빠를 수 있는 것으로 나타났다. 테스트에 따라 2배에서 30배까지 빨랐다. 트레이드오프는, 메모리 사용량이 더 높다는 점, 흔히 2배 정도, 그리고, FastMM에 준하는 내장 누수 보고 기능이 없다는 점이다. 그래서 rpmalloc은 기본값이 아니라 선택 사항으로 남아 있다. 런타임 패키지 그리고 기타 Windows on Arm 작업 컴파일러 변경과 함께, 우리는 Windows Arm64EC 플랫폼을 계속 채워나가고 있다. 가장 중요한 개선 사항은, 13.1에는 포함되지 않았던 기능이다. 바로 런타임 패키지 지원이다. 런타임 패키지 구성 (Windows on Arm 플랫폼용) Windows on Arm 플랫폼에서는 런타임 패키지만 향상된 게 아니다. Windows on Arm 플랫폼을 위해, 부동소수점, 제네릭이 많은 코드 처리, 정적 라이브러리 호환성, 리소스, 링킹, 예외 처리, 임포트된 함수, 디버그 정보에 대한 향상을 위해 작업했다. 이 항목들 대부분은 헤드라인급 기능은 아니다. 하지만 이것들이 합쳐지면, 기존 Delphi 애플리케이션이 이 새 플랫폼으로 이전할 때 예상치 못한 문제 없이 진행될 수 있는지를 결정짓는다. 이번 글과 이전 글은, RAD Studio 13.2에서 새롭게 선보이는 Delphi 컴파일러 작업을 정리한 것이다. 하지만 물론, 이번에 컴파일러만 향상되는 것이 아니다. 나는 13.2의 다른 제품 향상들에 대해서도 더 다룰 예정이다. 기능 미리보기: 이 블로그 글은 RAD Studio 소프트웨어의 사전 릴리스 버전을 기반으로 한다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다.
  5. MCP 기반 작업흐름으로 InterBase 데이터베이스 탐색하기 원문 정보 (최종 번역일: 2026년 8월 30일): 제목: Exploring an InterBase Database with an MCP-Driven Workflow 작성자: Rizzato Fernando - 2026년 8월 링크 https://blogs.embarcadero.com/exploring-an-interbase-database-with-an-mcp-driven-workflow/ 이전 글에서 우리는 InterBase Model Context Protocol(MCP) 서버를 소개했다. Delphi로 만들어진 이 도구는, 대규모 언어 모델(LLM)과 InterBase 데이터베이스를 연결해 준다. 이번 후속 글에서, 우리의 플레이그라운드 노트북을 공개한다. 실제로 진행된, 단계별 세션이다. 나는 ChatGPT를 사용해, InterBase 데이터베이스 인스턴스와 직접 상호작용했다. InterBase MCP 도구와 에이전틱 스킬을 사용해서 할 수 있었다. 지금까지 시도한 것들 그리고 그 결과들은 아래에서 확인해 보자: 목차 1. 스키마 파악하기 2. 스키마 문서와 ER 다이어그램 생성하기 3. 고객 데이터 살펴보기 4. 매출액 기준 상위 고객 찾아내기 결과 5. 데이터베이스 대시보드 만들기 6. 여러 테이블을 결합한 스트레스 쿼리 구성하기 7. 복잡한 쿼리 실행 계획 설명하기 8. 메타데이터 변경/최적화 적용하기 1. 스키마 파악하기 프롬프트: 이 데이터베이스 안의 모든 테이블들을 나열해. 그런 다음, 각 테이블의 커럼, 데이터 타입, null 허용 여부, 기본 키, 외래 키, 인덱스를 보여줘. 이 데이터베이스 안에는 10개의 사용자 테이블이 있다: 테이블 기본 키 용도 COUNTRY COUNTRY 국가와 통화 참조 데이터 CUSTOMER CUST_NO 고객 연락처 및 위치 데이터 DEPARTMENT DEPT_NO 조직 계층 구조와 예산 EMPLOYEE EMP_NO 직원, 직무, 부서, 급여 EMPLOYEE_PROJECT EMP_NO, PROJ_ID 직원-프로젝트 연결 테이블 JOB JOB_CODE, JOB_GRADE, JOB_COUNTRY 직무 정의와 급여 범위 PROJECT PROJ_ID 프로젝트, 제품, 팀 리더 PROJ_DEPT_BUDGET FISCAL_YEAR, PROJ_ID, DEPT_NO 부서·연도별 프로젝트 예산 SALARY_HISTORY EMP_NO, CHANGE_DATE, UPDATER_ID 직원 급여 변경 이력 SALES PO_NUMBER 주문, 영업 담당자, 수량, 금액 이 카탈로그를 검사한 결과, 13개의 외래 키 관계가 확인되었다. 중심이 되는 트랜잭션 테이블은 SALES다. CUST_NO를 통해 CUSTOMER를 참조하고, SALES_REP를 통해 EMPLOYEE를 참조한다. employee, department, job, project 테이블은 핵심 조직 모델을 이룬다. 전체 컬럼-수준 출력은 schema-document.md로 저장했다. 거기에는 데이터 타입, null 허용 여부, 기본값, 제약 조건, 인덱스, 관계 요약이 포함되어 있다. 2. 스키마 문서와 ER 다이어그램 생성하기 프롬프트: Markdown 스키마 문서를 생성해. 그런 다음, 계층적 ER 다이어그램을 만들어. 그 다이어그램은 모든 컬럼, 데이터 타입, null 허용 규칙, 기본 키, 외래 키 관계를 담고 있어야 해. 솔직히 말해, ER 다이어그램을 생성하는 첫 시도는 잘 되지 않았다. 생성된 다이어그램은 아키텍트가 기대할 만한 형식이나 상세 수준을 맞추지 못했다. 조사를 좀 해본 후에 나는 AI 에이전트에게 특정 모델링 스킬을 넣어주었다. 그 스킬은 이 프로젝트에서 얻었다: https://github.com/imxv/Pretty-mermaid-skills 이를 통해, 우리는 매우 유망한 결과를 얻을 수 있었다. 나는 밀어붙일 여지가 더 있다고 믿게 되었다. 아래를 확인해 보자: schema-er.mmd: Mermaid 소스 schema-er.svg: 렌더링된 벡터 다이어그램 3. 고객 데이터 살펴보기 프롬프트: CUSTOMER 테이블 안에 저장된 데이터를 보여줘. 이 테이블에는 15명의 고객이 있었다. 아래의 간략한 표는, 이번 실험 동안 가져온 식별 정보와 위치를 담은 필드들을 보여준다: 고객 번호 고객명 도시 지역 국가 보류 1001 Signature Design San Diego CA USA 1002 Dallas Technologies Dallas TX USA * 1003 Buttle, Griffith and Co. Boston MA USA 1004 Central Bank Manchester England 1005 DT Systems, LTD. Central Hong Kong Hong Kong 1006 DataServe International Ottawa ON Canada 1007 Mrs. Beauvais Pebble Beach CA USA 1008 Anini Vacation Rentals Lihue HI USA 1009 Max Turtle Island Fiji * 1010 MPM Corporation Tokyo Japan 1011 Dynamic Intelligence Corp Zurich Switzerland 1012 3D-Pad Corp. Paris France 1013 Lorenzi Export, Ltd. Milan Italy 1014 Dyno Consulting Brussels Belgium 1015 GeoTech Inc. Den Haag Netherlands 두 고객 즉 "Dallas Technologies"와 "Max"은 현재 보류 상태라고 표시되어 있었다. 4. 매출액 기준 상위 고객 찾아내기 프롬프트: 총 매출액이 가장 높은 상위 10개 고객을 반환하는 InterBase 쿼리를 작성하고 실행해. InterBase 쿼리는 다음과 같았다. 잘 작동했다: SELECT C.Cust_no, C.Customer, Sum(S.Total_value) AS Total_sales_value FROM Customer C JOIN Sales S ON S.Cust_no = C.Cust_no GROUP BY C.Cust_no, C.Customer ORDER BY Total_sales_value DESC ROWS 1 TO 10 결과 순위 고객 번호 고객명 총 매출액 1 1001 Signature Design 1,045,610.12 2 1012 3D-Pad Corp. 463,000.47 3 1006 DataServe International 400,008.00 4 1011 Dynamic Intelligence Corp 121,980.72 5 1004 Central Bank 75,000.00 6 1003 Buttle, Griffith and Co. 39,582.12 7 1002 Dallas Technologies 35,450.50 8 1008 Anini Vacation Rentals 25,000.00 9 1010 MPM Corporation 21,195.40 10 1005 DT Systems, LTD. 14,980.00 Signature Design이 확실한 선두였다. 2위 고객의 매출액보다 2배 이상 많았다. 프롬프트: 지금 본 그 결과를 차트로 보여줘. 이 차트는 top-customers-chart.svg라고 저장했다. 5. 데이터베이스 대시보드 만들기 프롬프트: 대시보드를 만들어. 이 데이터베이스에서 가장 중요한 운영·분석 데이터를 요약해 보여주는 대시보드야. 결과물인 database-dashboard.html에는, 스키마 개수, 매출 KPI, 주문 상태, 고객 지역 분포, 상위 고객, 직원 급여 통계, 부서별 인원수, 테이블별 행 개수를 한눈에 보여주었다. 6. 여러 테이블을 결합한 스트레스 쿼리 구성하기 프롬프트: 데이터베이스 성능을 점검할 수 있는 쿼리를 만들어. 실용적인 범위 내에서 최대한 많은 관련 테이블을 조인하는 복잡한 쿼리 하나를 만들어. 최종 테스트 쿼리는 10개 테이블 중 9개를 조인했다. SALES를 드라이빙 테이블로 사용했다. 그리고 고객, 직원, 부서, 직무, 프로젝트, 프로젝트 예산, 급여 이력, 국가 데이터로 이어지는 관계를 따라가는 것이었다: SELECT S.Order_status, Co.Country AS Country_name, Co.Currency, D.Department, J.Job_title, P.Product, Count(*) AS ROW_COUNT, Count(DISTINCT S.Po_number) AS Order_count, Count(DISTINCT C.Cust_no) AS Customer_count, Count(DISTINCT E.Emp_no) AS Sales_rep_count, Count(DISTINCT P.Proj_id) AS Project_count, Sum(S.Qty_ordered) AS Total_qty_ordered, Sum(S.Total_value) AS Total_sales_value, Avg(S.Total_value) AS Avg_sales_value, Min(S.Total_value) AS Min_sales_value, Max(S.Total_value) AS Max_sales_value, Avg(E.Salary) AS Avg_sales_rep_salary, Avg(D.Budget) AS Avg_department_budget, Avg(B.Projected_budget) AS Avg_projected_budget, Avg(Sh.Percent_change) AS Avg_salary_change_pct, Max(Sh.Change_date) AS Last_salary_change FROM Sales S LEFT JOIN Customer C ON C.Cust_no = S.Cust_no LEFT JOIN Employee E ON E.Emp_no = S.Sales_rep LEFT JOIN Department D ON D.Dept_no = E.Dept_no LEFT JOIN Job J ON J.Job_code = E.Job_code AND J.Job_grade = E.Job_grade AND J.Job_country = E.Job_country LEFT JOIN Project P ON P.Team_leader = E.Emp_no LEFT JOIN Proj_dept_budget B ON B.Proj_id = P.Proj_id AND B.Dept_no = D.Dept_no LEFT JOIN Salary_history Sh ON Sh.Emp_no = E.Emp_no LEFT JOIN Country Co ON Co.Country = Coalesce(C.Country, E.Job_country) GROUP BY S.Order_status, Co.Country, Co.Currency, D.Department, J.Job_title, P.Product ORDER BY S.Order_status, Total_sales_value DESC, Customer_count DESC 7. 복잡한 쿼리 실행 계획 설명하기 프롬프트: 이 다중 테이블 쿼리의 실행 계획을 설명해 줘. InterBase가 반환한 쿼리 플랜은 아래와 같다: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (JOIN (JOIN (JOIN (S NATURAL,C INDEX (RDB$PRIMARY22)), E INDEX (RDB$PRIMARY7)), D INDEX (RDB$PRIMARY5)), J INDEX (RDB$PRIMARY2)), P INDEX (RDB$FOREIGN13)), B INDEX (RDB$FOREIGN18,RDB$FOREIGN19)), SH INDEX (RDB$FOREIGN21)), CO INDEX (RDB$PRIMARY1)))) 이 계획은 다음을 보여준다: SALES는 자연 스캔(natural scan, S NATURAL)으로 읽었다. 조회 테이블들은 기본 키 또는 외래 키 인덱스를 사용했다. 두 번의 정렬 작업이 필요했다. 그룹화, distinct 집계, 최종 정렬을 위해서였다. 이 쿼리에는 선택적인 WHERE 절이 없었고, SALES 테이블 전체를 집계했다. 그러니 자연 스캔(natural scan, S NATURAL)이 합리적이었다. 8. 메타데이터 변경/최적화 적용하기 여러분의 구성에서 허용된다면, 이 도구를 통해 메타데이터에 변경 사항을 직접 적용하는 것도 가능하다. 이번 실험에서는, 먼저 다음 SQL 문의 실행 계획을 보여달라고 AI에게 요청했다: 프롬프트: 다음 문의 쿼리 계획을 보여줘. SELECT S.Po_number, S.Order_date, S.Order_status, S.Total_value FROM Sales S WHERE S.Order_date >= Cast('2023-01-01' AS DATE) AND S.Order_date < Cast('2024-01-01' AS DATE) ORDER BY S.Order_date, S.Po_number; InterBase가 반환한 쿼리 플랜은 아래와 같다: PLAN SORT ((S NATURAL)) InterBase는 SALES 테이블 전체 스캔(NATURAL)을 수행한 다음, 일치하는 행을 정렬한다. 인덱스는 사용되지 않는다. 프롬프트: 이제, 그 쿼리 실행을 최적화하기 위해 만들 수 있는 인덱스를 제안해. 이 특정 쿼리에 가장 적합한 인덱스는 다음과 같다: CREATE INDEX IDX_SALES_ORDER_DATE_PO ON SALES (ORDER_DATE, PO_NUMBER); 이 인덱스는 다음을 지원한다: ORDER_DATE에 대한 범위 필터 ORDER BY ORDER_DATE, PO_NUMBER 전체 스캔과 명시적 정렬을 피하기 또는 줄이기 프롬프트: 좋다, 제안된 인덱스를 생성해. 생성하고 검증했다: CREATE INDEX IDX_SALES_ORDER_DATE_PO ON SALES (ORDER_DATE, PO_NUMBER); 계획 비교: Before: PLAN SORT ((S NATURAL)) After: PLAN (S ORDER IDX_SALES_ORDER_DATE_PO) 이제 InterBase는 인덱스를 사용한다. 더 이상 자연 스캔이나 명시적 정렬이 필요하지 않다.
  6. 원문 정보 (최종 번역일: 2026년 8월 27일): 제목: Coming in RAD Studio 13.2: A New Generation of Delphi Development for Linux Intel 64-bit 작성자: Marco Cantu - 2026년 8월 링크 https://blogs.embarcadero.com/coming-in-rad-studio-13-2-a-new-generation-of-delphi-development-for-linux-intel-64-bit/ 우리가 작업하고 있는 Linux Intel 64비트용 Delphi 컴파일러 와 런타임에 대해 첫 소개를 한다. 기능 미리보기: 이 블로그 글의 기반은 RAD Studio 소프트웨어의 사전 릴리스 버전이다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다. 엠바카데로는 Linux Intel 64비트용 Delphi 컴파일러에 상당한 작업을 진행하고 있다. 현재 컴파일러의 기반은 LLVM 3.3이다. 이 버전은 출시된 지 오래되었다. 새 컴파일러는 LLVM 버전 20.1로 옮겨간다. 이것이 사용하는 범용 컴파일러 백엔드는 RAD Studio 13.1에서 Windows Arm64EC용 Delphi에 도입했던 바로 그것이다. 이 작업은 거의 완성 단계에 있다. 다음 릴리스에 포함될 예정이다. 이 작업은 단순한 내부 컴포넌트 업데이트가 아니다. 이렇게 많은 LLVM 릴리스를 건너뛰기 위해, 컴파일러 프론트엔드, 생성되는 중간 표현(IR), 예외 처리, 링킹, 디버그 정보 등을 변경했다. 그 결과, 훨씬 더 최신의 Linux 도구체인을 얻게 되었다. 더 중요한 것은, 우리가 앞으로도 최신 LLVM 버전을 꾸준히 채택하며 계속 개선해 나갈 수 있는 도구체인이라는 점이다. 우리는 Linux 웹 서버와 웹 서비스에 초점을 맞추고 있다. 하지만 이 새 컴파일러는 Linux 클라이언트 애플리케이션을 FMXLinux를 사용해 개발하는 것도 함께 지원할 예정이다. 목차 새 백엔드와 링커 최적화된 Linux 애플리케이션 메모리 관리와 Linux 기준선 새 Delphi Linux 새 백엔드와 링커 새로 다듬어진 컴파일러는, LLVM의 LLD 링커를 커스터마이징한 버전을 사용한다. 예전에 사용하던 GNU gold 링커를 교체했다. 또한 DWARF 2 대신 DWARF 5 디버그 정보를 생성한다. 이에 맞게 컴파일러 프론트엔드에도 변경했다. 그래서 소스 위치, 변수, Delphi 타입에 대해 더 좋은 정보를 디버거가 받을 수 있게 되었다. Delphi Linux 컴파일러는 32비트와 64비트 IDE 둘 다에서 제공될 예정이다. 이는 실제로 여러분이 Linux Intel 64비트 애플리케이션을 , 64비트 RAD Studio IDE에서 바로 빌드할 수 있다는 뜻이다. 그 기능은 이미 지원하고 있던 Win64와 Windows Arm64EC 프로젝트에 더해 추가된다. 그런데, 32비트 IDE에서도 계속 사용할 수 있다. 64비트 버전은 대규모 프로젝트를 다룰 때, 32비트 프로세스의 주소 공간 제약을 없애준다. 이는 컴파일러와 IDE 둘 다 해당된다. Delphi 애플리케이션에 Linux 64비트 타겟 플랫폼을 추가하는 모습 (64비트 IDE) 최적화된 Linux 애플리케이션 이번 컴파일러 작업 덕분에, 최신 LLVM 최적화도 활용할 수 있게 되었다. 기존 컴파일러는 코드 생성에 LLVM을 사용했다. 하지만, Delphi 코드를 최신 LLVM 중간 표현 최적화기에 통과시키는 것은 하지 못했었다. 우리는 Delphi 예외 처리를 포함해 프론트엔드를 변경했다. 그래서 이제는 그 최적화들을 Release 빌드에 적용할 수 있게 되었다. 내부 테스트에서, 여러 소규모 벤치마크들은 2배에서 4배 더 빠르게 실행되었다. 몇몇 특정 케이스에서는 더 큰 개선을 보였다. 벤치마크는 애플리케이션이 아니다. 물론 결과는 코드에 따라 달라진다. 그렇지만 이것은, 여러분이 현재 Linux 애플리케이션에 사용하고 있는 것과 동일한 Delphi 소스로부터 생성된 코드다(또한, 대부분의 경우, 이 코드는 Windows 타겟에도 사용할 수도 있다). 메모리 관리와 Linux 기준선 또한, R&D 팀은 Linux Intel 64비트용 메모리 관리자 선택 사양으로 rpmalloc도 제공할 예정이다. 이는 많은 스레드들이 동시에 메모리를 할당하는 경우에 특히 뛰어난 성능을 보인다. 이 방식은 성능 향상 폭이 상당하다. 하지만, 모든 애플리케이션에 대한 정답을 목표로 제공되는 것이 아니다. 왜냐하면, 일반적으로 메모리를 더 많이 사용하고, Delphi의 전통적인 메모리 관리자와 같은 수준의 누수 보고 기능을 제공하지 않기 때문이다. 업데이트된 도구체인은 런타임 기준선으로 glibc 2.31을 사용한다. 따라서 이 도구체인으로 만든 애플리케이션은, 오래된 Linux 배포판(예를 들어 2020년에 출시된 Ubuntu 20.04보다 이전 버전)에서는 실행되지 않을 것으로 예상된다. 새 Delphi Linux 우리의 계획은, 새 Linux 컴파일러가 기존 컴파일러를 완전히 대체하는 것이다. 아직 작업과 테스트가 진행 중이다. 하지만 나는 개인적으로, 새로 다듬어진 Delphi의 Linux 플랫폼 지원에 매우 만족하고 있다. 베타 테스터들도 긍정적인 피드백을 주었다. 참고로, Delphi Linux 컴파일러는 앞으로도 Delphi와 RAD Studio의 Enterprise와 Architect 에디션에서만 제공된다는 점에 유의하기 바란다. 13.2에는 더 많은 것들이 준비되어 있다. 내가 앞으로 공유하려고 계획하고 있는 것은 LLVM-20 컴파일러 향상에 관한 것들이다. 다른 블로그 글에서 다룰 테니, 계속 지켜봐 주기 바란다. 기능 미리보기: 이 블로그 글의 기반은 RAD Studio 소프트웨어의 사전 릴리스 버전이다. 엠바카데로의 특별 허가를 받아 작성되었다. 제품이 정식 출시(GA)되기 전까지는, 어떤 기능도 확정된 것이 아니다.
  7. 원문 정보 (최종 번역일: 2026년 8월 27일): 제목: Webinar: See What's Coming in RAD Studio 13.2 작성자: Hagop Panosian - 2026년 8월 링크 https://blogs.embarcadero.com/webinar-see-whats-coming-in-rad-studio-13-2/ RAD Studio 13.2가 오고 있다. 새 릴리스의 내부를 들여다볼 수 있는 자리를 마련한다. 2026년 9월 22일 화요일, 오전 10시(CT) / 오후 3시(UTC)에 열리는 특별 What's New in RAD Studio 13.2 웨비나에 참여해 보자. 이 웨비나에서는 최신 릴리스를 하나하나 살펴본다. 그래서, Delphi와 C++Builder 개발자가 더 빠르게 작업하고, 더 자신 있게 빌드하고, 최신 플랫폼에 맞게 애플리케이션을 준비하는 데 어떻게 도움이 되는지 보여줄 것이다. 자리 예약하기 RAD Studio 13.2 웨비나의 진행자는 다음과 같다: Marco Cantù(IDE 및 툴링 담당 제품 총책임자) Maksim Menshikov(C++Builder 담당 제품 책임자) Ben Schwenk(DevOps 부문 총 책임자, General Manager) Ian Barker(개발자 옹호자) Nuno Castro(제품 책임자) 성능, 품질, 생산성에 집중하다 이번 릴리스는, 우리가 지속적으로 집중하는 곳은 전문 개발팀에게 가장 중요한 영역들이라는 점을 잘 보여준다. 즉, 생산성, 성능, 플랫폼 준비도, 애플리케이션 품질, 현대화, 신기술에 더 쉽게 접근 등에 집중했다. 크고 오래된 코드 기반을 유지보수하고 있든, 새 애플리케이션을 처음부터 만들고 있든 상관없다. RAD Studio 13.2는 개발 생명주기 전반에 걸쳐 마찰이 줄어들도록 설계되었다. 이 웨비나 동안, RAD Studio 제품팀은 이번 릴리스를 시연한다. 그리고, 향상된 것들 뒤에 담긴 생각을 설명하고, 새로운 기능이 실제 개발 작업흐름에서 가장 큰 차이를 만들어내는 지점들을 보여줄 것이다. 만약 여러분의 일상 업무에서 RAD Studio를 사용하고 있다면, 또는 이 개발 플랫폼을 가지고 다음 프로젝트에서 무엇을 할 수 있을지 검토하는 중이라면, 이번 웨비나에 참여하기 바란다. 새 릴리스의 내부를 파악하는 가장 좋은 방법이다. 지금 등록하고, 9월 22일, RAD Studio 13.2의 새로운 기능을 살펴보는 흥미진진한 시간에 함께해 보자. 자리 예약하기
  8. 원문 정보 (최종 번역일: 2026년 8월 25일): 제목: Kai Summer Wave Webinar Series – 5 Great Days 작성자: David Intersimone - 2026년 8월 링크 https://blogs.embarcadero.com/kai-summer-wave-webinar-series-5-great-days/ 목차 Kai Summer Wave 웨비나 소개 멋진 진행자 = Ian Barker 내가 가장 좋아했던 Kai 활용 사례 – PasClaw (5일차) Kai와 RAD Studio 소개 Kai가 하는 일 Kai가 RAD Studio와 통합되는 방식 일자별 발표와 데모 요약 1. 라이브 AI 기반 개발 데모 (Ian Barker) 2. 웨비나 "로컬 모델 케이지 파이트(Local Model Cage Fight)" 데모 (3일차) 3. 증정품(giveaway)을 받은 대표적인 커뮤니티 프로젝트들 4. Frank Lauer의 멀티 에이전트 엔터프라이즈 구성 (5일차) 5. Eli의 Pasclaw 도구 심층 분석 (5일차) 유튜브 영상 시리즈 링크 Kai Summer Wave 웨비나 시리즈 – 멋진 5일간 작성: David I, Gemini Notebook / 최종 업데이트: 2026년 8월 22일 Kai Summer Wave 웨비나 소개 이번에 제공된 트랜스크립트는, 여러 날에 걸쳐 진행된, 엠바카데로 테크놀로지스(Embarcadero Technologies)가 주최한 웨비나 시리즈를 기록한 것이다. 이 시리즈는 RAD Studio 개발 환경에 통합된 AI 기반 생산성 도구인 Kai를 소개하기 위한 것이다. 발표자는 Kai가 코드를 생성하고, 오래된 사용자 인터페이스를 현대화하고, Delphi와 C++ 둘 모두에서 반복적인 "보일러플레이트" 작업을 자동화함으로써 소프트웨어 개발자를 어떻게 돕는지 자세히 설명한다. 세션 전반에 걸쳐, 진행자는 커뮤니티에서 제출한 프로젝트들을 소개하며 이 도구의 다재다능함을 보여준다. 예를 들면 현대화된 Pac-Man 복제판, 고성능 3D 월드 프레임워크 등이 있다. 이 시리즈에서 진행된 논의의 상당 부분은, 빠르게 진화하는 인공지능 환경에 초점을 맞춘다. Claude, Gemma, Qwen 같은 다양한 대규모 언어 모델을 비교한다. 이 시리즈는 "자신의 키를 직접 가져오는(bring your own key)" 방식을 강조한다. 개발자가 데이터 프라이버시를 유지하기 위해, 클라우드 기반 서비스들과 로컬 LLM들 중에서 선택할 수 있게 한다. 결국 이 웨비나들은, 깊은 기술적 변화를 겪고 있는 업계에서 경쟁력을 유지하려면, AI를 현대 소프트웨어 엔지니어링의 필수 파트너로 받아들여야 한다고 주장한다. 멋진 진행자 = Ian Barker Ian Barker(이안 바커)는 언제나 훌륭한 역할을 해왔다(오프라인에서도, 온라인에서도). 데모, 개발자들과의 대화, 질문과 이메일에 대한 답변을 통해, 무엇보다도 커뮤니티 구성원들의 이야기를 경청(하고 배우기)하면서, Delphi와 C++Builder 개발자들이 더 나은 개발자가 되도록 도와왔다. 나는 "카이의 여름"에 대해 Ian에게 (10점 만점에) 11점을 주고 싶다. Ian이 이 행사보다 더 대단한 것을 위해 무엇을 할지, 나는 정말 기대된다. 24시간 Kai 웨비나(전 세계를 돌며, 하루 종일)는 어떨까? 나는 Ian이 이것을 해낼 수 있도록 반드시 도울 것이다! 😀 내가 가장 좋아했던 Kai 활용 사례 – PasClaw (5일차) 우선, 내 생각에 5일간의 세션 모두 좋았다. 나는 Kai에 대해 더 배우고, 내가 만들고 싶은 프로젝트를 구상하기 위해, 모든 영상을 (여러 번) 다시 볼 예정이다. 5일차는 멋진 솔루션 하나를 소개하며 마무리되었다. FMX Express의 Eli(엘리)가 소개한 PasClaw다. Eli는 Delphi용으로 설계된 오픈소스 에이전틱 코딩 어시스턴트, Pasclaw를 하나하나 짚어가며 설명했다. 프로젝트 홈페이지에는 Pasclaw를 엠바카데로 Delphi로 벼려낸 AI 에이전트라고 소개하고 있다. 단일 네이티브 바이너리, 도구를 사용하는 LLM 루프, 컴파일된 Object Pascal이 가지는 순수한 속도를 갖췄다. GitHub 저장소 readme 파일 발췌: PasClaw는 Delphi Object Pascal로 작성된, 매우 가벼운 개인용 AI 에이전트다. picoclaw에서 영감을 받은 Delphi/FPC 포트이다. 명령줄 어시스턴트, 도구 호출, MCP 통합, HTTP 게이트웨이, OpenAI 호환 API 표면, 작은 내장 웹 UI, 예약 작업, 스킬, 채널 통합 기능을 갖추고 있다. 메인 프로그램은 src/pasclaw/PasClaw.dpr에 있다. 이 프로그램은 터미널 색상 처리를 초기화하고, 배너를 출력하고, 시간대 설정을 적용한 다음, src/cmd/ 아래에 구현된 명령 트리로 처리를 넘긴다. 다음 URL에서 5일차 웨비나 중 Pasclaw 영상 구간을 볼 수 있다: https://youtu.be/eJXY9QPazcc?t=5937 Pasclaw 홈페이지: https://pasclaw.dev/ Pasclaw GitHub 저장소: https://github.com/FMXExpress/PasClaw Kai와 RAD Studio 소개 Kai는 Delphi, C++Builder, RAD Studio를 위해 특별히 설계된 AI 기반 개발 작업흐름 도구다. 엠바카데로/Idera가 유지보수하고 지원하며, RAD Studio의 GetIt(겟잇) 패키지 매니저를 통해 개발자에게 바로 제공된다. AI 환경은 빠르게 변화한다. 그래서 Kai를 핵심 IDE에 직접 내장하지 않고, 애드온 패키지 형태로 제공하고 있다. 그러면 개발팀이 자주 업데이트하고 반복 개선할 수 있다. Kai가 하는 일 Kai는 지능형 코딩 동반자 역할을 한다. 다양한 작업을 처리할 수 있다: 코드 생성과 현대화: 보일러플레이트 코드를 빠르게 생성하고, 특정 Pascal이나 C++ 클래스를 작성하고, 레거시 코드를 현대화할 수 있다(예: 오래된 Delphi 7 코드를 유니코드와 호환되도록 변환하거나, C++ 프로젝트를 최신 Windows SDK와 작동하도록 업데이트하는 작업). UI 디자인과 프로토타이핑: 동작하는 UI 프로토타입을 만들 수 있고, "지친" 또는 "회색 덩어리" 같은 사용자 인터페이스의 모습을 손질하거나 현대화하는 데 도움을 준다. 일반 질의와 번역: 코드 작성을 넘는 일을 할 수 있다. Kai를 뒷받침하는 AI는 문자열 블록을 번역하거나(예: UI에 내장된 텍스트를 한국어에서 영어로 번역), 일반적인 개발 질문에 답할 수 있다. 유연한 "Bring Your Own Key"(BYOK) 모델: 특정 AI 공급업체를 강제로 사용하도록 하지 않고, 그 대신, Kai는 BYOK 모델로 동작한다. Anthropic의 Claude Pro 같은 독점 클라우드 모델에 연결할 수도 있고, Ollama나 LM Studio에서 실행되는 Qwen Coder 3.8이나 Meta(메타)의 Llama 모델처럼 오프라인 오픈 웨이트 로컬 LLM을 사용해, 코드를 로컬 네트워크 안에 완전히 안전하게 유지할 수도 있다. Kai가 RAD Studio와 통합되는 방식 Kai는 RAD Studio IDE 안에 긴밀하게 통합되어 있다. 그래서 개발 흐름을 끊지 않는다. 주요 통합 기능은 다음과 같다: 전용 채팅 패널: 채팅 창이 IDE 안에 있다. 그래서, AI와 대화하면서 코드를 작성 할 수 있다. 다중 세션 옵션: RAD Studio 안에서 여러 개의 서로 다른 채팅 세션을 동시에 실행하고 관리할 수 있다. 예를 들어 작업에 따라, 로컬 세션, Claude 세션, Copilot 세션을 동시에 열어 둘 수 있다. 고스트 텍스트(인라인 코드 완성): Kai는 "고스트 텍스트" 완성 기능을 제공한다. 사실상 예측형 코드 완성 기능을 극한까지 끌어올린 것이다. "Fill in the Middle"(FITM) 기법을 사용해, 현재 활성화된 에디터 창의 앞뒤 코드를 모두 살펴본다. 그리고 타이핑을 시작하는 순간, 여러 줄에 걸쳐 완성되는 코드 블록 전체를 예측한다. 프로젝트 파일 참조(@ 기호): Kai 채팅 창에 @ 기호를 입력하면, 현재 활성화된 RAD Studio Project Manager에서 파일을 동적으로 불러와 참조할 수 있다. Kai는 이 참조를 가로채, 파일 내용을 가져와 LLM에 직접 전달한다. 그러면 AI가 솔루션을 생성할 때, 로컬 파일을 완전히 파악한 상태로 작업할 수 있다. /init 명령과 agents.md를 통한 커스텀 스타일링: 채팅 창에 /init 슬래시 명령을 입력하면, 현재 활성화된 프로젝트 디렉터리에 agents.md 파일이 생성된다. 이 파일을 편집하면, 여러분만의 코딩 가이드라인(예: 카멜 케이스 규칙, 변수 대문자 사용 강제, 모든 새 클래스에 유닛 테스트를 반드시 동반하도록 하는 규칙 등)을 AI에게 지시할 수 있다. MCP(Model Context Protocol) 지원: Kai는 MCP를 지원한다. MCP는 AI의 "손" 역할을 한다. 그래서 외부 도구를 직접 호출할 수 있다. 예를 들어 AI는 데이터베이스와 연동하거나(InterBase MCP 서버 등), 백그라운드에서 명령줄 작업을 실행할 수 있다(GUID 생성, 프로젝트 컴파일, 스모크 테스트 수행 등). /compact를 통한 컨텍스트 제어: 대화가 길어지면 LLM의 컨텍스트 토큰 한도에 빠르게 도달할 수 있다. 이때 /compact를 입력하면, AI가 대화를 요약한다. 그리고 메모리를 비운다. 그래서, 논의의 흐름을 잃지 않도록 해준다. 일자별 발표와 데모 요약 Kai Summer Wave 웨비나 시리즈는, Delphi와 C++ 개발에서 인공지능이 생산성을 배가시키는 힘이라는 것을 보여주는 다양한 데모를 선보였다. 이 발표들은 라이브 코딩 실습들에서부터 벤치마크들, 커뮤니티 제출 프로젝트들까지 다양했다. 이 웨비나들은 다음과 같은 주요 데모를 선보였다. 프로젝트 유형별로 분류해보았다: 1. 라이브 AI 기반 개발 데모 (Ian Barker) 이 세션들에서 진행자는, RAD Studio IDE 안에서 Kai의 실시간 역량을 시연했다: C++ 현대화와 그래픽 교체("Starman" 데모): 1일차에 Ian은 Kai가 레거시 C++ 프로젝트를 어떻게 현대화할 수 있는지 시연했다. 그는 컴파일되지 않는, 커뮤니티가 만든 Pac-Man 에뮬레이션을 가져왔다. Kai는 오류 로그를 스캔하고, 빠져 있는 SDK 경로를 찾아내고, 잘못된 프레임워크 파일을 제거해, 프로젝트를 성공적으로 컴파일했다. Bandai Namco 상표권 제약을 해결하기 위해, Ian은 이어서 4분을 들여 AI에게 게임 그래픽을 변환하도록 지시했다. 그는 코드를 한 줄도 직접 작성하지 않았다. AI가 그리기 루틴을 찾아내, Pac-Man 캐릭터를 로켓선으로 교체하고, 유령들을 별로 바꾸었다. 심지어 내부 변수 이름까지 바꾸었다(예: "pills"에서 "stars"로). Delphi FTP 서버 콘솔 앱: 3일차에는, 로컬 LLM으로 기본적인 "Hello World"를 생성하는 데 거의 3시간이 걸렸다는 고객의 주장에 반박하기 위해, Ian이 Kai의 사전 릴리스 버전을 사용해 8분짜리 실시간 영상을 녹화했다. 그는 AI에게, 포트 2121을 통해, 마크다운 문서를 제공하는 간단한 FTP 서버용 Delphi 콘솔 프로젝트를 만들어 달라고 요청했다. Kai는 Indy 네트워크 컴포넌트를 성공적으로 통합했다. GUID 삽입 같은, AI가 흔히 놓치는 부분도 자동으로 해결하며 프로젝트를 컴파일했다. Ian은 이어서 스모크 테스트를 실행했고, 명령 프롬프트를 통해 실제 서버에 성공적으로 로그인해 파일을 가져왔다. Busy Bar 바이브 코딩(클라우드 vs. 로컬): 4일차에 Ian은, 물리적인 장비인 "Busy Bar"에 연결되는 Delphi VCL 앱을 프로그래밍했다. "Busy Bar"는 HTTP API를 갖춘, LED 뽀모도로 상태 표시 장치다. 그는 클라우드 기반의 Claude Code와, MacBook Pro M5 Pro에서 Ollama로 실행되는 로컬 Qwen 3.8(27B) 모델을 비교했다. Claude Code는 API 문서를 스캔하고 연결 파일을 생성하는 데 약 10분이 걸렸다. 로컬 Qwen 3.8은 정확히 동일한 프롬프트를 더 빠르게 완료했다. dfm 레이아웃 파일까지 포함해, 훨씬 더 포괄적인 솔루션을 생성했다. 최종 Delphi 앱은 텍스트("Delphi")를 물리적 디스플레이에 직접 표시하는 것을 성공했다. 2. 웨비나 "로컬 모델 케이지 파이트(Local Model Cage Fight)" 데모 (3일차) Ian은 최첨단 로컬 모델들과 클라우드 기반 거대 모델들 사이의, 직접적인 추론 및 속도 벤치마크를 마련했다. MacBook Pro M5 Pro(48GB 통합 RAM)에서 Ollama를 사용해, 고급 Delphi 인터뷰 질문으로 모델들에게 도전 과제를 냈다. "인터페이스 구현을 프로퍼티에 위임하면 무슨 효용을 얻을 수 있는가?"라는 질문이다: Qwen 3.8(27B) (승자): 5.8초 동안 생각했다. 곧바로 함정 질문임을 알아차렸다. Object Pascal에서 어댑터(adapter) 패턴과 애그리게이션(aggregation)이 어떻게 동작하는지 상세히 설명하고, 견고한 코드 예제를 생성했다. Muse Glimmer(30B): 15.6초가 걸렸다. 웹 검색 기능에서 어려움을 겪었지만, 결국 Stack Overflow의 맥락을 가져와 답변했다. Gemma 4: 10.8초가 걸렸지만, 실제 코드 예제를 생성하지 못했다. 개념적인 요약만 제시했다. 3. 증정품(giveaway)을 받은 대표적인 커뮤니티 프로젝트들 한 주 내내 Ian은, 캠페인 증정품 행사의 일환으로, 개발자들이 Kai를 사용해 만들거나 업데이트한 프로젝트를 소개했다: Rock Quest (Stefan Vanderlock(스테판 밴더록) / "Loki"): 7월 최우수 선정작이다. 어린이용 모바일 보물찾기 게임이다. 완성도가 매우 뛰어나다. 개발자는 AI를 사용해 비주얼 그래픽을 생성했고, Kai로 구조적인 코딩을 처리했으며, 자신이 만든 Alcino(FMX(파이어몽키) 머티리얼 디자인) 라이브러리로 게임을 아름답게 스타일링했다. Join the Dots (Allister Christie(알리스터 크리스티) / learny.tv): "7월 인기상(People's Choice Award)" 수상작이다. Kai의 도움을 받아 "바이브 코딩"을 통해 만든 Delphi 점 잇기 게임이다. Allister는 제작 과정을 하나하나 짚어가는, 인기 있는 영상 시리즈를 녹화해 공개했다. DJ 음악 반응형 애니메이션(Audio Node): 오디오와 MIDI 입력을, 실시간 카메라 출력과 3D 시각 효과에 연결하는, 복잡한 소리 반응형 시각화 시스템이다. 개발자는 Kai를 활용해 노드 간 커넥터를 만들었다(개념적으로 LiveBindings와 유사하다). Kai는 그의 개발 기간을 몇 달에서 단 몇 주로 줄여주었다. Glyph View UI 현대화: 원래는 "회색 덩어리" Delphi 7 시대에 작성되었던 기존 애플리케이션이다. 개발자는 지루한 수작업이 필요하다는 이유로, 몇 년 동안 업데이트를 미뤄왔다. 그는 Kai를 사용해, 최신 고해상도(High-DPI) 스케일링을 처리하고, 최신 비주얼 테마를 구현하고, 최신 컨트롤들을 추가하는 코드를 자동으로 생성했다. Mouse Jiggler (Anthony Dambi(앤서니 담비)): 마우스 이동 이벤트를 주입해, 화면이 잠자기 모드로 들어가지 않도록 막는 유틸리티다. 일회성 프로젝트로 빠르게 제작되었다. Anthony는 Kai를 사용해, Windows 시스템 메시지를 가로채는 로직을 즉시 작성했다. 그래서 그것을 직접 수작업으로 코딩할 필요가 없었다. Hamlog (한국 아마추어 무선(햄) 통신 앱): 화려한 사용자 인터페이스를 갖춘, 복잡한 아마추어 무선 도구다. 모든 버튼과 배경 이미지 자산들은 Kai를 통해 디자인되었다. Ian은 또한, Kai를 사용해 폼 안에 내장된 한국어 문자열을 검색하고 이를 영어로 곧바로 번역하는 과정도 시연했다. Gorilla 3D (Eric(에릭)): 3D 월드 표현과 게임 프레임워크다. Eric은 Kai를 사용해 3D 이미지 자산들을 프로그래밍 방식으로 생성했다. 특히 그의 가상 환경 안에 있는, 복잡한 광고판과 관중석을 생성했다. 그 결과 레이아웃 작업에 드는 몇 주치 예산을 절약했다. The GM's Calculator: Idera/엠바카데로 GM(총책임자)가 Kai를 사용해 만든, 간단한 계산기 앱이다. 그는 원래 소프트웨어 개발자가 아니다. 4. Frank Lauer(프랑크 라우어)의 멀티 에이전트 엔터프라이즈 구성 (5일차) 많은 기대를 모은 전문가 인터뷰에서, 개발자 Frank Lauer(프랑크 라우어)는 로컬화된 멀티 에이전트 AI 파이프라인으로 자신의 소프트웨어 사업 전체를 어떻게 운영하고 있는지 시연했다: 토크나이저 데이터베이스와 소스 포맷터: Frank는, 전체 Delphi 프로젝트(DPR과 유닛)를 파싱해 그 구조를 데이터베이스에 캐싱하는, 자체 제작 토크나이저/포맷터를 소개했다. 수천 줄의 원본 코드를 LLM에 업로드하는 대신, 그의 AI 에이전트는 정확한 클래스나 메서드의 위치를 RAM 안에서 빠르게 찾아낼 수 있다. 1,200만 줄 유니코드 마이그레이션: Frank는, 거대한 레거시 ERP(Delphi 2007) 코드 기반을 Delphi 13.1(유니코드 및 FireMonkey(파이어몽키))로 체계적으로 마이그레이션하는 과정을 시연했다. AI는 컴파일러 검사를 실행하고, 경고와 오류를 데이터베이스에 기록하고, 최소한의 사람 개입만으로 코드를 체계적으로 수정한다. 즉석 TLS 릴레이와 WebSocket: Frank에게는 암호화되지 않은 TCP/IP 릴레이 서버가 있었다. 그는 AI에게 TLS 로그인 암호화를 구현하도록 요청했다. AI는 몇 분 만에 코드와 유닛 테스트를 성공적으로 생성했다. 프롬프트 두 번을 제공한 후에는, 프로젝트를 WebSocket을 지원하는 ISAPI Web Broker DLL로 성공적으로 변환했다. 그래프 에디터와 확대/축소 가능한 리본: Frank는 AI를 활용해, 복잡한 노드 기반 그래프 에디터와, 도킹 및 분리 가능한 MDI 창을 지원하는, 완전히 확대/축소 가능한 FMX 리본 컨트롤을 빠르게 생성했다. 커스텀 프록시 MCP 서버: LLM의 컨텍스트 윈도우가 25개가 넘는 데이터베이스와 외부 도구에 대한 도구 정의를 담느라 과부하되는 것을 피하기 위해, Frank는 64비트 DLL로 실행되는 커스텀 프록시를 만들었다. 그의 AI는 그저 dispatch와 explain 도구만 사용하면 된다. 그래서, 컨텍스트 사용량을 2% 미만으로 줄였다. 5. Eli(엘리)의 Pasclaw 도구 심층 분석 (5일차) FMX Express의 Eli(엘리)는, Delphi용으로 설계된 오픈소스 에이전틱 코딩 어시스턴트, Pasclaw를 하나하나 짚어가며 설명했다: WASM 브라우저 통합: Eli는 Pasclaw가 WebAssembly(WASM)를 사용해 웹 브라우저 안에서 완전히 동작하는 모습을 보여주었다. 그래 사용자는 로컬화된 AI 코딩 어시스턴트를, 브라우저 창 안에서 완전히 호스팅할 수 있다. 메시(Mesh) LLM 릴레이: Eli는, 오래된 휴대폰 3대(각각 RAM 10GB)를 로컬 네트워크 큐에 연결하는 과정을 시연했다. Pasclaw가 LLM 작업을 요청하면, 그 작업을 큐로 보냈다. 그리고 휴대폰들이 분산 메시(distributed mesh) 방식으로 추론 작업을 처리했다. 레트로 스타일 데스크탑(FMX): Eli는, 80년대와 90년대를 연상시키는, 매우 커스터마이징 가능한 레트로풍 스타일(Synthwave, Vaporwave, OS2 Warp 등)을 갖춘 FireMonkey GUI 데스크탑을 선보였다. 즉석 HTML 커스텀 앱 빌더: Gemini의 웹 검색 API를 사용해, Eli는 "VCL 대 FMX 비교 앱"을 요청했다. Pasclaw는 작업을 작성하고, 체크리스트 초안을 만들고, 웹을 검색하고, 결과를 종합한 다음, 데스크탑 UI에서 실시간으로 네이티브 실행되는 로컬화된 HTML 앱을 컴파일했다. 유튜브 영상 시리즈 링크 다음은 Kai Summer Wave의 유튜브 다시보기 영상 링크들이다. Kai Summer Wave | Event 킥오프 웨비나 (Ian Barker) – https://youtu.be/G3bg3gGXVHk?t=63 Kai Summer Wave 증정품 첫 번째 수상자들을 선정했다! – https://youtu.be/RParV5Ithlc?t=3 Kai Summer Wave 웨비나 시리즈 | Day 1 – https://youtu.be/n8gXeAeO6hY?t=65 Kai Summer Wave 웨비나 시리즈 | Day 2 – https://youtu.be/RZigQTF2aVI?t=67 Kai Summer Wave 웨비나 시리즈 | Day 3 – https://youtu.be/9rpuDA1pUc8?t=64 Kai Summer Wave 웨비나 시리즈 | Day 4 – https://youtu.be/1ekZ0h07zY8?t=62 Kai Summer Wave 웨비나 시리즈 | Day 5 – https://youtu.be/eJXY9QPazcc?t=63
  9. 원문 정보 (최종 번역일: 2026년 8월 23일): 제목: Migrate to FireDAC in a Day with reFind and Kai 작성자: Antonio Zapater - 2026년 8월 링크 https://blogs.embarcadero.com/migrate-to-firedac-in-a-day-with-refind-and-kai/ 만약 여러분이 BDE, ADO, IBX, dbExpress 중 하나를 통해 여전히 데이터베이스와 통신하는 Delphi(델파이) 애플리케이션을 유지보수하고 있다면, FireDAC(파이어댁)로 마이그레이션하는 것을 한 번쯤은(아마 여러 번) 고민해 보았을 것이다. 이 전환을 가로막는 것은 대개 FireDAC 자체에 대한 의구심이 아니다. 마이그레이션 작업에 대한 두려움 때문이다. 몇 주에 걸쳐, 기계적인 이름 변경 작업, 깨진 DFM과 수백 개 유닛에 걸친 컴파일 오류 수정 작업이 될까 우려한다. RAD Studio(라드 스튜디오)에는 이미 reFind(리파인드)라는 대량 처리 마이그레이션 엔진이 포함되어 있다. 여기에는 BDE, ADO, dbExpress, IBX용 규칙 템플릿들도 들어 있다(게다가, AnyDAC과 API 이름 변경 키트도 포함). 또한, IDE 안에 내장된 에이전틱 AI 어시스턴트인 Kai(카이)를 사용하면, 대규모 코드 기반을 분석하고, 그 템플릿을 여러분의 프로젝트에 맞게 가볍게 커스터마이징한 다음, reFind를 실행하고, 애플리케이션이 FireDAC를 사용해 빌드될 때까지 Kai를 수정 반복 모드로 구동할 수 있다. 일반적인 업무용 애플리케이션이라면, 이는 흔히 하루 정도의 작업으로 끝난다. 수작업이었다면 몇 주가 걸렸을 일이다. 이 글은 이 작업흐름을 위한 실전 플레이북이다. 목차 많은 개발자가 열어보지 않는 도구 핵심 아이디어: 대량 작업은 reFind, 판단은 Kai 하루짜리 플레이북 1. 정찰(Scout) (Kai와 함께 15~30분) 2. 공식 템플릿에서부터 시작하기 3. 가볍게 커스터마이징하기 (AI가 빛을 발하는 지점) 4. reFind 실행하기 5. Kai의 컴파일-수정 반복 작업으로 마무리하기 "하루"가 현실적으로 의미하는 것 자신이 없다면, 먼저 샘플로 연습해 보자 프롬프트와 스킬 마무리 참고: reFind는 데이터베이스 컴포넌트 전용이 아니다 많은 개발자가 열어보지 않는 도구 reFind.exe는 RAD Studio의 bin 폴더 안에 있다. 이것은 명령줄 기반 검색-치환 유틸리티다. Perl 호환 정규 표현식과 Delphi 마이그레이션 지시문을 지원한다. #unuse: uses에서 유닛 제거 #remove: PAS/DFM에서 프로퍼티 제거 #migrate: 타입 이름 변경, 멤버 이름 변경, 필요하면 유닛 추가 엠바카데로(Embarcadero)는 이미 만들어진 규칙 파일도 "FireDAC" Samples 트리 아래에 함께 제공한다(아직 설치하지 않았다면, RAD Studio 설치 시 Samples도 함께 설치해야 한다): C:\Users\Public\Documents\Embarcadero\Studio\<버전>\Samples\Object Pascal\Database\FireDAC\Tool\reFind <버전> 부분은 C:\Users\Public\Documents\Embarcadero\Studio\ 아래에 있는 "Studio 버전 폴더 이름"으로 바꾸면 된다(주요 릴리스마다 값이 달라진다. 예를 들어 13.1 플로렌스는 37.0이다). 만약 이 트리가 보이지 않는다면, Samples를 설치하지 않은 것이다. 미리 정의되어 있는 마이그레이션 키트는 다음과 같다: FireDAC_Migrate_BDE.txt: BDE ➜ FireDAC FireDAC_Migrate_ADO.txt: ADO ➜ FireDAC FireDAC_Migrate_DBX.txt: dbExpress ➜ FireDAC FireDAC_Migrate_IBX.txt: InterBase Express(IBX) ➜ FireDAC 그 외에 AnyDAC ➜ FireDAC 키트와 FireDAC API 이름 변경 키트(AD2FDMigration, XE72XE8Migration)도 있다 이 규칙 파일들을 열어봤다가 곧바로 닫아버린 적이 있다면, 당신만의 그런 게 아니다. 이것의 문장 규칙 자체는 매우 강력하다. 하지만, 조금 난해하다. 잘못 쓰기도 쉽다. 그래서 reFind를 발견한 대부분의 팀은 한 가지 패턴을 따른다. 프로젝트 사본에서 기본 템플릿을 실행한다. 대량 이름 변경 결과에 반가워 한다. 그러다가, 템플릿이 표현할 수 없는 부분에 봉착한다. 그리고 그만둔다. 연결 정의, 지원되지 않는 API, 빠져 있는 FireDAC 연관 코드, TQuery나 TADOConnection을 감싼 자체 제작 래퍼 같은 것들을 만나면, 그렇게 된다. 바로 이 지점에서 Kai가 유용하다. Kai는 프로젝트 고유의 코드를 검사하고, 마이그레이션 규칙에 추가할 내용을 제안하고, reFind가 자동으로 처리하지 못하는 부분을 함께 처리해 준다. 핵심 아이디어: 대량 작업은 reFind, 판단은 Kai 여기서 중요한 구분이 있다. reFind는 기계적인 변환을 담당한다. reFind는 여러분의 애플리케이션을 어떻게 설계해야 하는지 결정해서는 안 된다. Kai는 이런 부분 즉, 기존 코드에 대한 이해가 필요한 부분에서 도움이 된다. 패턴들을 식별하고, 마이그레이션 규칙에 작은 변경들을 제안하고, 대량 변환 이후 남은 부분을 처리하는 일들이다. 아무것도 하기 전에, 미리 수천 개 유닛짜리 애플리케이션 전체를 Kai에게 입력할 필요는 없다. 데이터 모듈, 연결 설정, 대표적인 폼 몇 개로 시작하자. 그 정도면 전체 작업을 AI가 주도하는 전면 재작성으로 만들지 않으면서도, 주요 마이그레이션 패턴을 파악하기에 충분한 맥락을 전달할 수 있다. 하루짜리 플레이북 무엇이든 손대기 전에 가장 먼저 할 일: 브랜치에서 작업하자. 아직 버전 관리를 사용하고 있지 않다면, 지금 시작하자. MyApp_backup이라는 이름의 zip 파일은, 그 이름이 아무리 믿음직스럽게 들리더라도 버전 관리라고 쳐주지 않는다. 버전 관리는 단일한 진실의 원천을 제공한다. 지금까지 만든 모든 변경 사항을 담은 완전한 타임머신도 제공한다. 또한 프로덕션을 망가뜨리거나 zip 파일을 주고받을 필요 없이, 팀과 진행 상황을 쉽게 공유하는 방법도 제공한다. BDE를 사용하는 프로젝트에 대한 첫 번째 Kai 분석 1. 정찰(Scout) (Kai와 함께 15~30분) Kai에게 맨 처음 요청할 것은 데이터 모듈들과 데이터베이스를 여는 유닛부터 살펴보라는 것이다. 그런 레거시 컴포넌트 타입들이 몇 번 등장하는지 세어보라고 한다. 그리고 애플리케이션이 연결을 어떻게 맺는 지 그 방식을 파악하라고 한다. BDE 별칭, dbxconnections.ini, ADO 연결 문자열, DFM에 하드코딩된 파라미터 등 다양하다. TAppQuery나 TMyConnection처럼 눈에 띄는 커스텀 자식 클래스들을 눈에 띄도록 표시해 달라고 요청하는 것도 좋다. 우리에게 필요한 것은 짧은 마이그레이션 요약이다. 어떤 데이터베이스 라이브러리를 사용하는지, 대략 얼마나 많은 코드가 영향을 받는지, 위험한 부분은 어디인지 등이다. 2. 공식 템플릿에서부터 시작하기 설치된 Samples 트리에서 해당하는 규칙 파일을 선택하자. 예를 들면: C:\Users\Public\Documents\Embarcadero\Studio\<버전>\Samples\Object Pascal\Database\FireDAC\Tool\reFind\BDE2FDMigration\FireDAC_Migrate_BDE.txt (또는 이에 대응하는 규칙 파일 들 즉, ADO / dbExpress / IBX 파일). <버전> 부분의 요령은 위와 같다. 폴더가 보이지 않는다면 Samples를 설치하지 않은 것임을 기억하자. 이미 이 파일들에는 흔한 BDE→FireDAC 변경 사항들에 대한 매핑 규칙들이 담겨 있다. TQuery ➜ TFDQuery, DatabaseName ➜ ConnectionName, 트랜잭션 열거형, #remove SessionName 등등이다. 또한 직접 지원되지 않는 항목들도 주석으로 문서화되어 있다. 그 주석들을 활용해 여러분의 위험 요소 체크리스트로 활용하자. 3. 가볍게 커스터마이징하기 (AI가 빛을 발하는 지점) 그 템플릿 그리고 여러분이 분석한 결과를 Kai에게 입력하자. Kai에게 요청해 reFind 규칙을 여러분의 프로젝트에 맞게 조정해 달라고 하자. 필요하다면, 여러분의 자체 래퍼를 해당 FireDAC 타입들에 매핑하고, 프로젝트 고유의 프로퍼티 이름 변경 몇 개를 추가하고, 추가로 #unuse나 #remove 줄을 넣어서 이미 사라진 것을 알고 있는 유닛에 대해 반영하도록 할 수도 있다. Kai가 제안하는 줄들을 검토하자. 영리한 정규식보다는 작고 지루한 규칙을 선호하자. 그런 다음 공식 파일 옆에 다른 이름으로 저장하자. 예를 들어, FireDAC_Migrate_BDE_MyApp.txt 같은 이름을 지정할 수 있다. 일단 여러분이 분석 결과에 만족한다면, 그리고 하고 Kai가 잠재적인 문제들을 모두 찾아냈다면, 그 계획을 하드 드라이브에 저장해 달라고 요청하자. 그러면 여러분이 향후에 프롬프트 안에서 그 계획 파일을 활용하는데 도움이 된다. 뭔가 문제가 생겼을 때 대응하기 좋다. 또한, 토큰과 시간도 함께 절약할 수 있다. 4. reFind 실행하기 실행할 때는 새로 만든 브랜치에서 해야 한다. Samples 폴더 안의 migrate.bat 파일들은 다음과 같은 패턴을 따른다: reFind.exe MyApp_FireDAC\*.pas MyApp_FireDAC\*.dfm /S /X:FireDAC_Migrate_BDE_MyApp.txt Kai는 IDE의 에이전트 작업흐름 안에서 이 명령을 구성하고 실행해 줄 수 있다. 하지만 대규모 트리를 대상으로 실행하기 전에, 경로와 규칙 파일을 직접 확인해 볼 것을 권한다. 5. Kai의 컴파일-수정 반복 작업으로 마무리하기 reFind를 실행한 뒤에는, 남은 작업이 있을 수 있다. 이는 정상이다. 예전에는 "몇 달"처럼 보였던 부분이 바로 이것이다. 대표적인 잔여 작업은 다음과 같다: FireDAC 연결 정의( FDConnectionDefs.ini / ConnectionDefName 사용): BDE 별칭, dbExpress ini 파일, 순수 ADO 문자열을 교체한다. 드라이버 링크들과 TFDGUIxWaitCursor 규칙 파일에 "지원되지 않음"으로 표시된 API들 (TSQLMonitor, 몇몇 ADO 레코드셋 패턴들, load-params 헬퍼들,...) 여전히 예전 컴포넌트 이름을 딴 이벤트 핸들러들 FireDAC 방식으로 다시 작성해야 하는 SQL 또는 트랜잭션 패턴들 마이그레이션된 프로젝트를 RAD Studio 안에서 연다. Kai에게 빌드 오류를 가리켜 준 다음, 반복시키자. 수정 ➜ 컴파일 ➜ 메시지 읽기 ➜ 다시 수정. IDE 밖으로 나가지 말자. 바로 이 반복 루프가 일반 채팅창 이용과 차이점이다. 채팅에서 얻은 마이그레이션 조언을 복사해 붙여넣는 방식과 실제로 프로젝트를 완성시킬 수 있는 에이전트는 분명히 차이가 난다. BDE에서 FireDAC로 전체 마이그레이션을 한 이후 잔여 작업을 분석하기 "하루"가 현실적으로 의미하는 것 목표는 하루 안에 마이그레이션을 완전히 끝내는 것을 보장하는 게 아니다. 목표는, "어디에나 레거시 데이터 접근이 있는" 상태에서 컴파일되는 FireDAC 기반 기준선까지 하루 만에 도달하는 것이다. 어느 정도 평범한 애플리케이션이라면 하루면 된다. 아주 큰 프로젝트(수천 개 유닛, 깊게 커스터마이징된 데이터 계층, 무거운 ADO 레코드셋 사용)라면, 첫날 하루 이후에도 짧은 안정화 스프린트가 필요할 수 있다. 그런 경우에도 우리가 얻게 되는 이득은 똑같다. 기계적인 대량 작업과 첫 번째 컴파일 기반 기준선 도달을 얻게 된다. 그러면, 더 이상 몇 주씩 걸리는 수렁이 되지 않는다. 자신이 없다면, 먼저 샘플로 연습해 보자 엠바카데로의 FireDAC 도구 데모(앞서 언급한 설치된 Samples 경로 아래)가 가장 안전한 리허설이다: BDE: MastApp (reFind\BDE2FDMigration\Demo 아래에 있다) dbExpress: MeetingOrganizer (reFind\DBX2FDMigration\Demo 아래에 있다) IBX: IB MastApp (reFind\IBX2FDMigration\Demo 아래에 있다) 로컬에 있는 migrate.bat을 실행한다. 생성된 FireDAC 사본을 연다. 그런 다음, Kai로 마무리하는 과정을 연습한다. 연결 정의, 웨이트 커서(wait cursor), 더 이상 쓰지 않는 ini 로딩 코드에 주석 처리하기, 깨끗하게 빌드될 때까지 반복하기다. 일단 여러분이 이 작업흐름을 이해하고 나면, 이제 여러분 자신의 애플리케이션을 진행할 준비가 된 것이다. 프롬프트와 스킬 작업흐름은 그대로 넘겨주는 편이 설명하는 것보다 더 쉽다. 그래서 우리는 이 작업흐름을 하나의 작은 팩으로 제공하고 있다. 여러분은 이것을 기반으로 사용하면 된다. 그러면, 이 절차를 더 잘 이해할 수 있다. 이 저장소에 접근하기 이 저장소에는 에이전트 스킬 2개와 프롬프트 7개가 들어 있다: firedac-migrate: 처음부터 끝까지의 작업흐름이다. 또한, BDE·ADO·dbExpress·IBX별 치트시트(무엇을 찾아야 하는지, 어떤 공식 템플릿에서 시작해야 하는지, reFind가 고치지 못하는 것은 무엇인지)가 추가로 제공된다. refind-rulesmith: 프로젝트에 필요할 수 있는 추가 규칙 몇 가지 초안을 어떻게 작성하는지, 언제 멈춰서 그 대신 코드를 직접 고쳐야 하는지 프롬프트 00–06: 같은 플레이북을 한 단계씩 진행하는 프롬프트들. 짧은 설정 점검과 잔여 작업 점검도 포함되어 있다. 단계 하나만 실행하거나 스킬을 지원하지 않는 에이전트와 작업할 때 사용한다 스킬 하나는 폴더 하나로 되어 있다. 그 폴더마다 안에는 SKILL.md가 들어 있다. 이 작업흐름 팩의 루트로부터: .\install-skills.ps1 이 스크립트는 두 스킬을 %USERPROFILE%\.agents\skills로 복사한다. 이곳은 대체로 스킬들이 위치하는 곳이다(에이전트에 따라 다를 수 있음). 그런 다음, 새 채팅을 시작한다. 그러면 해당 스킬이 인식된다. 다른 에이전트용 경로와, 스킬을 지원하지 않는 경우에 대한 대안은 저장소 README에 있다. 이 프롬프트들은 범용으로 만들어졌다. 의도적으로 그렇게 했다. 이렇게 사용하면 된다. 여러분 자신의 기반 클래스들을 검색 목록에 추가한다. 구조 단계에서는 여러분 자신의 연결 헬퍼를 추가해야 한다. 스킬은 공식 reFind 템플릿을 대체하지 않는다. 스킬은 에이전트에게 그 템플릿을 사용하는 방법을 가르친다. 그리고, 어떤 API가 FireDAC 대응 항목이 없다고 템플릿이 알려줄 때 멈추도록 하는 방법을 가르친다. 마무리 BDE, ADO, dbExpress, IBX 애플리케이션을 유지보수하고 있다면, FireDAC 마이그레이션을 전면 재작성이라고 취급할 필요가 전혀 없다. 이미 제공된 reFind 템플릿에서 시작하고, Kai를 사용해 프로젝트 고유의 빈틈을 찾아내고, 브랜치에서 변환을 실행한 다음, Kai가 컴파일러 오류를 분석하고 처리하도록 하면 된다. 어느 정도 평범한 업무용 애플리케이션이라면, 마이그레이션을 몇 주짜리 기계적인 작업이라고 여기지 않아도 된다. 기반 기준선에 도달하는데 까지 하루 만에 해낼 수 있다. 참고: reFind는 데이터베이스 컴포넌트 전용이 아니다 TQuery를 TFDQuery로 마이그레이션하는 동일한 엔진이, 기타 대량 현대화 작업들도 이끌 수 있다: RAD Studio 버전 간 API 이름 변경, 더 이상 쓰지 않는 DFM 프로퍼티 제거, 사내 명명 규칙 강제 적용, 써드-파티(Third-Party) 패턴 교체 등을 신중하게 검토된 규칙 파일을 통해 할 수 있다. 만약 여러분이 현대화와 리팩토링 작업흐름, 코드 마이그레이션 등에 대한 블로그 글을 더 보고 싶다면, 댓글로 원하는 내용을 알려주기 바란다. 그 아이디어들을 다뤄보겠다.
  10. 원문 정보 (최종 번역일: 2026년 8월 23일): 제목: Kaiとバイブコーディングで1980’s風アーケードゲームを作ってみた 작성자: Embarcadero Japan Support - 2026년 8월 링크 https://blogs.embarcadero.com/ja/vibe-coding-with-kai-ja/ 2026년도 어느덧 본격적인 여름을 맞이했다. 올해 RAD Studio(라드 스튜디오) 관련 가장 큰 화제라면, AI 에이전트 Kai(카이)의 출시를 꼽을 수 있다. Kai는 큰 주목을 받으며, RAD Studio를 활용한 개발에 새로운 작업흐름을 가져다주고 있다. 이 블로그에서도 그동안 Kai 관련 뉴스와 활용 사례를 소개해 왔다. 이번에는 조금 방향을 바꿔, 스마트폰용 레트로 게임 제작에 도전해 본다. 최근에는 "바이브 코딩(Vibe Coding)"이라는 말을 많이 듣게 된다. 이는 만들고 싶은 것이나 수행하고 싶은 작업을 자연어(예를 들어 일상 언어)로 AI에게 전달하고, 생성되는 코드를 활용하며 개발을 진행하는 방식이다. 인터넷 밈에는 ぜんぜんわからない。俺たちは雰囲気だけで〇〇をやっている(아무것도 모르고 그냥 분위기만 보고 프로그래밍하고 있다)」라는 표현이 있다. 원리를 충분히 이해하지 못한 채, 막연한 감각으로 일을 진행하는 모습을 나타낸 표현이다. "바이브 코딩"이라는 말에도 그와 비슷하게 들릴 수 있다. 하지만, AI를 활용한 프로그래밍 지원이 이 정도까지 발전한 현재 우리는 이것을 새로운 개발 스타일의 하나로 받아들일 수도 있을 것이다. 그래서 이번에는, Kai를 사용한 바이브 코딩을 직접 체험해 보고, 그 소감을 나누고자 한다. 나는 프로그래밍을 이해하고 있다. 하지만, 게임 개발에 관한 전문 지식은 거의 없다. 과연 이 상태에서 게임을 어디까지 완성할 수 있을까? 여름방학 기획으로 가볍게 읽어 준다면 좋겠다. 목차 당신도 오늘부터 게임 크리에이터? Kai로 체험하는 게임 개발의 세계 STEP1: 프로젝트 생성 STEP2: 기본 기능 구현 STEP3: "고집"을 구현하다 레트로한 종스크롤 슈팅 게임 완성! 마무리: 바이브 코딩을 마치고 참고 당신도 오늘부터 게임 크리에이터? 본론에 들어가기 전에, 최근 게임 개발을 둘러싼 상황을 조금 정리해 보자. 현재 PC, 가정용 게임기, 스마트폰용 게임 분야에서는, 대형 게임 회사가 수많은 개발자를 모아, 긴 개발 기간과 대규모 예산을 들여 제작하는 게임 타이틀들이 많다. 개발 예산이 100억 엔을 넘는 타이틀도 드물지 않다. 한편으로는, 개인 개발자나 소수 팀에서 탄생한 게임이 전 세계 플레이어의 지지를 받아 큰 성공을 거두는 사례도 있다. 『Minecraft』가 그 대표적인 예라고 할 수 있다. 스웨덴 출신 프로그래머 Markus Persson(마르쿠스 페르손)이 개발을 시작한 이 작품은, 2009년에 첫 번째 버전이 공개되었다. 그 후로도 발전을 거듭해, 지금도 전 세계에서 사랑받는 게임이 되었다. 2026년에는 『멧챠 카멜레온』이 출시 1개월도 채 되지 않아 1,500만 장의 판매량을 돌파해 화제가 되었다. 그 밖에 『Papers, Please』처럼, 입국 심사관이라는 독특한 소재를 게임에 도입해, 독자적인 게임성과 세계관으로 높은 평가를 받은 작품도 있다. 이 작품들의 공통점은, 반드시 대규모 개발 환경에서 탄생한 것은 아니라는 점이다. 개인이나 소수 개발자가 가진 아이디어와 고집이, 많은 플레이어를 사로잡았다는 점이다. "나도 게임을 만들어보고 싶다" 그렇게 생각해 본 사람은 적지 않을 것이다. 하지만, 머릿속에 있는 아이디어를 실제 게임으로 구현하는 일은 결코 쉽지 않다. 게임 제작에는 프로그래밍뿐 아니라, 캐릭터나 배경 등의 그래픽 제작, 음악과 효과음 제작 등, 다양한 기술이 필요하다. 이것들을 혼자서 모두 익히려면 많은 시간과 노력이 필요하다. 그래서 매력적인 아이디어가 있어도, "만들고 싶지만 그럴 수 없다"는 상황이 적지 않았다. 하지만 지금은 그 상황을 바꾸고 있는 기술이 있다. 바로 AI를 활용한 개발 지원이다. Kai로 체험하는 게임 개발의 세계 이번에는 본격적인 게임 개발을 목표로 하지 않는다. "여름방학 공작" 같은 감각으로, 게임 제작을 통해 바이브 코딩을 체험해 나간다. 만드는 것은 옛날 느낌을 가진 세로 스크롤 슈팅 게임이다. 이 게임의 세계는 이른바 "8비트풍" 도트 그래픽으로 표현한다. 이 형식이라면 그래픽 등의 아트워크도 비교적 간단하게 만들 수 있을 것 같다. 기본적인 사양은 다음과 같다: 8비트풍 레트로 아케이드 게임 세로 스크롤 슈팅 스마트폰에서 동작 프로그래밍에는 Kai를 전적으로 사용해, 바이브 코딩으로 제작했다. 사용한 AI 모델은 OpenAI(오픈AI)의 Codex(코덱스)였다. Plus 플랜을 이용했다. STEP1: 프로젝트 생성 RAD Studio를 실행하고, Kai의 채팅 기능을 사용해 프롬프트를 입력했다. 게임 사양을 한 번에 전달할 수도 있었지만, 이번에는 조금씩 지시하기로 했다. 먼저, RAD Studio를 실행하고, 멀티-디바이스 애플리케이션 프로젝트를 새로 생성한 다음, Kai의 채팅 창을 열고, 다음과 같이 지시했다. 세로 스크롤 슈팅 게임을 만들고 싶다 도트 그래픽 캐릭터를 사용하고, 옛날 아케이드 게임 느낌으로 iOS, Android에서 동작하는 것을 전제로 한다 프레임워크는 FMX(파이어몽키)를 사용한다 우선 아래의 기본적인 부분만 작성한다 - 1980년대 아케이드 게임풍의 타이틀 화면 - 우주를 연상시키는 배경 - 플레이어가 조작하는 전투기 스타일의 우주선 - 플레이어의 기체는 스와이프 조작으로 좌우 이동 가능 - X축 방향 이동만 가능하게 하고, Y축 방향 이동은 불필요 프로젝트와 파일들을 저장하고, 빌드 오류가 발생하지 않는 것까지 확인한 후 종료할 것 그 결과는 다음과 같다. 배경의 별이 빛나는 하늘이 1980년대 아케이드 게임 느낌을 자아낸다. 플레이어가 스마트폰 터치패널 조작으로 자신의 전투기를 움직이고 있다. STEP2: 기본 기능 구현 그런 다음, 게임의 기본적인 부분을 추가로 만들어 나갔다. Kai에게는 다음과 같이 적어서 전달했다. 적 우주선이 등장해 플레이어를 공격한다 플레이어가 FIRE 버튼을 탭하면 한 발씩만 탄을 발사할 수 있다 전체 분위기는 1980년대풍 아케이드 게임 스타일을 유지한다 플레이어에게는 총 3대의 기회가 제공된다. 3대 모두 파괴되면 게임 오버 플레이어의 전투기가 총에 맞으면, 리셋된다 그리고 'X LEFT'로 남은 대수를 표시한 뒤 게임이 다시 시작된다. 실행 결과는 다음과 같다. Android(안드로이드) 스마트폰으로 직접 플레이해 보았다. "탄을 발사해 적 우주선을 파괴한다"는 1980년대의 정석적인 게임 테마가 재현되어 있었다. 다만 "분위기만 80년대"인 느낌이라, 조금 아쉬움도 느껴졌다. STEP3: "디테일"을 구현한다 STEP3에서는 내 머릿속에 있는 "게임의 세계"를 Kai에게 전달해 나갔다. 물론 그것은 일상언어로 전달했다. 디테일 1: 1980년대풍의 도트 느낌 지금 버전은 문자를 텍스트 그대로 출력하고 있다. 즉 "글자 폰트가 지나치게 매끄럽다"는 문제가 있다. 문자 출력을 도트 문자로 바꾸고 싶다. 디테일 2: 1980년대풍의 효과음 게임 곳곳에 "전자음"이라는 표현이 어울리는, 저렴하지만 레트로한 느낌이 전해지는 효과음과 BGM을 배치한다. 이 효과음 제작도 Kai에게 의뢰해 보자. ※ 참고: 효과음 같은 미디어 파일도 Kai를 사용해 만들 수 있었지만, 이번에는 별도로 제작한 것을 사용했다. 디테일 3: 게임성 향상 게임 시나리오로는, 스크롤형 슈팅 게임의 정석이라 할 수 있는 대장 캐릭터를 등장시켜 보자. 1983년에 발표된 명작 게임 『제비우스』에 등장한 움직이는 요새 『안도르 제네시스』처럼, 화면을 가득 채울 만큼 거대한 것을 등장시켜 보고 싶다. 대장 캐릭터는 원래 게임의 클라이맥스에 등장시키는 것이지만, 이번에는 개발 중이므로 적 캐릭터 5대를 쓰러뜨린 시점에 대장 캐릭터를 등장시킨다. 그 밖에 디버그 중 발견한 점을 Kai에게 전달하면서, 게임을 완성해 나갔다. 레트로한 종스크롤 슈팅 게임 완성! 완성 버전을 보자. 문자를 도트화했으므로, 1980년대의 느낌이 한층 짙어졌다. 게다가 거대한 대장 캐릭터도 등장한다. 『안도르 제네시스』와 비교하면 완성도가 매우 아쉽다. 하지만 1980년대 게임을 즐길 때는, 때로는 시각보다 플레이어의 상상력이 필요하다는 의미에서, 이것은 이것대로 "그 시절 느낌"일지도 모른다. 마지막에는 대장이 크게 폭발하며 임무 완수(Mission Complete)! BGM은 음악 생성 AI인 SUNO(스노)로 만들어 보았다. 아래 미디어 플레이어에서 들어 보자. 브라우저가 오디오 요소를 지원하지 않습니다. 아직 개선할 여지는 있지만, 일단 이 버전을 완성본으로 끝내기로 했다. 마무리: 바이브 코딩을 마치고 바이브 코딩을 마치고 한마디로 소감은 한 마디로, 코드가 블랙박스화되는 것에 대한 우려다. 내가 직접 제작에 참여한 코드임에도 불구하고, 그 내용을 충분히 이해하지 못해 품질을 보장할 수 없다. 품질을 확인하려고 소스 코드를 열어 보아도, 내용을 이해하기는 쉽지 않다. 앞서 인용한 말을 빌리자면, "전혀 모르겠다. 우리는 그냥 분위기만으로 동작 테스트를 하고 있다"는 상태에 빠져 있다. 이것이 얼마나 위험한 일인지는 새삼 설명할 필요도 없을 것이다. 한편으로 바이브 코딩에는, 그동안 기술이나 경험 부족을 이유로 포기했던 창작을 실제 형태로 바꾸는 힘이 있다. AI의 힘을 빌려서라도, 일단 만들어 본다. 이것이 중요한 것일지도 모른다. 프로젝트의 유지보수성과 코드의 안전성은 물론 중요하다. 하지만 어려운 이야기는 잠시 접어두고, 내가 머릿속에 그린 것을 실제로 완성했을 때의 성취감. 그 경험이 다음 개선과 배움으로 나아가는 계기가 될지도 모른다. 0과 1의 차이는 매우 크다. 참고 Kai for RAD Studio RAD Studio 향 AI 에이전트 『Kai』(일본어) Minecraft 멧챠 카멜레온 Papers, Please SUNO
  11. 원문 정보 (최종 번역일: 2026년 8월 23일): 제목: Delphi開発者のためのSBOM作成ガイド 작성자: Embarcadero Japan Support - 2026년 8월 링크 https://blogs.embarcadero.com/ja/delphi-developers-guide-to-the-sbom/ 목차 이 기사에 대하여 SBOM이란 Delphi에서의 SBOM 준비 빌드와 설치 사용법 그 밖에, Delphi와 SBOM 관련 링크 이 기사에 대하여 최근 소프트웨어의 안전성을 확보하기 위한 노력의 하나로, SBOM(Software Bill of Materials, 소프트웨어 자재 명세서)이 주목받고 있다. RAD Studio(라드 스튜디오)로 만든 애플리케이션도 예외가 아니다. 앞으로는 품질 관리 기록의 하나로 SBOM 작성과 제출을 요구받을 가능성도 있다. 이런 배경을 바탕으로, 이 글에서는 먼저 SBOM이란 무엇인지 그 개요를 정리한다. 그런 다음 Delphi(델파이) 프로젝트를 대상으로, 써드-파티(Third-Party) 도구인 「DX.Comply」를 사용해 SBOM을 작성하는 예시 하나를 소개한다. SBOM이란 SBOM이란 소프트웨어를 구성하는 요소를 목록으로 정리한 것이다. 취약점 관리, 라이선스 관리, 공급망 가시화 등에 도움이 된다. 요즘은 대기업 시스템이 사이버 위협의 피해를 입어 업무가 중단되는 등, 사회적으로도 큰 파장을 일으키는 사건이 많이 발생하고 있다. 그래서 사이버 위협에 대응하는 수단을 구축하는 것이 전 세계적인 흐름이 되었다. 우리 지원 창구에는 CVE-2021-44228(Log4j의 임의 코드 실행 취약점)에 대한 고객 문의가 들어온 적이 있다. 문의 내용은 현재 사용 중인 제품이 이번 취약점의 대상에 해당하는지 확인하고 싶다는 것이었다. 지원팀은 해당 버전을 조사해, 대상이 아니라는 답변을 전달했다. 이번에 다루는 SBOM은 서비스나 애플리케이션에서 사용하는 라이브러리, 모듈 등을 투명하게 드러낸다. 그래서, 보안 위협을 더 쉽게 관리할 수 있게 해주는 체계다. 서비스나 제품에 SBOM 정보가 미리 마련되어 있으면, 사용 중인 라이브러리와 그 버전까지 즉시 확인할 수 있다. 그러면 조사에 드는 시간도 절약할 수 있다. 세계로 눈을 돌려보면, 미국에서는 대통령령으로 SBOM 사용이 권장되고 있다. EU의 CRA(사이버 회복탄력성법)에서는, 디지털 요소를 포함하는 소프트웨어·하드웨어 제품을 구매하는 소비자와 기업을 보호하기 위해, 공급업체가 SBOM을 보유하도록 의무화하고 있다. https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act 또한, 일본 국내에서도 경제산업성과 IPA(정보처리추진기구)가 SBOM 도입과 운용에 관한 안내서를 공개하는 등, SBOM 활용을 위한 노력이 진행되고 있다. SBOM 포맷에는 SPDX, CycloneDX, WID가 있으며, 각각 적합한 용도가 있다. 포맷과 적합한 용도 등을 비교하는 사이트도 있으니, 관심 있는 사람은 직접 조사해 보면 된다. 엠바카데로(Embarcadero)에서는 Ian Baker(이안 베이커)가 보안과 SBOM에 관한 블로그 기사를 공개했다. 또한, DerScanner의 Valerie Kim(밸러리 김)과 함께 진행한 코드 보안, SBOM과 그 중요성에 대해 나눈 대담 영상도 함께 소개되어 있다. DerScanner는 Delphi를 지원하는 이른바 정적 분석 도구이다. 그리고, SBOM 출력 기능도 갖추고 있다. [한국어 더빙 비디오] SBOM이란 무엇인가? 그리고 왜 올해에 중요한가? DerScanner Delphi에서의 SBOM 이제 Delphi를 사용해 애플리케이션의 SBOM을 생성하는 써드-파티 도구들 중 하나를 소개하려고 한다. 이번에는 DX.Comply를 사용했다. SBOM 포맷은 CycloneDX를 채택하고 있다. 준비 주의할 점: Delphi 13.1 환경에 GetIt(겟잇)을 통해 버전 1.01을 설치해 보았다. 하지만 IDE에 메뉴가 표시되지 않았다. 그래서 GitHub로 가서 최신인 1.3 소스를 다운로드해 빌드하고 설치해 보았다. ※ 써드-파티 도구에 대한 지원은 엠바카데로가 제공하지 않는다. 사용 전에 라이선스를 반드시 확인하기 바란다. 빌드와 설치 현재 시점(2026년 7월 30일) 기준 최신 버전은 1.3이다. 소스 코드를 다운로드했다. ※ Tess.exe까지 포함해 빌드하려면, 미리 DUnit을 설치해 두어야 한다. (Tools > Manage Features...를 열면, 추가 선택 항목에 들어 있다) 이제 Installation 섹션에 설명된 대로, 아래 순서로 설치한다. RAD Studio 13.1에서 DX.Comply.groupproj를 연다. DX.Comply.IDE를 마우스 오른쪽 버튼으로 클릭하고, 메뉴에서 설치한다. 사용법 설치 후에는 IDE의 Tools > Options에서 옵션 대화상자를 열고, Third-Party > DX-Cmply에서 옵션을 설정할 수 있다. 실행 시 대화상자와 출력을 제어할 수 있다. 실행하려면 IDE에서 원하는 프로젝트를 열고, Project 메뉴에서 [DX-Comply – CRA Compliance] → [Generate documentation…]을 클릭하면 된다. 이번에는 샘플 프로젝트 중 RichEdit 프로젝트로 테스트해 보았다. 처리 중에는 대화상자가 표시되어 진행 상황을 확인할 수 있다. 끝나면 Close 버튼을 클릭한다. 브라우저가 실행되며, HTML 형식의 리포트가 표시된다. 리포트에는 이 프로젝트의 타겟으로 지정되어 생성되는 exe 파일의 SHA-256 해시가 출력되어 표시된다. 또한 사용된 유닛들과, DCU들의 이름과 각각의 해시도 함께 출력되어 있는 것을 확인할 수 있다. 또한 프로젝트 루트 폴더를 보면 bom.json이 출력되어 있다. 확인해 보니 스키마 버전이 1.5로 되어 있어, 다음 스키마를 사용하는 것으로 보인다. https://cyclonedx.org/docs/1.5/json/ 이처럼, IDE 메뉴에서 클릭 한 번으로 SBOM 정보를 출력할 수 있어 매우 편리하다. 출력 형식은 JSON, MD, HTML 중에서 선택할 수 있다. 도구 옵션에서 지정하면 된다. DX.Comply는 명령줄(CLI) 도구도 제공한다. 그래서 빌드 프로세스에 통합해, 매일 이루어지는 빌드에서 출력을 비교할 수 있다. 그러면 의도하지 않은 라이브러리 변조 등을 사전에 방지할 수 있다. 또한, 추적 등의 용도로도 활용할 수 있다. 그 밖에, Delphi와 SBOM 관련 링크 CycloneDX SPDX [한국어 더빙 비디오] SBOM이란 무엇인가? 그리고 왜 올해에 중요한가? DX.Comply Delphi-sbom-doc : Documentation and resources for SBOM requirements for Delphi Developer DerScanner : Secure your Delphi applications IPA : SBOM 도입·운용 안내서(일본어) [경제산업성] 사이버보안을 위한 소프트웨어 부품표(SBOM)의 최소 요소에 관한 국제 가이던스에 공동 서명(일본어) [경제산업성] 사이버 공격에 대비하자! 「SBOM」(소프트웨어 부품 구성표)을 활용해 소프트웨어 취약점을 관리하는 구체적 방법에 관한 개정 안내서 마련(일본어) (옮긴이: 이 포럼에서 검색을 하면 더 많은 SBOM 관련 정보들을 찾을 수 있습니다)
  12. 원문 정보 (최종 번역일: 2026년 8월 18일): 제목: Bridging InterBase with Agentic AI: Announcing the InterBase MCP Server 작성자: Rizzato Fernando - 2026년 8월 링크 https://blogs.embarcadero.com/bridging-interbase-with-agentic-ai-announcing-the-interbase-mcp-server/ 생성형 AI가 단순한 대화형 텍스트 생성에서 벗어나 에이전틱(Agentic) 작업흐름으로 진화하고 있다. 이 작업흐름에서, LLM은 추론하고, 쿼리를 실행하고, 점검하고, 엔터프라이즈 인프라를 유지·관리한다. 이에 따라, 모델을 관계형 데이터베이스에 안전하게 연결하는 일이 그 어느 때보다 중요해졌다. 오늘 우리는 InterBase MCP Server v1.0 데모 프로젝트를 GitHub에 공개하게 되어 매우 기쁘다! 목차 MCP 서버란 무엇인가 Delphi용 Dext Framework을 사용해 구축되었다 Dext란 무엇인가 주요 기능 및 도구 범주 구성 및 보안 정책 설치 옵션 옵션 A: 사전 빌드된 릴리스(가장 빠른 방법) 옵션 B: Delphi로 로컬 빌드(개발자에게 권장) 구성 예시 AI 에이전트를 통한 상호작용 이 커뮤니티에 참여하기 MCP 서버란 무엇인가 모델 컨텍스트 프로토콜(MCP, Model Context Protocol)은 대규모 언어 모델(LLM)이 외부 도구, 데이터 소스, 서비스에 안전하게 접근하는 방식을 표준화하기 위해 설계된 개방형 표준이다. 맞춤형 일회성 API 래퍼를 작성해 모든 LLM 이나 클라이언트 애플리케이션을 연결하는 대신, MCP는 통합 프로토콜(unified protocol)을 구축한다. 이는 세 가지 핵심 기능을 중심으로 구축되었다. 도구(Tool): 실행 가능한 함수다. LLM이 작업(쿼리 실행이나 관리 작업 트리거 등)을 수행할 수 있도록 해준다. 리소스(Resource): 맥락 데이터 소스다(스키마나 참조 문서 등). 모델에 제공된다. 프롬프트(Prompt): 재사용 가능한 템플릿이다. AI가 특정 작업을 어떻게 접근하는지 그 방식을 안내한다. MCP 서버는 지능형 중개자 역할을 한다. AI 클라이언트가 데이터베이스 제약 조건들을 분석하려고 할 때, 또는 운영 레코드를 가져오려 할 때, AI는 MCP 서버와 통신한다. 표준 JSON-RPC를 사용하며 안전한 전송 채널을 통해 전달된다. 따라서 인프라를 통제된 상태로 안전하게 유지할 수 있다. Delphi용 Dext Framework을 사용해 구축되었다 InterBase MCP Server 프로젝트를 소스에서 빌드하려면, 델파이(Delphi) 13.0 이상이 필요하다. 또한, Dext Framework에 대한 엄격한 의존성을 가진다. Dext란 무엇인가 Dext(덱스트)는 현대적인 풀스택 프레임워크다. Delphi(Object Pascal) 개발을 위해 설계되었다. 유사한 엔터프라이즈급 아키텍처 패턴들을 네이티브 파스칼에 가져온다(ASP.NET Core와 유사). Dext가 제공하는 것들: 클린 아키텍처(Clean Architecture) 및 의존성 주입(Dependency Injection): 데이터베이스 상호작용을 깔끔하게 분리하고, 테스트 가능하며, 유지보수하기 쉽게 유지한다. 네이티브 프로토콜 처리(Native Protocol Handling): JSON-RPC 통신, 라우팅, 도구 레지스트리를 관리하기 위한 견고한 기본 요소들을 제공한다. 제로 콜드 스타트 성능(Zero-Cold-Start Performance): 매우 빠른 속도를 제공한다. 가상 머신 오버헤드 없이 네이티브 머신 코드로 곧바로 컴파일·실행되기 때문이다. 주요 기능 및 도구 범주 InterBase MCP Server는 5개의 개별 운영 범주에 걸쳐 구성된 30개의 MCP 도구를 제공한다. 범주 주요 도구 및 기능 🔍 스키마 인트로스펙션 (Schema Introspection) get_database_info, get_tables, get_views, get_columns, get_indexes, get_foreign_keys, get_check_constraints, get_stored_procedures, get_triggers, get_functions, get_generators, get_exceptions, get_domains. 심층 분석한다. 대상: 데이터베이스 구조, 테이블, 뷰, 필드, 제약 조건, 저장된 로직, UDF, 시퀀스, 예외, 도메인 정의 ⚡ 쿼리 실행(Query Execution) open_cursor, execute_sql, execute_procedure, explain_plan. 커서를 통해 읽기 전용 SELECT 쿼리를 실행하고, 비쿼리 문(DML/DDL)을 다루고, 저장 프로시저를 안전하게 실행하고, InterBase 실행 계획을 가져와 인덱스를 최적화한다. 📈 성능 및 모니터링(Performance & Monitoring) stat_attachments, stat_database, stat_transactions, stat_statements, stat_procedures, stat_triggers, stat_pools, stat_pool_blocks, stat_heaps, stat_indices, stat_relations. 모니터링한다. 대상: 실시간 데이터베이스 활동, 연결, 트랜잭션, 활성 문(statement), 캐시된 로직, 메모리 풀 할당, 릴레이션 캐시 사용량 🛡️ 보안 및 감사(Security & Auditing) get_user_privileges, list_roles, get_role_members, get_audit_log. 부여된 사용자 권한을 점검하고, 데이터베이스 역할/멤버를 나열하며, 필터링을 지원하는 일별 도구 실행 감사 로그를 읽는다. 🧰 데이터베이스 관리(Database Management) backup_database, restore_database, validate_database, sweep_database. DBA 수준의 유지보수 작업, 데이터베이스 무결성 검증/복구, 스토리지 스윕, 백업/복원 루틴을 실행한다. 구성 및 보안 정책 AI 에이전트에게 데이터베이스 시스템 접근 권한을 부여할 때는 보안이 최우선 사항이다. 서버는 INI 파일(예: mcp_interbase.ini)을 통해 구성된다. 그리고 세분화된 접근 제어를 포함한다. DML 및 DDL 가드(Guards): 내장된 차단 목록(ForbiddenDML, ForbiddenDDL)이 의도치 않은 문(예: DROP, TRUNCATE, ALTER)의 실행을 막아준다. 계층적 역할 시크릿(Hierarchical Role Secrets): 설정 가능한 공유 시크릿이 VIEW(읽기 전용), CRUD(쓰기 작업), DBA(관리 작업) 수준에 걸쳐 접근 등급을 강제한다. 감사 로깅(Audit Logging): 도구 실행 내역을 구조화된 JSON 라인(logs/audit.jsonl)으로 기록한다. 규정 준수와 검토를 위해서다. 설치 옵션 곧바로 실행하고 싶든, Delphi에서 서버 코드를 커스터마이즈하고 싶든, 두 가지 유연한 경로를 선택할 수 있다. 옵션 A: 사전 빌드된 릴리스(가장 빠른 방법) 컴파일을 하지 않고 배포하고 싶다면, GitHub Releases 페이지에서 v1.0 릴리스 자산을 직접 다운로드하면 된다. 요구 사항: 시스템에 인터베이스(InterBase)가 설치되어 있어야 한다(적어도, InterBase 클라이언트 DLL/라이브러리가 있어야 데이터베이스 연결을 맺을 수 있다). 사용 가능한 패키지(들): 🪟 Windows (x64): mcp_interbase-win64-v1.0.zip 🐧 Linux (x86_64): mcp_interbase-linux-x86-64-v1.0.zip ⚙️ 구성 템플릿: mcp_interbase.template.ini 사용 중인 플랫폼에 맞는 zip 압축 파일을 다운로드하고 압축을 푼다. 바이너리 디렉터리에서 mcp_interbase.template.ini 파일명을 mcp_interbase.ini로 변경한다. INI 파일을 편집해 데이터베이스 경로, 자격 증명, 포트를 설정한다. 옵션 B: Delphi로 로컬 빌드(개발자에게 권장) 로컬에서 빌드하는 방식은, 여러분이 도구를 확장하거나, 서버 로직을 커스터마이즈하거나, 이 프로젝트에 기여할 수 있다. 사전 요구 사항 설치: Delphi 13.0(또는 그 이상)을 설치한다. 그리고, Dext 프레임워크를 설치한다(TMS Smart Setup을 통한 설치를 권장한다). 저장소 클론: git clone https://github.com/Embarcadero/InterbaseMCP.git 빌드: RAD Studio(라드 스튜디오)/Delphi에서 프로젝트를 열고 실행 파일을 컴파일한다. 중요: InterBase MCP는 InterBase Server용으로 설계되었다. 하지만, 로컬 테스트용으로는 무료 버전인 InterBase Developer와도 원활하게 동작한다. 아직 InterBase를 실행 중이 아니라면, embarcadero.com/products/interbase에서 Server 에디션 체험판 라이선스를 요청할 수 있다. 구성 예시 mcp_interbase.ini 구성 파일에서 데이터베이스 연결, 서버 엔드포인트, 보안 시크릿을 설정한다. [MCPServer] MCPHost=localhost MCPPort=5000 UseHttps=0 SslProvider=OpenSSL SslCert=server.crt SslKey=server.key SslRootCert= [Database] Host=localhost Port=3050 Database=c:\data\employee.gdb UserName=SYSDBA Password=masterkey CharacterSet=UTF8 [Security] ForbiddenDML=INSERT,UPDATE,DELETE,TRUNCATE ForbiddenDDL=DROP,GRANT,REVOKE,SET VIEWSecret=C123F132-6FA5-4816-A660-BB053DA00A50 CRUDSecret=BA643CD1-A0D5-4274-AD61-E48AA717F78E DBASecret=47473810-558E-447B-8A6F-AF67A0B7DBF8 [Logging] AuditPath=logs/audit.jsonl 참고: HTTPS/SSL 구성은 현재 비활성화되어 있다. 그리고, 향후 릴리스에서 지원될 예정이다. AI 에이전트를 통한 상호작용 일단 이 서버가 실행되면(사전 빌드된 실행 파일이든 로컬 빌드든), 원하는 MCP 클라이언트나 AI 에이전트를 연결해 자연어로 데이터베이스 질문을 시작할 수 있다. 프롬프트: Write a SQL query for InterBase to return the top 10 customers ranked by total sales value. Include customer ID, name, order count, and total sales amount. (한국어 번역: InterBase용 SQL 쿼리를 작성해줘. 총 매출액 기준 상위 10개 고객을 반환하도록 하고, 고객 ID, 이름, 주문 건수, 총 매출액을 포함해줘) InterBase의 Employee 데모 데이터베이스를 사용하면, 다음과 매우 비슷한 결과를 얻게 될 것이다. SELECT c.cust_no AS customer_id, c.customer AS customer_name, COUNT(s.po_number) AS order_count, SUM(s.total_value) AS total_sales_amount FROM customer c JOIN sales s ON s.cust_no = c.cust_no GROUP BY c.cust_no, c.customer ORDER BY total_sales_amount DESC ROWS 1 TO 10 이 커뮤니티에 참여하기 InterBase MCP Server는 엠바카데로 테크놀로지스(Embarcadero Technologies) 산하의 오픈소스 프로젝트다. 개발자들이 사전 빌드된 바이너리를 테스트하거나 로컬에서 빌드해 보고, 이슈를 보고하거나, 다가올 마일스톤 릴리스에 기여해 보기를 권장한다. 🌐 GitHub 저장소: https://github.com/Embarcadero/InterbaseMCP 📦 v1.0 최신 릴리스 자산: https://github.com/Embarcadero/InterbaseMCP/releases/tag/v1.0
  13. 원문 정보 (최종 번역일: 2026년 8월 16일): 제목: Discover RockQuest, The Kai Summer Wave's First Super Giveaway Recipient! 작성자: Hagop Panosian - 2026년 8월 링크 https://blogs.embarcadero.com/discover-rockquest-the-kai-summer-waves-first-super-giveaway-recipient/ 색칠한 작은 돌멩이들을 몰입감 있는 탐험 모험으로 바꿀 수 있는 앱이 있을까? 그것이 바로 RockQuest의 콘셉트다. RockQuest는 물리적 세계와 디지털 세계를 이어주는 독창적이고 매력적인 게임이다. 그래서 우리 엠바카데로(Embarcadero)의 상상력을 사로잡았다. RockQuest는 Kai Summer Wave 캠페인의 월간 슈퍼 증정품(Monthly Super Giveaway)을 받은 첫 번째 수상작이다. 첫 번째 월간 슈퍼 증정품은 'DevExpress VCL + FMX' Full License다. 이는 델파이(Delphi) 생태계에서 매우 인기 있는 라이브러리다. Kai Summer Wave 팀은 RockQuest의 품질, 스타일, 독창성에 매료되었다. 이 앱은 짧은 시간 안에 무엇을 이룰 수 있는지 보여주는 완벽한 예시다. 그 중심에는 Kai(카이)가 있다. Kai는 RAD Studio(라드 스튜디오) IDE 안에 내장된 AI 코딩 어시스턴트다. 고객들의 개발 시간을 몇 시간, 며칠, 심지어 몇 달까지 절약해 준다. 목차 Kai 웨비나 시리즈의 더 많은 프로젝트들 여러분의 자리 예약하기 RockQuest란 무엇인가? Kai로 진행 중인 프로젝트가 있는가? 증정품을 줘! Kai와 함께라면 여러분의 RAD Studio 프로젝트는 어떤 모습이 될까? Kai Summer Wave에 출품작 제출하기 Kai Summer Wave 웨비나 시리즈에 참여하기 Kai 웨비나 시리즈의 더 많은 프로젝트들 8월 17일 월요일부터 8월 21일까지, 매일 CDT 기준 오후 12시(UTC 기준 오후 5시)에 다음 라운드의 놀라운 출품작들과 Kai Summer Wave 증정품의 다음 수상작들을 소개할 예정이다! Kai의 도움으로 만들어진 실제 RAD Studio 프로젝트들을 직접 볼 수 있다. 또한 그 한 주 동안, Kai를 최대한 활용하는 방법에 대한 팁들도 함께 볼 수 있다. 여기에는 AI 엔진들 즉 LM Studio, Dolphin, Ollama, oMLX 등에 대한 활용법도 포함된다. 게다가, R&D 팀이 직접 전하는 RAD Studio와 Kai 활용 팁들도 준비되어 있다. 여러분의 자리 예약하기 RockQuest란 무엇인가? 개발자의 말을 빌리면, "RockQuest는 평범한 산책을 창의적인 보물찾기로 바꿔준다. 재미있는 단서들을 따라가면 근처에서 색칠된 돌들을 발견할 수 있다. 그 돌들의 여정이 펼쳐지는 모습을 지켜보고, 마법 같은 발견의 순간마다 커뮤니티와 공유할 수 있다"라고 한다. 이 앱은 Share What You Built With Kai (Kai를 가지고 여러분이 만든 것을 공유하기) 캠페인에 제출되었다. 이 앱은, 델파이(Delphi)와 Kai(카이)가 함께 만들어낸 훌륭한 모바일 게임 앱의 진정으로 아름다운 예시다. RockQuest는 또한 이 앱 개발자의 Alcinoe 컨트롤 라이브러리가 가진 강력함도 잘 보여준다. Alcinoe 컴포넌트 라이브러리는 무료 오픈소스다. 이 라이브러리는 델파이 모바일 앱에 뛰어나고 모던한 룩앤필을 더해준다. RockQuest는 이를 훌륭하게 활용하고 있다. 그래서 그 진가를 제대로 보여준다. RockQuest는 App Store와 Play Store에서 찾아볼 수 있다: Kai로 진행 중인 프로젝트가 있는가? 만약 지금 Kai의 도움을 받아 진행 중인 프로젝트가 있다면, Kai Summer Wave에 출품해 인정과 증정품을 받아보는 건 어떨까? 최고의 프로젝트들에게는 지금까지 우리가 제공했던 것들 중 최고의 증정품으로 감사를 전하고 있다! 증정품을 줘! Kai와 함께라면 여러분의 RAD Studio 프로젝트는 어떤 모습이 될까? RAD Studio 프로젝트가 아이디어에서 출시된 앱으로 완성되기까지, Kai는 구축 시간을 기록적으로 단축하는 데 도움을 주고 있다. Kai Summer Wave에 접수된 출품작들이 바로 그 증거다. 아이디어들이 생명을 얻고 있다. 이 새 AI 코딩 어시스턴트는 RAD Studio IDE 안에 들어 있다. 그리고, 커뮤니티 전반에 영감을 불어넣고 있다. Kai Summer Wave에 출품작 제출하기 Kai Summer Wave 웨비나 시리즈에 참여하기
  14. 원문 정보 (최종 번역일: 2026년 8월 13일): 제목: C++ Builder 13 CE: What's New and Why It Matters 작성자: Maksim Menshikov - 2026년 8월 링크: https://blogs.embarcadero.com/c-builder-13-ce-whats-new-and-why-it-matters/ C++Builder(C++빌더) 커뮤니티 에디션이 버전 13으로 업데이트되었다. 커뮤니티 사용 자격이 있는 사용자는 이번 업데이트로 최신 Win64 도구체인(toolchain)에 무료로 액세스할 수 있게 되었다. 이 에디션은 커뮤니티 에디션 라이선스 요건을 충족하는 학생, 취미 개발자, 프리랜서, 소규모 팀을 위해 나왔다. 전체 자격 요건과 사용 조건은 라이선스 계약서를 참고하면 된다. 목차 Clang 20을 기반으로 C++23 지원 LLDB 20: 디버거 업데이트 CMake와 서드파티 라이브러리들 기술 업데이트 FireMonkey(파이어몽키) 향상들 Windows용 VCL 향상들 64비트 IDE 알려진 문제 C++Builder 커뮤니티 에디션은 누가 사용할 수 있는가? 다음 단계 Clang 20을 기반으로 RAD Studio(라드 스튜디오) CE는 Win64 Modern 컴파일러(bcc64x)를 Clang 15에서 Clang 20으로 업그레이드한다. 이로써 LLVM 본류와 격차가 크게 좁혀진다. 엠바카데로(Embarcadero)의 VCL/FMX 통합과 플랫폼별 패치는 이제 더 폭넓은 C++ 생태계가 테스트 기준으로 삼고 있는 버전에 훨씬 더 가까운 컴파일러 위에 올라간다. 이는 최신 정식 Clang을 전제로 하는 서드파티 라이브러리를 빌드하려 할 때 중요한 의미를 가진다. Clang 본류 릴리스는 15와 20 사이에 다섯 개가 존재한다. 그로 인한 누적 효과는 진단 기능에서 뚜렷하게 드러난다. 오류 메시지가 더 정확해졌고, 템플릿 인스턴스화 추적이 더 읽기 쉬워졌으며, 기본적으로 더 넓은 범위의 경고들이 만들어 진다. 전반적으로 이 새로운 Windows 64비트 도구체인(toolchain)은 오픈소스 개발을 더 쉽고, 더 예측 가능하고, 분야 전반에 걸쳐 더 통일되게 만들어 준다. C++23 지원 C++Builder 13의 새 Win64 Modern 프로젝트는 기본적으로 C++23을 사용한다. 프로젝트 설정에서 C++17이나 C++20으로 바꿀 수도 있다. Clang 20은 C++23 언어 기능을 상당 부분 지원한다. 그 중에서도 실무에 가장 큰 영향을 미치는 기능들을 소개한다. Deducing this(P0847)를 사용하면 const 접근과 non-const 접근, 그리고 lvalue와 rvalue 한정 모두에 동작하는 멤버 함수를 하나만 작성하면 된다. struct Buffer { template <typename Self> auto& data(this Self&& self) { return self.m_data; } }; CRTP 계층 구조들은 이전에 static_cast<Derived&>(*this)가 필요했다. 그런데 이제는 같은 내용을 직접 표현할 수 있다. 재귀 람다 작성도 한결 자연스러워졌다. [[assume(expr)]]는 최적화기에 이식 가능한 방법을 제공해 전제조건을 선언할 수 있도록 한다. void process(int* p, int n) { [[assume(n > 0)]]; [[assume(p != nullptr)]]; // ... } __builtin_assume과 달리, 이는 C++23 표준이다. 그리고 이 규격을 준수하는 컴파일러들 사이에서 이식 가능하다. Lifetime extension in range-for(P2718)는 오랫동안 존재해 온 미정의 동작(UB) 함정을 해결한다. C++23 이전에는 getWidget()이 임시 객체를 반환할 경우 다음 코드는 UB였다. for (auto& item : getWidget().items()) { ... } 이 임시 객체는 루프 본문이 실행되기 전에 소멸되었다. C++23은 range 초기화 식에서 생성된 임시 객체의 수명이 루프 전체를 포괄하도록 연장한다. 그 결과, 조용히 깨지던 코드가 이제는 정의된 동작을 갖게 되었다. static operator()(P1169)와 static operator[](P2589) 덕분에, 상태가 없는 함수 객체와 인덱스 연산자는 더 이상 암시적 this 파라미터가 필요 없다. 그래서 컴파일러는 의미 없는 포인터 인자(argument)를 아예 건너뛸 수 있다. if consteval(P1938)은 if constexpr(std::is_constant_evaluated())라는 우회 방법이 없어도, 컴파일 타임 경로와 런타임 경로를 깔끔하게 분기하는 방법을 제공한다. LLDB 20: 디버거 업데이트 RAD Studio(라드 스튜디오) 13은 디버거 백엔드를 LLDB 20으로 옮겼다. LLDB 20 본류의 릴리스 노트에는 공유 라이브러리 병렬 파싱이 문서화되어 있다. 이는 대규모 프로젝트들에서 attach와 실행 시간을 크게 줄여 준다. 또한 인라인된 호출 지점에서의 브레이크포인트 배치도 수정되었다. 이전 버전에서는 브레이크포인트가 이런 지점에서 조용히 다음 실제 명령어로 옮겨지곤 했다. CMake와 서드파티 라이브러리들 GetIt(겟잇)을 통한 CMake 지원은 C++Builder 12.2에서 도입되었다. 몇 가지 향상들이 13에서도 이어진다. 구성 요소는 다음과 같다. 패치된 CMake 빌드: bcc64x용 도구체인(toolchain) 파일 포함 빌드 실행기로 사용되는 Ninja 함수 스타일 API: set_embt_target(<target> ...) 형태로, 하나의 프로젝트에서 여러 CMake 타겟을 지원 여기에서 Clang 20 업그레이드의 실질적인 효과를 바로 가장 직접적으로 느낄 수 있다. 이전에는 C++Builder에서 컴파일하려면 패치가 필요했던 여러 서드파티 라이브러리들이, 이제는 수정 없이 그대로 동작한다. 동작이 확인된 라이브러리는 다음과 같다. OpenCV Google Test VTK 그 밖에도 다수의 라이브러리들이 동작하는 것을 확인했다. 기술 업데이트 새로운 커뮤니티 에디션에는 여러분이 좋아하는 그 VCL과 FMX가 그대로 담겨 있다. 여기에 RAD Studio(라드 스튜디오) 13의 모든 새 기능도 함께 포함되어 있다. 자세한 내용은 RAD Studio 릴리스 노트를 참고하면 된다. FireMonkey(파이어몽키) 향상들 FireMonkey(파이어몽키)는 C++Builder 개발자가 사용할 수 있는 두 가지 애플리케이션 프레임워크 중 하나다. C++Builder 12.1 이후 도입된 업데이트는 다음과 같다. 애니메이션 타이밍과 화면 안정성 향상: 새로운 Display Link 서비스를 통해 이루어짐 터치 제스처·스크롤 동작·바운스 효과 제어 범위 확대 그래픽 성능 향상: GPU 지원 비트맵 전송을 통해 새로 TApplicationEvents, TMaskEdit 컴포넌트가 추가되어 있다 정밀한 컨트롤 중앙 정렬: 추가된 정렬 모드들 내장 맞춤법 검사 기능 강화 Skia4Delphi와의 통합이 새롭게 향상되어 있다 수많은 성능 최적화와 품질 향상 Windows용 VCL 향상들 C++Builder 13은 네이티브 Windows 개발을 위한 VCL 개발에 다음과 같은 추가 업데이트를 제공한다. TActionMainMenuBar 내에서 스크롤이 지원된다 커스텀 폼 제목 표시줄 스타일링 유연성 향상 WebView2 런타임 통합 최신화: TEdgeBrowser용 TControlList, TFormTabsBar, TToggleSwitch 전반에서 사용성과 화면이 향상되었다 64비트 IDE C++Builder IDE는 이제 네이티브 64비트 애플리케이션이다. 이제 더 많은 메모리를 사용할 수 있다. 대규모 프로젝트들과 복잡한 개발 환경에서 작업할 때의 안정성도 향상되었다. 알려진 문제 C++Builder 13 커뮤니티 에디션에서 프랑스어 언어 팩 설치에 영향을 미치는 문제가 발견되었다. 이 문제가 해결되기 전까지는 프랑스어 언어 지원을 선택하거나 설치하지 않기를 바란다. 설치가 실패할 수 있기 때문이다. 현재 수정 작업을 진행하고 있다. C++Builder 커뮤니티 에디션은 누가 사용할 수 있는가? C++Builder 커뮤니티 에디션은 다음과 같은 사용자를 위해 설계되었다. C++와 네이티브 애플리케이션 개발을 배우는 학생 개인용 또는 비상업용 애플리케이션을 만드는 취미 개발자 애플리케이션으로 연간 미화 5,000달러 미만을 버는 프리랜서 및 독립 개발자 연간 매출이 미화 5,000달러 미만이고 개발팀 인원이 5명 이하인 스타트업 및 조직 C++Builder 커뮤니티 에디션은 1년 기한 라이선스로 무료로 제공된다. 제한적인 상업적 사용도 허용한다. 자격 요건이 확실하지 않은 개발자는 커뮤니티 에디션 라이선스 FAQ를 참고하면 된다. Community Edition은 평가판을 대신 해 장기간 사용하는 용도로 만들어진 것이 아니다. 따라서 이미 정식 상업용 라이선스를 보유한 조직이라면 사용해서는 안 된다. 프로젝트나 팀, 비즈니스가 커뮤니티 에디션의 사용 자격 한계를 넘어 성장하면, 제약 없는 상업용 라이선스 즉, C++Builder 프로페셔널, 엔터프라이즈, 아키텍트 에디션을 사용하면 된다. 이 상업용 에디션들은 Community 에디션에는 없는 추가 기능들도 제공한다. 다음 단계 C++Builder 13 CE는 커뮤니티 에디션 사용자에게 플로렌스(Florence)의 도구체인(toolchain)들을 제공한다. 사용 자격을 갖춘 개발자는 상업용 릴리스에 도입된 것과 동일한 모던 C++ 기반을 사용할 수 있게 된다. 우리가 기다리고 있는, RAD Studio(라드 스튜디오) 13.2 유료 에디션들에서는 C++ 생산성을 계속 발전될 예정이다. 업무 시간 전반에 걸쳐 체감할 수 있는 편의성 향상도 함께 담길 것이다. 출시가 가까워지면 더 자세한 소식을 전하겠다.
  15. Delphi(델파이) 13 Community Edition 정식 출시 원문 정보 (최종 번역일: 2026년 8월 12일): 제목: Delphi 13 Community Edition Is Now Available 작성자: Marco Cantu - 2026년 8월 링크 https://blogs.embarcadero.com/delphi-13-community-edition-is-now-available/ 엠바카데로(Embarcadero)는 Delphi(델파이) 13 Community Edition의 출시를 발표하게 되어 기쁘다. 이 제품은 엠바카데로의 전문가용 Delphi 개발 환경의 무료 에디션의 최신 버전이다. Delphi 13 Community Edition은 Delphi 13 플로렌스(Florence)를 기반으로 한다. 즉, Community Edition이 버전 12.1에서 한 단계 업그레이드 되었다. 그 결과 학생, 취미 개발자, 독립 개발자, 및 "이 무료 버전 자격 요건을 갖춘" 스타트업은 버전 12.2, 12.3, 13.0에서 새롭게 제공되는 Delphi 언어와 프레임워크 개선 사항들을 접근할 수 있게 되었다. 여기에는 모바일 플랫폼에 대한 업데이트된 지원도 포함된다. 목차 Delphi Community Edition이란 무엇인가? Delphi 12.1 이후 새로워진 점은? 새로운 Delphi 언어 기능 더욱 강력해진 개발 환경 FireMonkey 개선 사항 Windows용 VCL 개선 사항 업데이트된 모바일 플랫폼 지원 Delphi Community Edition은 누가 사용할 수 있는가? Delphi 13 Community Edition 다운로드 Delphi Community Edition이란 무엇인가? Delphi Community Edition은 Delphi 언어를 사용해 네이티브 애플리케이션을 만들 수 있는, 모든 기능을 갖춘 무료 에디션이다. 여기에는 전문가용 IDE, 비주얼 디자이너, 통합 컴파일러와 디버거가 포함된다. 또한 Windows 개발용인 VCL 프레임워크와, Windows·macOS·iOS·Android 전반에 걸쳐 하나의 코드 기반을 공유하며 네이티브 애플리케이션을 만들 수 있는 FireMonkey(파이어몽키) 프레임워크도 포함된다. 이 에디션은 학생, 취미 개발자, 프리랜서, 그리고 Community Edition 라이선스 요건을 충족하는 소규모 팀을 위해 만들어졌다. Delphi 12.1 이후 새로워진 점은? Delphi 12.1 Community Edition에서 Delphi 13 Community Edition으로 넘어가면, 언어, IDE, 프레임워크, 플랫폼에 걸친 상당한 양의 개선 사항을 함께 얻게 된다. 새로운 Delphi 언어 기능 Delphi 13은 Delphi 언어에 여러 유용한 기능들이 추가되어 있다. 그리고 이 기능들은 지원되는 모든 대상 플랫폼에서 사용할 수 있다. 새로운 조건식, 즉 삼항 연산자: if 키워드로 구현 NameOf 내장 함수: 식별자의 이름을 문자열로 반환 is not, not in 연산자: 더 명확하고 자연스러운 표현 제공 {$PUSHOPT}, {$POPOPT} 컴파일러 지시문: 컴파일러 옵션들을 저장하고 복원 noreturn 지시문: 호출자에게 제어를 반환하지 않는 프로시저에 사용할 수 있는 지시문 제네릭 타입 제약 조건 향상 커스텀 매니지드 레코드의 Initialize, Finalize 연산자에 Self 파라미터가 암시적으로 추가됨 이 추가 기능들은 Delphi 코드를 더욱 표현력 있게 만들어준다. 동시에 Delphi 언어 고유의 가독성과 강력한 네이티브 코드 기반도 그대로 유지한다. 더욱 강력해진 개발 환경 Delphi 13 Community Edition에는 업데이트된 32비트 IDE 뿐만 아니라 새로운 64비트 IDE가 있다. 이 64비트 IDE는 64비트 Windows 애플리케이션을 개발하고 디버깅하는 데 사용된다. 특히 대규모 프로젝트를 다룰 때, 훨씬 넓은 주소 공간을 제공한다는 점에서 큰 가치가 있다. IDE에는 다음 기능들도 포함되어 있다. 64비트 Delphi 언어 서버: 대규모 프로젝트 지원 능력 향상 주요 IDE 창에서의 검색 및 필터링: Project Manager, Structure 뷰, Messages, Event Log 등에 일괄 반영 Focus Mode: 방해 요소 없이 코드를 편집할 수 있다 에디터 스크롤바 주석: 변경 사항, 북마크, 오류, 경고를 스크롤바에 표시 분할 에디터 뷰 Classic Delphi CodeInsight 엔진을 사용할 수 있는 옵션 다시 도입 GetIt(겟잇) 패키지 버전 관리: 개발자가 패키지의 특정 사용 가능 버전을 선택 Delphi 코드 도구, 디버깅, IDE 반응성, 안정성, 품질 전반에 걸친 수많은 개선 사항 FireMonkey 개선 사항 FireMonkey는 여전히 Delphi로 멀티-디바이스 개발을 하는 기반이다. Delphi 12.1 이후, FireMonkey에는 폭넓은 개선 사항이 들어갔다. 여기에는 다음이 포함된다. 새로운 Display Link 서비스: 더 부드럽고 안정적인 애니메이션 더 빠른 비트맵 복사: GPU 가속을 통한 새로운 TMaskEdit 컴포넌트 새로운 TApplicationEvents 컴포넌트 새로운 정렬 옵션: 컨트롤을 중앙 정렬 시 유용 추가된 스크롤, 바운스, 터치 상호작용 컨트롤 맞춤법 검사 지원 확장 Skia4Delphi 통합 업데이트 전반적인 성능, 플랫폼 통합, 품질 개선 Windows용 VCL 개선 사항 Delphi 13은 네이티브 Windows 개발을 위한 VCL 프레임워크도 함께 발전시켰다. 다음과 같은 개선 사항이 포함된다. 커스텀 제목 표시줄에 스타일이 적용 TControlList, TFormTabsBar, TToggleSwitch 향상 TActionMainMenuBar의 스크롤 지원 TEdgeBrowser에 업데이트된 WebView2 통합 확장되고 새로 구축된 Windows 및 WinRT API 지원 업데이트된 모바일 플랫폼 지원 Delphi 13 Community Edition의 가장 중요한 이점 중 하나는 업데이트된 모바일 개발 지원이다. Android의 경우, Delphi 13은 업데이트된 Android 도구체인으로 네이티브 32비트와 64비트 ARM 애플리케이션 빌드를 지원한다. Android API 레벨 35를 타겟으로 하며, 16KB 메모리 페이지 크기 등 Android 15 기능도 지원한다. 또한 Android SDK와 NDK 통합, 배포 도구, Java 라이브러리 임포트, Java2OP 브리지도 개선되어 있다. Apple 플랫폼의 경우, Delphi 13은 iOS 18용 네이티브 iOS 애플리케이션을 지원한다. 여기에는 실제 기기 개발 그리고 Apple Silicon Mac에서의 iOS 시뮬레이터 개발이 모두 포함된다. 이번 릴리스에는 확장된 iOS API 헤더 그리고 업데이트된 플랫폼 통합도 함께 포함되어 있다. 따라서 Delphi 개발자는 하나의 FireMonkey 코드 기반을 계속 공유해서 사용할 수 있다. 그러면서도 최신 Android, iOS 기기를 대상으로 네이티브 애플리케이션을 개발할 수 있다. Delphi Community Edition은 누가 사용할 수 있는가? Delphi Community Edition은 다음을 대상으로 한다. 프로그래밍과 네이티브 애플리케이션 개발을 배우는 학생 개인 용도로 애플리케이션을 만드는 취미 개발자 자신의 애플리케이션으로 연간 미화 5,000달러 미만의 수익을 올리는 프리랜서 개발자와 개인 개발자 연 매출 미화 5,000달러 미만이고, 팀 규모가 5명 이하인 스타트업 및 조직 Delphi Community Edition은 무료다. 1년 기간의 라이선스가 제공된다. 또한 제한적인 상업적 사용 라이선스도 포함되어 있다. 자신이 자격 요건에 해당하는지 확실하지 않다면, Community Edition 라이선스 FAQ를 확인하면 된다. Community Edition은 평가판을 대신 해 장기간 사용하는 용도로 만들어진 것이 아니다. 따라서 이미 정식 상업용 Delphi 라이선스를 보유한 조직이라면 사용해서는 안 된다. 개발이나 비즈니스 요구가 Community Edition의 자격 한도를 넘어서게 되면, 제약 없는 상업용 라이선스 즉 Delphi의 Professional, Enterprise, Architect 에디션을 사용하면 된다. 이 상업용 에디션들은 Community 에디션에는 없는 추가 기능들도 제공한다. Delphi 13 Community Edition 다운로드 처음으로 Delphi를 알게 되었든, 네이티브 애플리케이션 개발을 배우고 있는 중이든, Delphi 12.1 Community Edition에서 업데이트하려고 하든 상관없다. Delphi 13 Community Edition은 Windows와 모바일 플랫폼용 고속 네이티브 애플리케이션을 만들 수 있는, 현대적이고 생산적인 환경을 제공한다. 지금 Delphi 13 Community Edition을 다운로드하고 개발을 시작해 보자: 지금 다운로드
×
×
  • Create New...

중요한 정보

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