언어 자료구조 알고리즘/Escort C#

[C#] 10. .NET 어셈블리 - 모듈 작성

언제나 휴일 언제나휴일 2016. 5. 3. 17:58
반응형

10. .NET 어셈블리

 

10.6 모듈 작성

 

 이번에는 .NET 어셈블리의 부속이 될 수 있는 모듈을 작성하는 방법울 알아봅시다. 그리고 모듈을 포함하는 .NET 어셈블리도 만들어 봅시다.

 

 모듈은 Visual Studio 명령 프롬프트에서 csc 명령어를 이용하여 컴파일해야 합니다. 먼저 간단한 소스 코드를 편집한 후에 모듈을 만듭시다.

 

▶ 모듈로 만들 코드(Foo.cs)

namespace DemoModule

{

    public class Foo

    {

        public string Name

        {

            get;

            private set;

        }

        public Foo(string name)

        {

            Name = name;

        }

        public override string ToString()

        {

            return Name;

        }

    }

}

  

 그리고 Visual Studio 명령 프롬프트에서 csc /t:module Foo.cs를 입력하면 모듈이 만들어집니다.

 

csc 명령어로 모듈 만들기

[그림 58] csc 명령어로 모듈 만들기

 

 이처럼 만들어진 모듈은 .NET 어셈블리의 부속이 될 수 있습니다. 따라서 하나의 모듈을 포함하는 두 개의 .NET 어셈블리를 참조하면 충돌이 납니다. 모듈은 .NET 어셈블리가 아니라 .NET 어셈블리에 포함될 수 있는 부속임에 주의하세요.

 

 간단하게 모듈을 포함하는 라이브러리 코드도 편집합시다.

 

▶ 모듈을 포함하는 라이브러리 코드(MyLib.cs)

using System;

using DemoModule;

namespace MyLib

{

    public class IncludeModule

    {

        public void UsingModule()

        {

            Foo foo = new Foo("테스트");

            Console.WriteLine(foo);

        }

    }

}

 

 

 마찬가지로 Visual Studio 명령 프롬프트에서 csc 명령어를 이용하여 모듈을 포함하는 라이브러리를 제작합시다. csc /t:library /addmodule:Foo.netmodule MyLib.cs라고 입력하세요.


csc 명령어로 라이브러리 만들기

[그림 59] csc 명령어로 라이브러리 만들기

 

 이처럼 다른 모듈을 포함하고 있는 .NET 어셈블리를 다중 파일 어셈블리라 얘기합니다. Microsoft 사에서는 기존 COM 전략이 실패하였다는 의미에서 .NET을 만들었습니다.

 

 많은 부분에서 변화가 있지만 그중에서도 자기 기술적인 .NET 어셈블리, 강력한 이름으로 공용 어셈블리 배포와 이로써 병행(Side by Side) 실행, 간단한 접근 지정만으로도 외부에서 접근 가능한 형식과 멤버를 지정, XML 문서 출력으로 인텔리센스 기능을 활용할 수 있게 한 점은 많은 개발자가 효과적으로 비지니스 프로젝트를 수행할 수 있게 해 줍니다.

 

 이제 C#언어의 기본적인 부분에 소개를 마쳤습니다. 앞으로 리플렉션, 직렬화, 리모팅, 마이그레이션 등을 익혀 보다 심화 학습을 해 나가세요. 그리고 설계 능력을 키우실 분들은 Escort GoF의 디자인 패턴 C#을 보면서 GoF의 디자인 패턴을 보시면 도움이 될 거예요. 아울러 CBD 개발 방법론에 대한 학습도 해 나가실 바랄게요.

 

 그리고 ADO.NET, XML.NET, Windows Form with C#, ASP.NET, 웹 서비스를 학습하신 후에 WinFX WPF Silverlight, LINQ, WCF 등을 학습하시면 더욱 발전할 수 있을 것입니다. 물론, XNA Open API, Open CV, Open GL 등의 기술을 접목하기 위한 학습과 프로젝트 수행이나 DDK, WDF 등을 학습하는 것도 괜찮을 거예요.

 

 처음 C#을 접하는 이들도 볼 수 있게 책을 구성해서 보다 심화된 내용을 포함하지 못하고 있지만, 반드시 다뤄야 한다고 생각하는 것들은 전달했다고 생각합니다. 아무쪼록 대한민국의 건강한 IT 환경을 구축하는데 밀알이 되길 기대할게요.


너와 나의 연결고리 "공감"

반응형