공통 언어 기반
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
공통 언어 기반(CLI)은 마이크로소프트, 휴렛 패커드, 인텔 등이 표준화를 시작하여 Ecma International과 ISO 표준으로 제정된 기술 규격이다. CLI는 공통 형식 시스템(CTS), 메타데이터, 공통 언어 사양(CLS), 가상 실행 시스템(VES), 표준 라이브러리로 구성되며, 합리적이고 비차별적인 라이선스 조건으로 제공된다. 마이크로소프트의 .NET Framework, .NET, Mono, Portable.NET 등 다양한 구현체가 존재하며, 동적 언어 지원 및 관련 기술에 대한 정보도 제공한다.
더 읽어볼만한 페이지
- Ecma 표준 - ISO/IEC 646
ISO/IEC 646는 ASCII 기반의 7비트 문자 인코딩 표준으로, 국가별 변형이 존재했으나, 최종 개정판은 ASCII와 호환되도록 정의되었고, 현재는 ITU-T 권고 T.50 IRA가 현행 표준으로 유지되고 있다. - Ecma 표준 - 유니버설 미디어 디스크
유니버설 미디어 디스크(UMD)는 소니 PSP에 사용된 60mm 광 디스크로, 게임, 영상, 음악 콘텐츠를 최대 1.8GB까지 저장하며, DVD와 유사한 지역 코드와 AES 128 비트 암호화를 사용했지만, PSP 외 다른 기기에서 사용 불가 및 디지털 미디어의 발달로 인해 2010년대 초반에 지원이 중단되었다. - 닷넷 프레임워크 - 파워셸
파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다. - 닷넷 프레임워크 - 유니버설 윈도우 플랫폼
유니버설 윈도우 플랫폼(UWP)은 마이크로소프트에서 개발한 애플리케이션 모델로, Windows 10, 11 등 다양한 기기에서 실행되는 앱 개발을 위한 통합 플랫폼이며, Visual Studio를 통해 개발되고 XAML Islands를 통해 기존 WinAPI 기반 애플리케이션에서도 활용 가능하다.
공통 언어 기반 |
---|
2. 규격 및 라이선스
2000년 8월, 마이크로소프트, 휴렛팩커드, 인텔 등 기업이 CLI 표준화를 시작하였다.[5] 2001년 12월, Ecma International(ECMA)에서 비준되었고, 2003년 4월 ISO 표준(ISO/IEC 23271)으로 제정되었다.[1][2] 2006년 11월, JIS X 3016으로 CLI 번역본이 공개되었다.
마이크로소프트와 그 파트너들은 CLI에 대한 특허를 보유하고 있다. Ecma와 ISO/IEC는 구현에 필수적인 모든 특허가 "합리적이고 비차별적인(RAND) 조건"으로 제공되어야 한다고 요구한다. 마이크로소프트는 마이크로소프트 커뮤니티 약속을 통해 특허 소송 없이 CLI 표준을 구현할 수 있도록 보장한다.[6]
3. 구성 요소
공통 언어 기반(CLI) 사양은 다음 다섯 가지 주요 측면을 설명한다.3. 1. 공통 형식 시스템(CTS)
모든 CTS 호환 프로그래밍 언어에서 공유되는 데이터 형식 및 연산 집합이다.
3. 2. 메타데이터(Metadata)
프로그램 구조에 대한 정보는 언어와 도구 간에 참조될 수 있어, 개발자가 사용하지 않는 언어로 작성된 코드를 쉽게 사용할 수 있게 한다.[1]
3. 3. 공통 언어 사양(CLS)
공통 언어 사양(CLS)은 공통 형식 시스템(CTS)의 하위 집합으로, 여러 프로그래밍 언어 간의 상호 운용성을 보장하기 위한 규칙이다. CLS는 소비자, 프레임워크, 확장자에게 적용된다.[1]3. 4. 가상 실행 시스템(VES)
가상 실행 시스템(VES)은 메타데이터를 사용하여 런타임에 별도로 생성된 코드 조각을 결합하여 CLI 호환 프로그램을 로드하고 실행한다. 모든 호환 언어는 공통 중간 언어(CIL)로 컴파일되며, 이는 플랫폼 하드웨어와 추상화된 중간 언어이다. 코드가 실행되면 플랫폼별 VES는 CIL을 특정 하드웨어 및 운영 체제에 따라 기계어로 컴파일한다.
마이크로소프트가 처음 개발한 CLI 표준에서 VES는 공통 언어 런타임(CLR)으로 구현된다.
3. 5. 표준 라이브러리
파일 읽기 및 쓰기와 같은 많은 일반적인 기능을 제공하는 라이브러리 집합이다. 핵심은 기본 클래스 라이브러리(BCL)이다.
4. 동적 언어 지원
공통 중간 언어가 정적 형을 사용하고 있기 때문에, 공통 언어 기반은 자체적으로 동적 형 언어를 지원하지 않는다.[9] 동적 언어 런타임은 CLR을 지원한다.
5. 구현체
CLI는 다음과 같은 다양한 구현체를 가지고 있다.
구현체 | 설명 |
---|---|
.NET 프레임워크 | 마이크로소프트의 초기 CLI 상용 구현체. 윈도우만 지원하며 2020년 11월에 .NET으로 대체되었다. |
.NET | 이전 이름은 .NET Core이며, MIT 라이선스로 출시된 .NET 프레임워크의 무료 및 오픈 소스 멀티 플랫폼 후속 제품이다. |
.NET Compact Framework | 휴대용 장치 및 Xbox 360용 마이크로소프트 CLI 상용 구현체. |
.NET Micro Framework | 리소스 제약 장치를 위한 CLI 오픈 소스 구현. |
Mono | 모바일 및 게임 개발에 주로 사용되는 CLI 및 관련 기술의 대안적 오픈 소스 구현. |
DotGNU | 2001년 1월에 시작된 GNU 프로젝트의 일부분이었으나 현재는 폐지됨. 마이크로소프트 .NET 프레임워크에 대한 자유 및 오픈 소스 소프트웨어 대안을 제공하는 것을 목표로 했다. |
Portable.NET | DotGNU 프로젝트의 일환으로 오픈 소스 구현이었지만, 2012년에 폐지되었다. |
PlayStation Suite | 소니 컴퓨터 엔터테인먼트에서 여러 기종 공통 환경을 목표로 개발. ECMA-335 커스텀 사양. |
5. 1. 마이크로소프트
- 닷넷 프레임워크(.NET Framework)는 데스크톱 시스템을 위한 마이크로소프트의 CLI 상용 구현이다. 윈도우만 지원하며, 2020년 11월에 .NET으로 대체되었다.[1][2]
- .NET은 닷넷 프레임워크의 후속으로, MIT 라이선스로 출시된 무료 및 오픈 소스 멀티 플랫폼 구현이다.
- .NET Compact Framework는 휴대용 장치 및 Xbox 360을 위한 마이크로소프트의 CLI 상용 구현이다.
- .NET Micro Framework는 리소스 제약 장치를 위한 CLI 오픈 소스 구현이다.
- 공유 소스 공통 언어 기반(SSCLI)은 공유 소스 라이선스 프로그램 하에서 마이크로소프트가 제공하는 CLI 참조 구현이다.[5][6]
- 실버라이트는 마이크로소프트 윈도우와 OS X을 위한 "웹 브라우저에 사용되는 기능"이다.
5. 2. 오픈 소스
- 모노는 주로 모바일 및 게임 개발에 사용되는 CLI 및 관련 기술의 오픈 소스 구현이다.[1]
- 포터블 닷넷은 닷GNU 프로젝트의 일부였던 오픈 소스 구현이지만, 2012년에 폐지되었다.[1]
5. 3. 기타
PlayStation Suite는 소니 컴퓨터 엔터테인먼트가 여러 기종에서 공통으로 사용할 수 있는 환경을 만들기 위해 구현한 것으로, ECMA-335 커스텀 사양을 따랐다.[1]6. 관련 기술 (참조, 일본어 문서)
- '''.NET Framework''' - 마이크로소프트의 데스크톱용 상용 구현이다. 다양한 리소스, 라이브러리, 툴도 포함되어 있다.
- '''공통 언어 기반(CLI)''' - 마이크로소프트의 참조 구현이다. 공유 소스 라이선스 하에 이용 가능하다.
- '''.NET Compact Framework''' - 마이크로소프트의 휴대용 기기용 상용 구현이다.
- '''Mono''' - 오픈 소스 구현으로 알려져 있다.
- '''Portable.NET''' - DotGNU 프로젝트의 일환. 이 역시 오픈 소스 구현이었지만, 2012년에 폐지되었다.
- '''PlayStation Suite''' - 소니 컴퓨터 엔터테인먼트에 의한, 여러 기종 공통 환경을 목표로 한 구현이다. ECMA-335 커스텀 사양이다.[1]
7. 외부 링크
- Standard ECMA-335, Common Language Infrastructure (CLI) (Ecma International)
- ISO/IEC 23271, Common Language Infrastructure (ISO)
참조
[1]
웹사이트
ISO/IEC 23271:2012 - Information technology -- Common Language Infrastructure (CLI)
http://www.iso.org/i[...]
[2]
웹사이트
ECMA-335
2012-06
[3]
웹사이트
Introduction to Advanced Windows Store App Development using HTML5 and JavaScript
2013-10-15
[4]
웹사이트
WinRT demystified
2011-09-15
[5]
웹사이트
The Ecma C# and CLI Standards
http://port25.techne[...]
2009-09-26
[6]
웹사이트
'[MS-DEVCENTLP]: Microsoft Community Promise'
https://learn.micros[...]
2023-03-16
[7]
웹사이트
DotGNU Project
http://www.dotgnu.or[...]
2023-12-11
[8]
웹사이트
Portable Entertainment Development - the console approach
http://www.scribd.co[...]
SCEE
2012-02-22
[9]
문서
CLR Dynamic languages under the hood
2007-01-03
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com