안녕하세요. 박종현 입니다.

 

저는 약 13회 (또는 그 이상이 될수도 있습니다.^^)에 걸쳐 Spring.NET 이라는 프레임워크에 대해 소개해 볼까 합니다. 제가 조사해본 바에 의하면 ASP.NET 응용 프로그램을 제작하는 기관이나 단체 중 Spring.NET의 도입 비율이 점차적으로 늘어나고 있다는 것을 알았습니다. 이 프레임워크에 대한 사용 결정은 각자의 몫이겠지만 빨리 개발 끝내고 집으로 고고싱 하고 싶은 게으른 제 입장에서는 개발을 편리하게 해주는 새로운 프레임워크가 나오면 아무래도 주목하게 되는 것도 사실 입니다. 개인적으로는 A라는 목적지에서 B라는 목적지로 꼭 불편한 수동 기어를 가진 자동차일 필요는 없다고 생각합니다. 자동 기어면 얼마나 편하겠어요~^^

 

그럼 오늘은 첫 시간으로 Spring.NET 이라는 프레임워크에 대해 간략하게 소개해 보겠습니다.

물론 아래의 내용은 Spring.NET 문서를 번역한 글이며, 문서에서 제공하는 의미를 최대한 사실적이고 왜곡되지 않게 전달하기 위해 되도록이면 의역을 자제했습니다. 그래서 문맥의 연결이 매끄럽지 않을수도 있음을 이해해 주셨으면 합니다.

그럼 시작하겠습니다.

 

1.1. 서문

우리가 소프트웨어 애플리케이션을 개발하는데 있어 좋은 도구와 기술이 있어도 그것은 좀 어렵습니다. Spring은 기업에서 활용 가능한 응용을 빌딩하는데 경량의 솔루션을 제공하고 응용을 형성하고 소프트웨어를 AOP로 통합하는데 있어 일관되고 투명한 의미를 제공합니다. 이 프레임워크가 가지는 기능상 최대 이점은 asp.net 프레임워크의 모든 특징 위에 미들티어를 위한 선언적 거래 관리(declarative transaction management)가 가능하다는 것입니다. Spring 프레임워크는 엔터프라이즈 응용 개발의 많은 영역을 한 곳에서 처리할수 있는 가능성을 제공하고 있으며 필요로 하는 부분만 사용할수 있도록 모듈화 되어 있습니다. 여러분들이 작성한 응용을 설정하기 위한 IoC 컨테이너와 데이터 접속 코드(data access code)에 기반한 ADO.NET을 가져오기 위해 사용할 수 있습니다. 그러나 하이버네이트 통합 코드나 ADO.NET 추상 계층을 선택 사용할수 있습니다. Spring은 프레임워크 위에서 의미론적으로 독립적이고 간섭하지 않게 디자인 되었습니다.

 

1.2. 소개

Spring.NET은 엔터프라이즈 .NET 응용 프로그램 개발을 지원하는 포괄적인 인프라스트럭쳐을 제공하는 프레임워크 입니다. 기본 클래스 라이브러리를 사용하는 모범 사례, 테스트 드리븐 개발, 쉬운 사례를 참고하여 작성할 때 생기는 부수적인 복잡성을 제거하도록 되어 있습니다 Spring.NET은 SpringSource에 의해 지원되고 만들어 집니다.

Spring.NET의 디자인은 전세계 수많은 엔터프라이즈 응용 프로그램에 사용되고, 실세계에서 많은 이점을 보여준 Spring 프레임워크의 자바 버전에 기초를 두고 있습니다. Spring.NET은 자바버전의 급조 포트는 아닙니다. 그러나 특정 플랫폼에 얽매이지 않는 아키텍처와 디자인 패턴에 기초한 '정신적 포트'는 계승하였습니다. Spring.NET의 광범위한 기능은 one-stop-shop 처럼 사용할 수 있지만 Spring.NET은 솔루션이 아니기에 독립적인 모듈을 사용하여 기능을 만들어 낼수 있습니다.
모듈에 대한 설명은 다음 강좌에 기술하겠습니다.

 

엔터프라이즈 응용 프로그램들은 일반적으로 다수의 물리적인 계층에 구성되어 있고, 각 계층내에 기능 레이어로 분리되어 있습니다. 예를 들어 비즈니스 레이어는 일반적으로 데이터 액세스 계층에서 사용하는 케이스를 수행합니다. 이것이 의미하는 바는 하나의 적절한 응용 프로그램을 위한 다양한 객체를 이용한 협업이 하루를 마감하는 시점에 아무런 문제가 없음을 알게 된다는 것을 의미 하게 되는 것입니다. 따라서 응용 프로그램의 객체들은 각자가 독립성을 가진다는 것을 말해주고 싶습니다.

 

.NET 플랫폼은 원시타입의 매우 기본적인 빌딩 블럭과 클래스에서 부터 모든 리치한 특징을 가지는 응용 프로그램 서버와 웹 프레임워크까지 소프트웨어의 구조와 구축을 위해 풍부한 기능을 제공합니다. 눈에 띄는 하나의 영역인 기본 빌딩 블럭은 아키텍트와 개발자가 응용 프로그램을 개발하기 위해 사용합니다. 가수나 댄서가 치장하듯 응용 프로그램을 치장하는데 사용하는 다양한 패턴들이 있습니다. 팩토리, 추상 팩토리, 빌더, 데코레이터 그리고 서비스 로케이터와 같은 디자인 패턴들은 소프트웨어 산업에서 광범위하게 인식되고 수용되고 있습니다. 이것은 모두 잘 되어 있습니다. 그러나 이러한 패턴들의 모범 사례들은 단지 패턴을 기술하고 이름을 주고 어디에 패턴이 잘 적용될 수 있는지만 알려줍니다.

 

Spring 프레임워크는 이러한 다양한 응용 프로그램에서 수년에 걸쳐 입증된 디자인 패턴과 응용 프로그램을 통합하고 아키텍트와 개발자가 첫 클래스 객체를 실질적으로 표준화하는 최고의 모범 사례를 가지고 있습니다. 이것은 Spring 프레임워크를 사용한 수많은 단체와 기관의 엔지니어들에 의해 증명되었는데 예를 들어 IoC 컴포넌트는 이질적인 구성요소에 대한 수단을 제공함으로써 큰 우려없이 작성 가능하도록 하고 있습니다.

 

이러한 부분들은 예제를 통해 하나씩 선보이도록 하겠습니다.

다음 글은 Spring.NET의 모듈에 대해 소개해 보도록 하겠습니다.





profile

소프트웨어라는 도구를 천문분야에 접목하는 것에 대해 관심을 가지고 있는 1인 입니다.

 

 

한국천문연구원(KASI) 한국형 외계지적생명체 탐색 기술자문 (2010)

Microsoft Visual C# MVP(2009-2010)

세티의 Lonely Star 블로그 운영


facebook: http://www.facebook.com/setipark