2021.01.11

MS 닷넷 JSON 시리얼라이저, 'C# 소스 생성기' 도입 예정

Paul Krill | InfoWorld
마이크로소프트 닷넷(.NET) 개발 플랫폼의 JSON 직렬화 라이브러리 ‘System.Text.Json’이 다음 업데이트에서 성능 향상을 위해 C# 소스 코드 생성(C# source code generation)을 추가할 예정이다. 
 
ⓒGetty Images

회사에 따르면 다음과 같은 영역에서 새로운 C# 소스 생성기 기능을 활용해 시리얼라이저를 지원하는 코드를 생성하도록 할 계획이다. 

• 시작 속도 및 런타임 처리량 향상  
• 프라이빗 바이트 사용량 감소
• 애플리케이션 크기 감소
• 런타임 리플렉션을 방지해 IL 링커(IL Linker) 친화성 향상 

‘System.Text.Json’에서 C# 소스 생성을 활용하는 이 기능은 현재 프로토타입 단계에 있다(작년 12월 중순 기준). 오는 2021년 11월 릴리즈될 ‘닷넷 6.0(.NET 6.0)’에서 그 결실을 볼 수 있을 것으로 회사 측은 예상했다. 

한편 ‘System.Text.Json’은 닷넷 객체 타입을 JSON 문자열 또는 그 반대로 변환하는 닷넷(.NET)의 빌트인 JSON 직렬화 라이브러리다. 이는 UTF-8 텍스트 인코딩을 지원하며, 닷넷 코어 3.0(.NET Core 3.0)에서 처음 도입됐다. 또한 라이브러리 타입 ‘Json시리얼라이저(JsonSeralizer)’는 JSON 데이터 처리를 위한 최고 수준의 기능을 제공한다고 마이크로소프트는 덧붙였다. 

2020년 11월 공개된 ‘닷넷 5(.NET 5)’에서는 ‘System.Text.Json’의 성능과 안정성이 향상됐고, Newtonsoft.Json 프레임워크에 익숙한 개발자가 라이브러리를 더 쉽게 채택할 수 있게 됐다. 

이 밖에 ‘System.Text.Json’의 다음 계획은 아래와 같다. 

• 확장된 다형성 직렬화 및 역직렬화 
IAsyncEnumerable<T> 비동기 직렬화 및 역직렬화
snake_case 명명 규칙 추가 
JsonSerializerOptions 기본 설정 변경 

ciokr@idg.co.kr
 



2021.01.11

MS 닷넷 JSON 시리얼라이저, 'C# 소스 생성기' 도입 예정

Paul Krill | InfoWorld
마이크로소프트 닷넷(.NET) 개발 플랫폼의 JSON 직렬화 라이브러리 ‘System.Text.Json’이 다음 업데이트에서 성능 향상을 위해 C# 소스 코드 생성(C# source code generation)을 추가할 예정이다. 
 
ⓒGetty Images

회사에 따르면 다음과 같은 영역에서 새로운 C# 소스 생성기 기능을 활용해 시리얼라이저를 지원하는 코드를 생성하도록 할 계획이다. 

• 시작 속도 및 런타임 처리량 향상  
• 프라이빗 바이트 사용량 감소
• 애플리케이션 크기 감소
• 런타임 리플렉션을 방지해 IL 링커(IL Linker) 친화성 향상 

‘System.Text.Json’에서 C# 소스 생성을 활용하는 이 기능은 현재 프로토타입 단계에 있다(작년 12월 중순 기준). 오는 2021년 11월 릴리즈될 ‘닷넷 6.0(.NET 6.0)’에서 그 결실을 볼 수 있을 것으로 회사 측은 예상했다. 

한편 ‘System.Text.Json’은 닷넷 객체 타입을 JSON 문자열 또는 그 반대로 변환하는 닷넷(.NET)의 빌트인 JSON 직렬화 라이브러리다. 이는 UTF-8 텍스트 인코딩을 지원하며, 닷넷 코어 3.0(.NET Core 3.0)에서 처음 도입됐다. 또한 라이브러리 타입 ‘Json시리얼라이저(JsonSeralizer)’는 JSON 데이터 처리를 위한 최고 수준의 기능을 제공한다고 마이크로소프트는 덧붙였다. 

2020년 11월 공개된 ‘닷넷 5(.NET 5)’에서는 ‘System.Text.Json’의 성능과 안정성이 향상됐고, Newtonsoft.Json 프레임워크에 익숙한 개발자가 라이브러리를 더 쉽게 채택할 수 있게 됐다. 

이 밖에 ‘System.Text.Json’의 다음 계획은 아래와 같다. 

• 확장된 다형성 직렬화 및 역직렬화 
IAsyncEnumerable<T> 비동기 직렬화 및 역직렬화
snake_case 명명 규칙 추가 
JsonSerializerOptions 기본 설정 변경 

ciokr@idg.co.kr
 

X