.NET 11 Preview 6 주요 변경 사항 — Java 개발자가 주목해야 하는 이유
.NET 11 Preview 6가 공개되며 C#, ASP.NET Core, EF Core 등 핵심 영역에 걸친 업데이트가 발표됐다. 직접적인 기술 스택은 다르지만, Java 백엔드 개발자 입장에서도 이 릴리즈는 의미 있는 벤치마크가 된다. 웹 프레임워크와 ORM이 어떤 방향으로 발전하는지를 살펴보면, Spring 생태계에서 앞으로 어떤 기능이 강조될지 방향성을 가늠할 수 있기 때문이다.
ASP.NET Core의 API 보안 및 유효성 검사 개선
이번 릴리즈에서 가장 눈에 띄는 부분은 ASP.NET Core에 추가된 비동기 유효성 검사(Async Validation) 와 자동 CSRF 보호다. 비동기 유효성 검사는 DB 조회나 외부 API 호출이 필요한 검증 로직을 요청 파이프라인 안에서 자연스럽게 처리할 수 있게 해준다. Java 생태계에서는 Spring Validation의 ConstraintValidator가 동기적으로 동작하는 한계가 있어, 비동기 검증은 별도 서비스 레이어에서 처리해야 했다. 이 변화는 프레임워크 수준에서 비동기 검증을 공식 지원한다는 점에서 주목할 만하다.
자동 CSRF 보호는 개발자가 명시적인 설정 없이도 기본적인 보안을 보장받을 수 있게 한다. Spring Security에서도 CSRF 보호는 기본 활성화되어 있지만, REST API 환경에서는 종종 비활성화하고 별도 토큰 방식을 채택하는 경우가 많다. 프레임워크 기본값이 보안 친화적으로 설계되는 트렌드는 Java 진영에서도 참고할 만하다.
OpenAPI 3.2 기본 지원 역시 중요하다. API 문서화와 계약 기반 개발이 기본값으로 자리잡는 흐름은 Spring의 springdoc-openapi와 같은 방향이다. 설정 없이 최신 스펙을 따르는 방식은 팀 생산성과 클라이언트 연동 품질을 동시에 높인다.
EF Core의 FULL OUTER JOIN 지원과 C# 언어 확장
EF Core는 이번 업데이트에서 FULL OUTER JOIN 변환을 공식 지원하기 시작했다. ORM 수준에서 FULL OUTER JOIN을 직접 표현하는 것은 JPA/Hibernate에서도 오랫동안 제약이 있었던 영역이다. Hibernate는 @JoinFormula나 네이티브 쿼리로 우회해야 했는데, EF Core가 이를 LINQ 쿼리로 자연스럽게 변환해주는 기능을 추가한 것은 ORM 표현력 측면에서 한 단계 진보한 것으로 볼 수 있다.
C# 언어 레벨에서는 확장 인덱서(Extension Indexers) 와 내장 유니온 타입(Built-in Union Types) 이 도입됐다. 유니온 타입은 하나의 변수가 여러 타입 중 하나를 가질 수 있음을 명시적으로 표현하는 타입 시스템 기능이다.
// 유니온 타입 개념적 예시
Union<int, string> result = GetValue();
Java에서는 이와 유사한 패턴을 sealed interface와 record를 조합한 대수적 타입으로 구현한다.
// Java sealed interface로 유사 패턴 구현
sealed interface Result permits Success, Failure {}
record Success(String value) implements Result {}
record Failure(String error) implements Result {}
언어 수준에서 유니온 타입을 지원하면 에러 핸들링과 상태 표현이 훨씬 명확해진다. Java에서도 sealed 계층 구조와 패턴 매칭(switch 표현식)을 적극 활용하면 유사한 표현력을 달성할 수 있다.
정리
- ASP.NET Core의 비동기 유효성 검사·자동 CSRF 보호·OpenAPI 3.2 기본 지원은 프레임워크가 보안과 생산성을 기본값 수준에서 보장하는 방향으로 진화하고 있음을 보여준다.
- EF Core의 FULL OUTER JOIN 지원은 ORM 표현력의 중요한 진전이며, JPA/Hibernate의 한계와 비교해 설계 시 참고할 수 있다.
- C#의 유니온 타입 도입은 타입 안전한 에러·상태 표현 트렌드를 반영하며, Java에서는
sealed interface+ 패턴 매칭으로 유사한 설계를 적용할 수 있다.