안녕하세요 돼지왕 왕돼지입니다.
"뇌를 자극하는 C# 4.0 프로그래밍" 이라는 책을 구입하여 오늘부터 공부를 시작해보았습니다.
오늘부터 쓰는 대부분의 글은 Java 언어를 main 으로 개발하고 있는 제가, 즉 Java 개발자가 공부해본 C# 에 대해 정리하는 글이 될 것입니다. 이번 글에서는 C# 의 등장배경과 C, C++ 도 있는데 C# 은 왜 필요한지, 닷넷은 무엇인지에 대해 간단히 정리해보겠습니다.
C# 넌 누구니?
C++ 이 C 언어에 + 1을 했다는 의미, 즉 C + 1 을 프로그래밍적으로 표현한 C++ 이라는 것은 알고 계시죠? 자 이제 이 C++ 에 ++ 를 한번 더 붙여보겠습니다. C++++ 이냐구요? 새로 더하는 ++ 을 기존에 있던 ++ 의 아래에 붙이면 바로 C# 이 됩니다. 이 C# 은 기본적으로는 C++ 을 계승한다는 의미를 가지고 있지만, C와 C++ 과 비교를 한다면 엄밀히 다른 언어입니다.
먼저 C와C++ 이 Bell 연구소에서 탄생한 언어인데 반해, C# 은 Microsoft 사에서 만든 언어입니다.
두번째는 C로 작성한 코드는 C++ 컴파일러가 컴파일 할 수 있습니다. 하지만, C#의 컴파일러는 C 나 C++ 의 코드를 컴파일 하지 못합니다. 다시 말해, 계승을 한다는 취지는 가지고 있지만, C, C++ 과는 엄밀히 다른 언어라는 이야기입니다.
.NET ( 닷넷 ) 에 대한 짧은 이야기.
.NET ( 닷넷 )은 1990년 대 말, 마이크로소프트가 발표한 플랫폼입니다. 뭔지 감이 잘 오지 않으시죠? .NET 에서 지원하는 언어로 작성한 프로그램은 .NET 을 지원하는 모든 단말에서 돌아갈 수 있도록 한다는 의미입니다.
Java 의 JVM 과 비교를 하시면 이해가 쉬울 것 같은데요. Java 는 Write once & Run anywhere ( 한번 코드를 쓰고 어디서든 구동시킨다. ) 라는 특징을 가지고 있죠. 단말에 따라 다른 JVM 만 제공해주면 되는 것입니다.
이 .NET 도 마찬가지로 보시면 되겠습니다. 다만, Java 언어가 아닌, .NET 에서 지원하는 언어들로 작성해야 하며, 한가지가 아닌 여러 가지 언어를 지원한다는 것이 특징이 되겠습니다. 지원하는 언어는 베이직, 포트란, 코볼, 파이썬, C++ 등이 있습니다.
사실 닷넷은 사람들의 관심을 많이 끌지 못했습니다. 이는 닷넷 프로그램이 추가적인 프로그램의 설치를 요구하기 떄문입니다. .NET Framework가 그 프로그램인데, 윈도우의 라이브러리와 JVM 같은 녀석이 함께 들어있는 녀석으로 보시면 되겠습니다. 윈도우폰을 비롯하여 추후 윈도우 계열의 모든 장비는 이 .NET 을 기반으로 할 것이기 떄문에 배워두시면 좋지 않을까 전망해봅니다.
C++ 을 비롯한 다른 언어로도 개발할 수 있는데, 왜 C# 을 "새로" 배워야 하는가?
"뇌를 자극하는 C# 4.0 프로그래밍"의 저자는 십자드라이버와 일자드라이버의 비유를 사용했습니다. 일자드라이버를 C++ 이라고 한다면 C#은 십자 드라이버라는 것이죠. 십자 나사를 조이는 것을 일자 드라이버로 할 수도 있으나, 더 많은 주의가 필요하며 더 어려울 수 있습니다. 하지만, 십자 나사를 사용하면 매우 쉽다는 것이죠. .NET 자체가 C# 을 최적화 언어로 선택하여 디자인 되었기 때문에 C# 을 사용하면 매우 손쉽게 프로그램을 만들 수 있다는 이야기입니다.
'프로그래밍 놀이터 > C, C++, C#, VB' 카테고리의 다른 글
[Java 개발자가 공부해본 C#] CLR ( Common Language Runtime ) 에 대하여. (0) | 2012.04.15 |
---|---|
[Java 개발자가 공부해본 C#] C#에서 Exception 이 발생하면.. (2) | 2012.04.15 |
[Java 개발자가 공부해본 C#] HelloWorld. (4) | 2012.04.12 |
[Java 개발자가 공부해본 C#] C# 개발을 위한 프로그램. ( Visual Studio, Visual C# 2010 Express, Dream Spark 무료 다운 ) (0) | 2012.04.12 |
[C/C++] extern "C" 에 대해 알아봅니다. (0) | 2012.04.05 |
댓글