YouTube에서도 보기.

sgcUI 2026.11: Delphi와 .NET를 위한 sgcChat, AI 어시스턴트와 팀 채팅 | eSeGeCe 블로그

sgcUI 2026.11: Delphi, C++ Builder, .NET를 위한 sgcChat, AI 어시스턴트와 팀 채팅

· 릴리스
sgcUI 2026.11: Delphi와 .NET를 위한 sgcChat, AI 어시스턴트와 팀 채팅 | eSeGeCe 블로그
✦  새 릴리스 · sgcUI 2026.11

sgcChat을 소개합니다.
애플리케이션 안의 채팅.

답변을 서식이 적용된 Markdown으로 스트리밍하는 AI 어시스턴트와, 접속 상태, 입력 중 표시, 읽음 확인, 리액션을 갖춘 팀 채팅. Delphi, C++ Builder, .NET용 네이티브 컨트롤입니다.

  • VCL
  • FireMonkey
  • WinForms
  • WPF
  • Avalonia
  • 헤드리스 SVG 및 PNG
sgcChat이 그린 AI 어시스턴트 대화와 팀 채팅을 나란히 보여주는 화면
16sgcUI 제품
4채팅 컨트롤
5UI 프레임워크
12언어

오늘 sgcUI 2026.11을 출시합니다. 이번 릴리스는 AI 어시스턴트 채팅과 팀 채팅을 여러분의 애플리케이션 안에 넣어 주는 새 제품 sgcChat을 추가하고, 스위트 전반의 자잘한 빈틈도 채웁니다. 사용자 입력을 받는 게이지, 데이터셋을 양방향으로 따라가는 데이터 바인딩, 웹 페이지로 게시되는 대시보드, 플래너의 Outlook 반복 일정, 보고서의 스크립트 등이 그 예입니다.

sgcChat은 sgcUI의 열여섯 번째 제품입니다. Delphi와 C++ Builder에서는 VCL과 FireMonkey, .NET에서는 WinForms, WPF, Avalonia에서 실행되며, sgcUI Enterprise와 All-Access에 포함됩니다. 별도 패키지로는 판매되지 않습니다.

sgcChat: 애플리케이션 안의 AI 어시스턴트

AI의 답변은 작은 조각으로 도착하고, 사용자는 답변이 작성되는 동안 바로 읽기를 기대합니다. TsgcChatAI는 대화를 공급자에 연결하고, 기록과 시스템 프롬프트를 보내며, 조각이 도착하는 즉시 서식이 적용된 Markdown으로 표시합니다. 공급자는 작업자 스레드에서 실행되므로 창은 계속 반응하며, 채팅 패널은 모든 답변에 대해 중지, 다시 생성, 편집 후 재전송을 제공합니다.

sgcChat 패널의 AI 어시스턴트 대화
채팅 패널의 AI 어시스턴트.

sgcChat은 특정 AI 업체에 묶이지 않습니다. TsgcChatAIProvider_AIChat은 sgcWebSockets의 TsgcAIChat에 연결되며, 이를 통해 OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral과 통신합니다. TsgcChatAIProvider_UICore는 모든 sgcUI 제품이 공유하는 AI 공급자 계층을 사용하고, TsgcChatAIEventProvider를 쓰면 이벤트에서 자체 백엔드의 응답을 스트리밍할 수 있습니다. 다음은 TsgcChatAI 바인딩이 OpenAI로 응답하게 하는 방법입니다.

uses
  SysUtils, Classes,
  // sgcWebSockets
  sgcAI, sgcAI_Chat,
  // sgc
  sgcChat_AI, sgcChatWS_AI;

procedure UseOpenAI(aAI: TsgcChatAI; const aApiKey: string);
var
  oChat: TsgcAIChat;
  oProvider: TsgcChatAIProvider_AIChat;
begin
  oChat := TsgcAIChat.Create(aAI.Owner);
  oChat.Provider := aicpOpenAI;
  oChat.ChatOptions.ApiKey := aApiKey;
  oChat.ChatOptions.Model := 'gpt-4o-mini';

  oProvider := TsgcChatAIProvider_AIChat.Create(aAI.Owner);
  oProvider.Chat := oChat;

  aAI.Model := oChat.ChatOptions.Model;
  aAI.Provider := oProvider;
end;

Provider를 바꾸면 Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral을 사용할 수 있습니다. 전체 퀵 스타트는 sgcChat 도움말에 있습니다.

Claude, OpenAI, Gemini 및 기타 LLM 프로바이더와의 통신에는 All-Access에 포함된 sgcWebSockets가 필요합니다. TsgcChatAIProvider_AIChat은 sgcChatWS 브리지 패키지(.NET: esegece.sgcChat.sgcWebSockets)에 있습니다. sgcWebSockets를 사용하지 않는 경우 TsgcChatAIEventProvider를 통해 직접 작성한 코드에서 임의의 AI 서비스를 호출할 수 있습니다.

sgcChat: 자체 서버에서 운영하는 팀 채팅

지원 데스크, 현장 팀, 사내 도구에는 사용자가 이미 사용법을 아는 채팅이 필요합니다. 채팅 뷰는 작성자별로 메시지를 아바타와 이름과 함께 묶어 보여주고, 온라인, 자리 비움, 다른 용무 중 상태와 입력 중인 사람을 표시하며, 각 메시지를 전송됨, 전달됨, 읽음으로 표시합니다. 사용자는 메시지에 답장하고, 리액션을 달고, 자신의 메시지를 편집하거나 삭제하며, 이미지 썸네일과 파일 칩이 있는 첨부 파일을 보낼 수 있습니다.

sgcChat의 아바타, 접속 상태, 읽음 확인이 있는 팀 채팅
접속 상태, 입력 중 표시, 읽음 확인이 있는 팀 채팅.

채팅은 특정 서버에 의존하지 않습니다. TsgcChatEventTransport는 모든 메시지, 입력 상태 변경, 수신 확인, 리액션을 문서화된 JSON 프레임으로 여러분의 코드에 전달합니다. sgcWebSockets를 사용하면 TsgcChatTransport_WebSocket이 클라이언트를 연결하고, TsgcChatServer_WebSocket이 채널의 클라이언트 간에 메시지를 중계하고, 각 사용자의 접속 상태를 유지하며, 나중에 참여한 사용자에게 최근 메시지를 보냅니다. 릴레이는 서비스나 콘솔 프로그램에서 실행됩니다.

function CreateRelay(aOwner: TComponent; aPort: Integer)
  : TsgcChatServer_WebSocket;
var
  oServer: TsgcWebSocketServer;
begin
  oServer := TsgcWebSocketServer.Create(aOwner);
  oServer.Port := aPort;
  // the relay needs no main thread
  oServer.NotifyEvents := neNoSync;

  Result := TsgcChatServer_WebSocket.Create(aOwner);
  Result.Server := oServer;
  // the last 100 messages of every channel go to late joiners
  Result.HistoryCount := 100;

  oServer.Active := True;
end;

위의 두 Delphi 샘플은 sgcUI와 sgcWebSockets 소스를 대상으로 Delphi 13(Win32)에서 컴파일된 sgcChat 도움말 샘플을 변경 없이 복사한 것입니다.

WebSocket 팀 채팅에는 All-Access에 포함된 sgcWebSockets가 필요합니다. TsgcChatTransport_WebSocket과 TsgcChatServer_WebSocket은 sgcChatWS 브리지 패키지(.NET: esegece.sgcChat.sgcWebSockets)에 있습니다. sgcWebSockets를 사용하지 않는 경우 TsgcChatEventTransport가 채팅을 임의의 백엔드에 연결합니다.

sgcChat: 네이티브 Markdown 뷰어

채팅 말풍선 뒤에서 동작하는 엔진은 독립된 컨트롤로도 제공됩니다. TsgcVCLMarkdownViewer와 TsgcFMXMarkdownViewer는 제목, 강조, 인용, 목록, 작업 목록, 표, 링크, 이미지를 표시하고, Pascal, C#, C++, JavaScript, Python, JSON, SQL 등의 코드 블록을 구문 강조합니다. AppendMarkdown은 텍스트가 도착하는 대로 추가하며, 사용자는 텍스트나 코드 블록 전체를 선택하거나 복사 버튼으로 복사할 수 있습니다. 릴리스 노트, 도움말 페이지, Markdown으로 작성된 메시지에 사용하세요.

라이트 테마의 sgcChat Markdown 뷰어
Markdown 뷰어, 라이트
다크 테마의 sgcChat Markdown 뷰어
Markdown 뷰어, 다크

스위트의 나머지 제품과 어우러지는 sgcChat

채팅은 sgcUI의 라이트, 다크, Fluent 테마를 따릅니다. 아랍어나 히브리어 대화는 좌우가 반전되며, 컨트롤의 텍스트는 12개의 sgcUI 언어로 번역되어 있습니다. Windows에서 채팅 뷰는 스크린 리더에 작성자와 각 메시지의 시간을 함께 제공하는 메시지 목록으로 노출됩니다. 대화 모델, Markdown 문서, 뷰는 VCL이나 FireMonkey에 의존하지 않으므로, 서비스는 창 없이도 대화나 Markdown 문서를 SVG 또는 PNG로 렌더링할 수 있으며, Linux64에서도 마찬가지입니다.

구성 요소는 TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput, TsgcVCLMarkdownViewer이며, FireMonkey용으로 TsgcFMX 접두사를 붙인 동일한 세트가 있고, WinForms, WPF, Avalonia에도 TsgcWinFormsChatPanel, TsgcWpfChatPanel, TsgcAvaloniaChatPanel 같은 동일한 컨트롤이 있습니다. 데모는 AI 어시스턴트, 릴레이 서버가 포함된 팀 채팅 클라이언트, Markdown 뷰어를 다루며, VCL, FireMonkey, C++ Builder, WinForms, WPF, Avalonia용으로 제공됩니다.

sgcChat은 sgcUI Enterprise와 All-Access 번들의 일부로 판매되며, All-Access에는 AI 공급자와 WebSocket 브리지를 위한 sgcWebSockets도 포함됩니다. sgcChat 페이지와 기능 매트릭스를 참조하세요.

스위트 전반: 입력, 데이터, 출력

이번 릴리스의 나머지 부분은 제품 전반의 자잘한 빈틈을 채웁니다. 사용자 입력을 받는 컨트롤, 데이터셋을 양방향으로 따라가는 데이터 바인딩, 그리고 애플리케이션에서 화면을 내보내는 더 많은 방법입니다.

sgcGauges: 입력 게이지와 스킨

네 가지 입력 게이지 TsgcVCLKnobGauge, TsgcVCLSliderGauge, TsgcVCLToggleSwitchGauge, TsgcVCLPushButtonGauge(FireMonkey에서는 TsgcFMX, WinForms, WPF, Avalonia에서도 같은 이름)를 사용하면 사용자가 마우스, 터치, 휠, 키보드로 값을 설정할 수 있습니다. OnUserChange는 사용자가 만든 변경에 대해서만 발생하며, 스크린 리더는 이를 슬라이더, 토글 스위치, 버튼으로 인식합니다. sgcGauges는 이제 아래 HMI 팩의 탱크 및 프로세스 심볼 게이지를 포함해 열여섯 가지 게이지 유형을 제공합니다.

Skin은 모든 게이지에 새로운 외형을 부여합니다. Classic, Modern, Industrial, ISA101, Dark 중에서 고르거나 sgcGaugesRegisterSkin으로 등록한 자체 스킨을 사용할 수 있습니다. TsgcGaugeDataLink는 데이터셋 필드를 임의의 게이지에 표시하고, 입력 게이지의 변경 내용을 필드에 다시 기록합니다. sgcGauges 기능과 입력 게이지 도움말을 참조하세요.

실시간 양방향 데이터 바인딩

제품들은 Delphi의 TDataSet(.NET에서는 DataTable)이 변경되는 동안 이를 따라가며, 편집 기능이 있는 제품은 사용자의 변경 내용을 다시 기록합니다.

sgcDiagram, sgcPivotGrid, sgcGauges, sgcDashboard는 .NET에도 같은 바인딩이 있습니다. sgcUI 기능 매트릭스에서 각 에디션에 포함되는 내용을 확인할 수 있습니다.

sgcPlanner: Outlook 반복 일정, Google 알림, 수용 능력

TsgcPlannerGraphSync는 이제 Outlook 반복 일정을 RRULE이 있는 하나의 반복 항목으로 가져오고, 변경된 발생분은 수정된 발생분으로, 취소된 발생분은 예외로 가져오며, 플래너에서 만든 반복 일정을 Outlook으로 다시 보냅니다. TsgcPlannerGoogleSync는 이벤트가 업데이트될 때 플래너에서 변경한 알림을 Google Calendar로 보내고, Google에서 변경한 알림을 다시 읽어 옵니다. 리소스별 Capacity(정규직 1명은 1, 반일 근무는 0.5, 3명 팀은 3)는 부하 히스토그램의 수용 능력 선을 결정하며, Microsoft Project XML에서는 MaxUnits로 읽고 씁니다. sgcPlanner 기능을 참조하세요.

sgcDashboard: 웹으로 게시하고, 어디서나 지도 타일

SaveToHTML은 대시보드를 하나의 독립된 HTML 페이지로 저장합니다. 각 타일은 인쇄에 사용되는 것과 같은 코드로 SVG로 그려지고, 대시보드의 브레이크포인트를 따르는 CSS 그리드에 배치되며, 모든 타일에는 제목과 스크린 리더를 위한 대체 텍스트가 있습니다. 새로 고침 URL이 없으면 페이지에는 스크립트가 전혀 없습니다. .NET에서는 이제 WPF와 Avalonia에도 지도 타일이 있으며, 지도가 대시보드의 인쇄, PDF, HTML 출력에도 나타납니다. 웹 게시 도움말과 sgcDashboard 기능을 읽어 보세요.

sgcMaps: 어떤 캔버스에든 지도 그리기

TsgcVCLMap, TsgcFMXMap, WinForms SgcMapControl의 DrawTo는 타일이 로드된 현재 뷰를 임의의 sgcUI 캔버스의 사각형 영역에 그리며, WPF와 Avalonia 지도도 모든 sgcUI 캔버스에 렌더링됩니다. 이렇게 해서 대시보드 타일의 지도가 인쇄, PDF, HTML 페이지에 도달합니다. sgcMaps 기능을 참조하세요.

sgcWizard: 전환 효과와 요약 페이지

Transition은 페이지 전환을 슬라이드, 페이드 또는 둘 다로 애니메이션하며 오른쪽에서 왼쪽으로 쓰는 레이아웃에서는 반전되고, ReduceMotion은 Windows 애니메이션 설정을 따릅니다. ShowSummary를 사용하면 마법사가 마지막 페이지를 추가하여 사용자가 방문한 모든 페이지에서 입력한 필드와 값을 나열하며, 비밀번호는 가려지고 각 페이지로 돌아가는 Edit 링크가 제공됩니다. sgcWizard 기능과 요약 페이지 도움말을 참조하세요.

sgcReports: 스크립팅과 모든 플랫폼의 FireMonkey 미리 보기

TsgcReport.Script는 Pascal과 비슷한 작은 언어로 작성한 프로시저를 보관하며, 보고서 정의와 JSON에 저장됩니다. 보고서는 시작할 때와 끝날 때, 그리고 각 밴드와 각 항목의 인쇄 전후에 스크립트를 실행하므로, 스크립트가 현재 인쇄에 대해 밴드를 숨기거나 항목의 텍스트, 글꼴 색, 높이를 바꿀 수 있습니다. VCL, FireMonkey, WinForms, WPF, Avalonia의 디자이너는 오류의 줄과 열을 보여주는 Check 버튼으로 스크립트를 편집합니다. FireMonkey 미리 보기는 Windows, macOS, iOS, Android에서 실행되며 터치 팬과 핀치 줌을 지원하고, iOS와 Android에서는 인쇄와 PDF 저장이 시스템 공유 시트를 엽니다. sgcReports 기능과 스크립팅 도움말을 참조하세요.

.NET용 sgcPDF: WPF와 Avalonia에서 주석 편집과 양식 채우기

WPF와 Avalonia 뷰어도 이제 WinForms 뷰어와 같은 일을 합니다. 사용자는 마우스로 주석을 만들고, 이동하고, 크기를 조정하고, 편집하고, 삭제할 수 있으며(AnnotationEditing과 AnnotationTool), FormFilling으로 텍스트 필드, 확인란, 라디오 버튼, 콤보 상자, 목록 상자를 채울 수 있고, Tab 키는 탭 순서대로 필드를 이동합니다. sgcPDF 기능을 참조하세요.

모든 플랫폼에서 확인한 접근성

모든 제품 데모의 UI Automation 트리, 즉 내레이터와 NVDA 같은 스크린 리더가 읽는 트리를 VCL, FireMonkey, WinForms, WPF, Avalonia에서 UI Automation 클라이언트로 점검했으며, 발견된 문제는 수정했습니다. VCL 에디터는 이제 필드의 값 대신 레이블을 알려 주고, 플랫 내비게이션 바는 트리가 아니라 목록으로 노출되며, WinForms와 WPF 상태 표시줄은 더 이상 키보드 포커스를 받지 않고, Avalonia 그리드의 셀은 더 이상 열 이름을 반복하지 않으며, Avalonia 컨트롤의 차트 포인트와 그 밖의 그려진 항목은 화면상의 위치를 보고합니다.

Visual Studio 스마트 태그와 XAML

69개 WinForms 도구 상자 구성 요소 전부의 스마트 태그를 디자인 화면에서 테스트했습니다. 모든 속성, 컬렉션 에디터, 데이터 소스 목록, 액션, 동사가 대상입니다. WPF와 Avalonia에서는 sgcDashboard의 타일과 sgcGauges의 스킨을, 다른 제품의 열, 필드, 시리즈와 같은 sgc 접두사를 사용하여 XAML에서 선언합니다.

sgcEditors: 레이아웃 컨트롤과 데이터 폼

새 레이아웃 컨트롤 TsgcVCLLayoutControl과 TsgcFMXLayoutControl(WinForms, WPF, Avalonia에도 같은 이름)은 폼의 컨트롤을 그룹, 탭 그룹, 열로 배치하며, 캡션을 하나의 너비로 맞추고, 사용자가 끌 수 있는 스플리터와 오른쪽에서 왼쪽 레이아웃을 지원합니다. SaveLayout과 LoadLayout은 사용자가 만든 배치를 JSON으로 보관합니다. 레이아웃 컨트롤은 Community를 포함한 모든 에디션에 있습니다. Delphi Community에는 sgcEditors용 디자인 타임 패키지가 없으므로 그곳에서는 코드로 생성합니다.

데이터 폼은 그 위에 만들어집니다. TsgcVCLDataForm과 TsgcFMXDataForm은 TDataSet에서, 또는 BindObject로 클래스의 published 속성에서 완전한 편집 폼을 생성하며, WinForms, WPF, Avalonia 데이터 폼은 DataTable, 목록 또는 객체를 받습니다. 각 필드는 sgcEditors 컨트롤, sgcUICore 유효성 검사기의 규칙, 그룹이나 탭 안의 자리를 갖고, 내비게이터가 레코드를 탐색, 추가, 편집, 삭제, 저장합니다. 스마트 붙여넣기는 편집기가 이미 쓰는 AI 계층을 통해 붙여넣은 텍스트로 레코드 전체를 채우고 채운 필드를 표시합니다. 데이터 폼은 Registered 에디션에 있으며 VCL, FireMonkey, C++Builder, WinForms, WPF, Avalonia에서 사용할 수 있습니다.

uses
  Forms, Controls, DB,
  sgcUICore_AI, sgcEditors_DataForm, sgcEditors_VCL_DataForm;

function CreateCustomerForm(aOwner: TForm; aSource: TDataSource;
  aProvider: TsgcUIAIProvider): TsgcVCLDataForm;
var
  oField: TsgcDataFormField;
begin
  Result := TsgcVCLDataForm.Create(aOwner);
  Result.Parent := aOwner;
  Result.Align := alClient;
  // an open dataset: one field, one editor and one rule per TField
  Result.DataSource := aSource;
  oField := Result.Fields.FindField('EMAIL');
  oField.Kind := edfEmail;
  oField.Required := True;
  oField.Group := 'Contact';
  Result.Fields.FindField('PHONE').Group := 'Contact';
  Result.RebuildEditors;
  // the Smart Paste button of the navigator fills every field from the
  // clipboard; without a provider a local parser reads "Name: value" lines
  Result.Provider := aProvider;
end;

sgcEditors 기능과 데이터 폼 도움말을 참고하세요.

sgcUI HMI Pack: 탱크, P&ID, 알람, NumPad

HMI 팩은 운영자 패널, 탱크 저장소, 펌프장 같은 플랜트 화면, 즉 프로세스 화면을 sgcUI에 가져옵니다. 새로운 제품이 아닙니다. 각 구성 요소는 자신이 확장하는 제품 안에 있고 그 제품의 에디션을 따르며, VCL과 FireMonkey, C++Builder, .NET의 WinForms, WPF, Avalonia에서 사용할 수 있습니다. sgcUIApplyISA101을 한 번 호출하면 모든 sgcUI 컨트롤이 회색의 ISA-101 방식으로 바뀌고, 색상은 비정상 상태와 알람에만 남습니다.

플랜트의 주도권은 애플리케이션에 있습니다. 애플리케이션이 자체 드라이버, 데이터베이스 또는 게이지 브리지에서 값을 가져오고, 알람을 발생시킬 시점을 결정합니다. OPC UA나 Modbus 드라이버는 없습니다. 탱크 및 프로세스 심볼 게이지, 알람 목록, NumPad는 Community를 포함한 모든 에디션에 있으며, P&ID 스텐실, 프로세스 상태와 애니메이션 배관, 게이지 피드, 알람 확인 로그는 Registered 에디션 기능입니다. HMI 스위트 데모는 시뮬레이터가 구동하는 작은 탱크 저장소에 이 구성 요소들을 한데 모았습니다. sgcUI HMI Pack 페이지와 HMI 팩 도움말을 읽어 보세요.

sgcUI Realtime UI Pack: 접속 상태, 알림, 활동 피드, 실시간 로그

Realtime UI Pack은 Delphi, C++Builder, .NET용 sgcUI에 실시간 화면에 필요한 구성 요소를 제공합니다. 새 제품이 아닙니다. 각 구성 요소는 그것이 확장하는 제품 안에 들어 있습니다. sgcUICore는 아바타, 아바타 그룹, 접속 상태 표시기가 있는 접속 상태 모델을 추가합니다. sgcNavigation은 토스트, 날짜별로 묶인 수신함, 카테고리와 채널별 환경설정을 갖춘 알림 센터를 추가하며, sgcToolbar의 TsgcToolbarBadgeLink는 툴바 또는 리본 항목에 읽지 않은 수를 표시합니다. sgcDashboard는 활동 피드와 감사 추적을 독립 컨트롤과 대시보드 타일로 추가하고, sgcGrid는 레벨, 필터, 끝 따라가기, 일시 중지, 내보내기를 갖춘 실시간 로그 뷰어를 추가합니다.

각 모델은 변경마다 JSON 메시지 하나를 받습니다. Registered 에디션에서는 sgcUICoreWS 브리지의 WebSocket, MQTT, SSE 실시간 소스가 코드 없이 sgcWebSockets에서 이들을 구동합니다. 각 컨트롤은 해당 제품의 에디션에 포함됩니다. 서버가 없거나 Community 빌드에서는 애플리케이션이 각 모델의 API로 모델을 갱신합니다. sgcUI Realtime UI Pack 페이지를 읽어 보십시오.

모든 제품을 위한 시작하기 가이드

이제 모든 sgcUI 제품에는 Delphi(VCL)용 QuickStart 데모 다섯 개와 시작하기 가이드가 포함되며, 가이드는 데모 옆의 HTML과 PDF로 제공됩니다. 데모는 첫 폼부터 작은 완성 애플리케이션까지 이어지고, 가이드는 각 단계를 설명합니다. sgcGrid 가이드, sgcCharts 가이드, sgcChat 가이드부터 시작해 보세요.

16개의 가이드는 모두 sgcUI 빠른 시작의 가이드 섹션에 나열되어 있습니다.

sgcChat과 sgcUI 2026.11을 사용해 보세요

Delphi용 체험판 하나와 C++ Builder용 체험판 하나로 16개의 sgcUI 제품이 모두 설치됩니다.

질문이나 의견이 있으신가요? 문의해 주세요. 코드를 작성한 사람들이 직접 답변해 드립니다.