C샵 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
[[파일:C샵 로고.png|썸네일|200픽셀|'''C샵'''(C sharp)]]
 
[[파일:C샵 글자.png|썸네일|300픽셀|'''C샵'''(C sharp)]]
 
 
 
[[파일:네오 글자.png|썸네일|300픽셀|'''[[네오]]'''(NEO)]]
 
[[파일:네오 글자.png|썸네일|300픽셀|'''[[네오]]'''(NEO)]]
 
[[파일:스트라티스 글자.png|썸네일|300픽셀|'''[[스트라티스]]'''(Stratis)]]
 
[[파일:스트라티스 글자.png|썸네일|300픽셀|'''[[스트라티스]]'''(Stratis)]]
8번째 줄: 5번째 줄:
  
 
== 개요 ==
 
== 개요 ==
2000년 7월에 개최되었던 Professional Developers Conference(PDC)에서 [[닷넷]](.NET) 프로젝트와 함께 발표된 객체 지향 프로그래밍 언어이다. 한국어로 쓸 때는 '씨샵' 또는 '씨샾'이라고 쓴다. [[마이크로소프트]]의 [[앤더스 헬스버그]](Anders Hejlsberg)에 의해 고안되었으며, 1983년에 등장한 [[C++]]와 1995년에 등장한 [[자바]](Java)에서 강한 영향을 받았다. C#은 자바의 단점을 보완하고 대체할 수 있는 언어이며, [[컴포넌트]] 지향 프로그래밍 언어이다.
+
2000년 7월에 개최되었던 Professional Developers Conference(PDC)에서 [[닷넷]](.NET) 프로젝트와 함께 발표된 객체 지향 프로그래밍 언어이다. 한국어로 쓸 때는 '씨샵' 또는 '씨샾'이라고 쓴다. [[마이크로소프트]]의 [[앤더스 헬스버그]](Anders Hejlsberg)에 의해 고안되었으며, 1983년에 등장한 [[C++]]와 1995년에 등장한 [[자바]](Java)에서 강한 영향을 받았다. C#은 자바의 단점을 보완하고 대체할 수 있는 언어이며, 컴포넌트 지향 프로그래밍 언어이다.
  
 
== 역사 ==
 
== 역사 ==
18번째 줄: 15번째 줄:
 
== 특징 ==
 
== 특징 ==
 
=== 자바와의 관계 ===  
 
=== 자바와의 관계 ===  
[[자바]](Java)가 [[자바가상머신]](JVM)이 필요하듯 C#은 [[닷넷]] [[프레임워크]]가 필요하다. 닷넷 프레임워크 대신 비교적 작은 사이즈의 가상머신에 올려서 실행시키는 방법도 있다. 성능 때문에 많은 포화를 맞았고 C#이 상대적으로 큰 논란 없이 입성하기는 했다. 일단은 자바보다 차세대 언어이므로 자바보다 성능적으로 우위인 부분이 많긴 하지만 (비슷한 코드에서 평균적으로 10~20% 정도 빠르다.) 여전히 C/C++보다는 느린 부분이 있는 것 또한 사실이다. 이는 가비지 컬렉션이 있는 언어의 고질적인 문제점이라 어쩔 수 없다.
+
[[자바]](Java)가 [[자바가상머신]](JVM)이 필요하듯 C#은 [[닷넷]] [[프레임워크]]가 필요하다. 닷넷 프레임워크 대신 비교적 작은 사이즈의 가상머신에 올려서 실행시키는 방법도 있다. 성능 때문에 많은 포화를 맞았고 C#이 상대적으로 큰 논란 없이 입성하기는 했다. 일단은 자바보다 차세대 언어이므로 자바보다 성능적으로 우위인 부분이 많긴 하지만 (비슷한 코드에서 평균적으로 10~20% 정도 빠르다.) 여전히 C/C++보다는 느린 부분이 있는 것 또한 사실이다. 이는 프레임워크 언어의 고질적인 문제점이라 어쩔 수 없다.
  
 
=== 호환성 및 범용성 ===
 
=== 호환성 및 범용성 ===
24번째 줄: 21번째 줄:
  
 
=== 모노 ===  
 
=== 모노 ===  
[[윈도우]] 이외의 운영체제에서도 C# 사용이 가능하도록 모노라는 프로젝트가 진행 중이다. 아직 그다지 완전하다고 볼 수는 없다. MonoDevelop/Xamarin Studio IDE가 제공되어, 개발도 다른 [[플랫폼]]에서 할 수는 있지만 [[비주얼 스튜디오]]만큼의 편의성을 제공하지는 못한다. MS는 오랫동안 오픈소스 진영에 배타적인 태도를 보여 왔고, [[닷넷]]에 공개되지 않은 뭔가, 또는 MS에 특허가 있는 것을 넣어서 MS가 만들지 않은 프레임워크는 대부분의 기존 프로그램(.NET 프레임워크용으로 만든)이 잘 안 돌아가는 무용지물이 되거나, 나중에 특허 소송으로 프로젝트를 아예 중단시켜 버릴 가능성을 완전히 배제할 수 없었다. 이 때문에 [[리처드 스톨먼]] 등 여러 사람이 'C#과 모노를 써서는 안 된다'고 한 적도 있다. 결국 MS는 2006년 커뮤니티 공약이라는 것을 발표하면서 ECMA 표준에 의한 구현에 대해서는 특허권을 주장하지 않기로 했다. 하지만, 얼마 지나지 않아 모노의 주 구성 요소 대부분이 저 커뮤니티 공약의 적용 범위에 포함되지 않기 때문에 모노가 아직도 언제든지 특허 소송을 통해 중단될 수 있다는 것이 밝혀져 모노 위험 요소 설이 다시 부상하였다. 그러나 2010년대 이래 MS는 친 오픈소스 적인 행보를 보여, 2014년엔 [[닷넷]]을 오픈소스로 공개하였으며, MS가 모노 프로젝트의 주요 메인테이너인 Xamarin을 인수하면서 이러한 우려는 종식되었다. 그 후 MS가 Xamarin 인수 이후 사실상 프로젝트 자체가 MS로 넘어갔다. Git 기여자를 보면 [[마이크로소프트]] 개발자가 대다수다. 2015년 4월 29일에 배포된 Mono 4.0버전에서는 아예 닷넷의 오픈소스 플랫폼인 .NET Core가 적용되었다. 2017년 5월에 비주얼 스튜디오의 macOS 버전이 공개되어서, macOS에서도 정식으로 C# 개발을 할 수 있게 되었다. 자신이 유료 IDE에 돈을 지불할 의향이 있다면 JetBrains의 Rider라는 선택지가 있다. 자바용 [[IDE]]로 유명한 [[인텔리제이 아이디어]](IntelliJ IDEA)를 베이스로 하고 있어 리눅스를 포함한 크로스 플랫폼이 지원되고 완성도가 높으며, MonoDevelop보다 편리하고 다양한 기능을 제공한다. 또한 유니티 엔진과의 연동도 뛰어나다.
+
[[윈도우]] 이외의 운영체제에서도 C# 사용이 가능하도록 모노라는 프로젝트가 진행 중이다. 아직 그다지 완전하다고 볼 수는 없다. MonoDevelop/Xamarin Studio IDE가 제공되어, 개발도 다른 [[플랫폼]]에서 할 수는 있지만 비주얼 스튜디오만큼의 편의성을 제공하지는 못한다. MS는 오랫동안 오픈소스 진영에 배타적인 태도를 보여 왔고, [[닷넷]]에 공개되지 않은 뭔가, 또는 MS에 특허가 있는 것을 넣어서 MS가 만들지 않은 프레임워크는 대부분의 기존 프로그램(.NET 프레임워크용으로 만든)이 잘 안 돌아가는 무용지물이 되거나, 나중에 특허 소송으로 프로젝트를 아예 개박살낸 가능성을 완전히 배제할 수 없었다. 이 때문에 리처드 스톨먼 등 여러 사람이 'C#과 모노를 써서는 안 된다'고 한 적도 있다. 결국 MS는 2006년 커뮤니티 공약이라는 것을 발표하면서 ECMA 표준에 의한 구현에 대해서는 특허권을 주장하지 않기로 했다. 하지만, 얼마 지나지 않아 모노의 주 구성 요소 대부분이 저 커뮤니티 공약의 적용 범위에 포함되지 않기 때문에 모노가 아직도 언제든지 특허 소송을 통해 개박살날 수 있다는 것이 밝혀져 모노 위험 요소 설이 다시 부상하였다. 그러나 2010년대 이래 MS는 친 오픈소스 적인 행보를 보여, 2014년엔 [[닷넷]]을 오픈소스로 공개하였으며, MS가 모노 프로젝트의 주요 메인테이너인 Xamarin을 인수하면서 이러한 우려는 종식되었다. 그 후 MS가 Xamarin 인수 이후 사실상 프로젝트 자체가 MS로 넘어갔다. Git 기여자를 보면 [[마이크로소프트]] 개발자가 대다수다. 2015년 4월 29일에 배포된 Mono 4.0버전에서는 아예 닷넷의 오픈소스 플랫폼인 .NET Core가 적용되었다. 2017년 5월에 비주얼 스튜디오의 macOS 버전이 공개되어서, macOS에서도 정식으로 C# 개발을 할 수 있게 되었다. 자신이 유료 IDE에 돈을 지불할 의향이 있다면 JetBrains의 Rider라는 선택지가 있다. 자바용 [[IDE]]로 유명한 [[인텔리제이 아이디어]](IntelliJ IDEA)를 베이스로 하고 있어 리눅스를 포함한 크로스 플랫폼이 지원되고 완성도가 높으며, MonoDevelop보다 편리하고 다양한 기능을 제공한다. 또한 유니티 엔진과의 연동도 뛰어나다.
  
 
=== 닷넷 코어 ===  
 
=== 닷넷 코어 ===  

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)