sgcWebSockets 2026.10

· 릴리스
sgcWebSockets 2026.10

sgcWebSockets 2026.10이 출시되었습니다. 이번 버전에는 두 가지 흐름이 있습니다. sgcHTML은 비즈니스 웹 애플리케이션에 필요한 부분들을 갖추어 더 이상 손으로 작성하지 않아도 되게 했고, 암호화는 외부 라이브러리를 단 하나도 추가하지 않고 포스트 퀀텀으로 전환했습니다.

웹 애플리케이션: 지루한 부분, 끝냈습니다

세션, 로그인, CSRF. 새로운 TsgcHTMLAuth 컴포넌트와 그 세션 저장소는 쿠키를 유지하고, 로그인과 로그아웃 요청에 응답하고, 유휴 세션을 종료하고, 실패한 로그인 시도를 제한합니다. CSRF 토큰은 meta 태그에 담겨 전달되고, htmx가 모든 요청에 알아서 이를 추가하며, 서버는 이를 가지고 있지 않은 post 요청을 거부합니다.

FAuth := TsgcHTMLAuth.Create(Self);
FAuth.SessionStore := TsgcHTMLSessionStore_Memory.Create(Self);
FAuth.CookieName := 'app_session';
FEngine.Auth := FAuth;

라우트처럼 읽히는 라우트. 경로 매개변수, 메서드 필터, 그리고 헤더, 쿠키, 본문에 대한 접근:

with FRouter.Routes.Add do
begin
  Path := '/customers/{id}/edit';
  Methods := [hrmGet, hrmPost];
  RequireLogin := True;
  RequireRoles := 'admin,sales';
end;

테스트할 수 있는 페이지. DispatchDirect는 뒤에 소켓이 전혀 없어도 요청에 응답하며, 새로운 유닛이 생성된 HTML을 읽어 id, 클래스, 태그, 속성으로 요소를 찾고 페이지를 저장된 사본과 비교하므로, 마크업의 의도치 않은 변경을 고객이 아니라 테스트가 알아차립니다.

애플리케이션처럼 느껴지는 내비게이션. 페이지는 전체 새로고침 없이 전환되며 스크롤 위치와 사용자가 입력하던 내용을 유지하고, 로딩 바, 연결이 끊겼을 때의 대화상자, 요청이 실패했을 때의 메시지를 제공합니다. 이 모든 것은 기본적으로 꺼져 있습니다.

네 가지 핵심 기능

이들 각각에는 별도의 글이 있고 마지막에 링크되어 있으니, 여기서는 그것이 무엇인지만 소개합니다:

Push, 두 가지 방식

Server sent events는 이제 WebSocket 대신 업데이트를 전달할 수 있으며, 연결이 끊긴 동안 놓친 내용을 다시 재생해주고, 일반 HTTP 서버에서도 동작합니다. Web Push는 닫혀 있는 브라우저에도 도달합니다. 여기에는 알림 수신함과 환경설정 테이블이 함께 제공되며, 알림 컴포넌트가 특정 사용자가 어떤 채널을 받을지 결정합니다.

AI: 곧바로 활용할 수 있는 답변

TsgcAIChat은 새로운 ChatJSON 메서드를 통해 OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral에서 사용자가 제공한 스키마를 따르는 JSON을 요청할 수 있으며, 이 메서드는 응답을 파싱하고 읽을 수 없을 경우 파싱 오류를 첨부해 다시 한 번 묻습니다. 채팅 컴포넌트는 이제 이미지도 주고받으며, BaseUrl은 이제 Ollama뿐 아니라 모든 제공자에서 지원되어, 어느 것이든 프록시나 로컬 게이트웨이로 지정할 수 있습니다.

암호화: Object Pascal로 구현한 포스트 퀀텀

ML-KEM(FIPS 203), ML-DSA(FIPS 204), SLH-DSA(FIPS 205), X-Wing 하이브리드 키 캡슐화, 포스트 퀀텀 X.509 인증서와 인증 기관, 그리고 ML-DSA로 서명된 JWT. 이 모든 것이 외부 라이브러리 없이 sgcCrypto 패키지 안에서 Object Pascal로 작성되었으며, NIST의 알려진 응답 벡터에 대해 검증되었습니다.

그 위에는 역시 순수 Pascal로 작성된 네이티브 TLS 1.3 엔진이 있습니다. 클라이언트나 서버는 OpenSSL도 SChannel도 없이 TLS로 통신하며, RFC 10024의 하이브리드 포스트 퀀텀 그룹을 협상하고, ALPN, S N I, 클라이언트 인증서, 그리고 운영체제 신뢰 저장소의 선택적 사용을 지원합니다.

고전 암호화 쪽도 같은 작업에서 강화되었습니다: 블라인딩된 상수 시간 RSA, 상수 시간 타원곡선 스칼라 곱셈과 Ed25519, 테이블을 쓰지 않는 AES와 GHASH, 가져온 개인 키를 공개 키 절반과 대조해 검증하는 절차, 그리고 최소 형태가 아닌 DER 서명의 거부.

언급할 만한 수정 사항

.NET

.NET 라이브러리도 보조를 맞춥니다: ASP.NET Core를 위한 ClaimsPrincipal 브리지가 포함된 인증과 세션, 라우터, 테스트 도우미, SPA 내비게이션, 네이티브 엔드포인트를 갖춘 SSE 전송, 구조화된 출력, AI Data Pack, Web Push, MCP Apps, 그리고 어댑터가 포함된 CRUD 컴포넌트까지, 모두 Delphi와 동일한 API 이름을 사용합니다.

업그레이드

새로운 것은 모두 추가적이며 기본적으로 꺼져 있습니다. 새 유닛을 넣고 패키지를 다시 빌드하면, 기존 애플리케이션은 이전과 정확히 똑같이 동작합니다.

전체 버전

영상으로 보기

이에 관한 짧은 영상eSeGeCe 채널에 있습니다.

질문, 피드백, 마이그레이션 도움이 필요하신가요? 문의하기 — 코드를 작성한 사람들에게서 직접 답변을 받으실 수 있습니다.