닷넷으로 플러그인 시스템을 만들 때 유용한 문서

  • Post author:
  • Post category:
  • Post comments:0 Comments
  • Post last modified:April 5, 2008

플러그인 구조라 함은 결국 기능을 동적으로 적재하고 해제함으로써, 소프트웨어의 기능 확장성을 확보하겠다는 뜻이다. 닷넷에선 어셈블리 단위의 동적 적재는 허용하지만, 동적 해제는 지원하지 않는다. 이 문제는 응용프로그램 도메인을 통해 해결해야 하는데, 실제로 해보면 골치아픈 일이 많다. 응용프로그램 도메인(AppDomain)을 이용해 플러그인 구조를 만드는 예제가 웹에 널려 있지만, 실제로 아무런 문제 없이 동적 해제와 동적 적재를 반복할 수 있는 제대로 된 예제는 거의 없다고 보면 된다. 다시 말해, 대부분의 개발자들이 응용프로그램 도메인을 제대로 소화하지 못 했다는 뜻이다. 심지어 MSDN 사이트에 올라온 기사조차 틀린 내용을 전달한다.

만약 플러그인 기능을 개발하고 싶다면 다음 문서를 꼭 읽어보라고 권하겠다. 드물게 올바른 내용을 소개하는 문서들인데, 특히 첫 번째 글인 Plug-in Manager를 주의 깊게 읽어야 한다.

  • Plug-in Manager

    응용프로그램 도메인을 비교적 상세하게 다루고, 실제로 파일 시스템에 어떤 변화가 생겼을 때 플러그인을 자동으로 해제했다 다시 적재하는 예제를 보여준다. 가장 도움을 많이 준 문서이다.

  • How to increase application scalability using Plugins

    인터페이스가 아닌 애트리뷰트를 사용해 플러그인을 개발하는 방법을 다룬다. 응용프로그램 도메인에 대해선 거의 언급이 없고, 애트리뷰트를 사용하는 부분도 Attributes in C#보다 못하므로 이런 사례를 제시했다는 점에 의의를 둬야 한다.

  • Attributes in C#

    인터페이스가 아닌 애트리뷰트(특성)를 이용해 플러그인을 개발하고자 할 때 유용하다. 애트리뷰트 프로그래밍을 쉽게, 그리고 한눈에 알아보게끔 글을 잘 썼다.

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments