Mono를 사용한 C# 프로그래밍

게임 서버 프로그래밍에 관심을 갖고, 공부를 하게 된 저는 C#이라는 언어를 접하게 되었습니다. 물론 C# 언어를 처음 사용한 건 아니지만, 그렇다고 정식으로 배운 언어도 아니었고, 기껏한 것이라고는 Visual Basic 언어를 탈피하고자 잠시 사용해본 것 정도였습니다.



Microsoft에서 개발한 객체 지향 프로그래밍 언어

C# 언어에 대한 이야기를 적어보기 전에 이 언어가 무엇인지에 대한 간략한 소개부터 해보겠습니다.

C# 언어는 Microsoft에서 개발하고 있는 C++ 언어 기반의 프로그래밍 언어입니다. 문법은 C++와 Java 비슷하지만, 대부분 Java와 비슷합니다.


C# 언어는 Microsoft에서 개발한 .NET Framework의 일부입니다. 최초 .NET Framework 1.0 버전이 나온 것은 2002년 정도인 것으로 기억하고 있는데, 그 때만해도 .NET Framework의 성능은 그다지 좋지 않았습니다. (무슨 프레임워크 설치하는 데 시간 뿐만이 아니라, 프레임워크에서 돌아가는 프로그램이 터무니 없이 느렸지요.)


C#은 GUI 프로그래밍에 강력합니다. 제가 C#을 잠깐 사용했었을 때만 해도 Visual Basic과 똑같이 Windows Form을 사용해서 쉬운 컴포넌트 프로그래밍을 할 수 있었고, (JavaFX에 비하면 엄청난 편리함과 성능을 제공) 현재는 WPF 프로그래밍을 통해 MVPP 패턴으로 더 쉽게 GUI 프로그래밍을 할 수 있습니다.


지금의 C# 개발 환경은 예전 Boland 회사(지금은 Codegear)에서 개발한 Delphi/C++ Builder와 비슷한데, Microsoft가 C# 개발을 위해  Anders Hejlsberg 을 영입한 것이 가장 큰 이유로 꼽히고 있습니다. 실제로 저도 최근에 Embacadero RAD Studio 개발 환경을 사용해보면서 컴포넌트 프로그래밍에 최강자라고 불리울 정도로 강력하고, 쉬운 컴포넌트 프로그래밍 환경을 가지고 있었습니다. "RAD Studio"라는 이름이 아깝지 않을 정도로 말이죠... (하지만 중요한 건 라이센스 비용이 무려 1000만원이 넘는다는 것;;;)



.NET Framework

.NET Framework(닷넷 프레임워크)라는 단어를 조금 사용을 했는데, .NET Framework는 Java로 말하자면 JRE와 비슷하다고 볼 수 있습니다. .NET 기반으로 개발한 프로그램은 .NET Framework 실행 환경을 요구합니다. 그래서 사용자들이 가끔 프로그램을 설치할 때마다 .NET Framework 혹은 Visual C++ Runtime 등을 설치하는 경우가 있는데요. 


별도의 실행 환경을 사용하고 있어 Java와 똑같이 Garbage Collection을 제공합니다. 그래서 C/C++ 언어처럼 개발자가 어느 시점에 메모리 자원을 반납할 것인가를 따로 정해줄 필요가 없어 개발이 쉽다는 장점을 지니고 있지만, Java와 마찬가지로, C/C++에 비해 성능이 좋지는 않습니다.



Mono 입문과 설치

C# 언어의 가장 큰 단점은 Windows Platform에서만 제공한다는 것이 유일한 단점입니다. 하지만, NIX 계열 플랫폼에서 .NET을 사용할 수 있는 Mono가 개발이 되었고, 작년 정도 안정화가 되면서 최종적으로 NIX 계열에 자리잡게 되었습니다. 


- MonoDevelop IDE

- Xamarin Studio IDE


Mono를 통한 C# 개발의 프로그램은 위의 두 가지 IDE 프로그램으로 개발할 수 있습니다. 현재는 OS X 용 Visual Studio가 Beta 버전으로 Release 되어있어서 Visual Studio로도 개발을 할 수 있지만 Linux 계열에서는 아직 Visual Studio IDE가 개발되어 있지 않으므로 MonoDevelop IDE를 사용하여야 합니다.


그러면 본격적으로 Linux에서 Mono를 설치해보도록 하겠습니다.


$ sudo apt install mono-complete monodevelop 

Linux에서 Mono를 설치하는 법은 생각보다 쉽습니다. mono 관련 설치는 mono-complete, IDE 도구는 monodevelop으로 설치하실 수 있습니다.



MonoDevelop을 사용한 C# 개발

설치가 끝났으면, 본격적으로 MovoDevelop을 사용해 개발을 시작해보겠습니다.


MonoDevelop을 실행시키면 New 버튼이 보이실 것입니다. New 버튼을 클릭해 새로운 프로젝트를 생성해보겠습니다.


가장 기본적인 CLI 프로그램을 개발할 수 있는 Console Project와 GUI 프로그램을 개발할 수 있는 Gtk# 2.0 Project가 있습니다. 본래 Windows에서는 Windows Form Project와 WPF Project로 개발하기 때문에 NIX 계열과는 라이브러리가 같지 않으므로 호환이 되지 않는 점. 확인하시기 바랍니다.


사용할 언어는 C#, VB.NET, IL 중 한 개를 고르실 수 있습니다. 우리는 C# 언어로 개발할 것이므로, C#을 선택한 후, Next를 클릭합니다.


Project 이름과 위치를 정해준 후 Create 버튼을 클릭하면, 프로젝트가 생성됩니다.


음 처음에는 어김없이 Hello World를 만들어주네요 ~_~


저는 간단한 스택과 큐를 짜봤습니다. 자 여러분도 Let's Coding !


Windows에서 사용하는 것 그대로 Linux에서 C#으로 코딩할 수 있습니다. (음 속도도 아직까지는 비슷한데....)



마치며....

여기까지 Mono를 사용한 간단한 C# 프로그래밍이었습니다.

사실 Mono가 있었던 것은 예전부터 알고 있었지만, C#에는 아직 친숙하지 않았고, 어쩌다보니, C# 언어를 다시 접하게 되어 블로그에 글을 쓰게 되었습니다. 아직까지 완벽한 C# 언어를 지원히지 않는 Mono이지만, 조금만 더 활성화 된다면 부족한 Linux의 GUI 프로그램을 매꿔줄 유일한 수단이 될 수도 있을까 짐작해봅니다.

'Programming > C#' 카테고리의 다른 글

Mono를 사용한 C# 프로그래밍  (0) 2017.02.21
TAGS. ,
comments powered by Disqus

Tistory Comments 0