3-9. 프레임워크를 사용한 개발

OAM Client Framework – 목차

■ 운용관리에 관한 이론적 고찰
1-1. OAM의 정의  1-2. EMS의 정의  1-3. OAM 표준화 동향  1-4. 3GPP 32 Series

■ OAM 프레임워크
2-1. OAM 프레임워크 필요성  2-2. OAM 시스템의 구성  2-3. OAM 요구사항  2-4. OAM 배포 아키텍쳐  2-5. OAM을 위한 Database의 구성 2-6. OAM 인터페이스  2-7. 구성 관리  2-8. 장애 관리  2-9. 성능 관리  2-10. 보안 관리

■ OAM 클라이언트 프레임워크
3-1. OAM Client 프레임워크 개요  3-10. 효과분석  3-2. 개발방법  3-3. 요구사항  3-4. 산출물 정의  3-5. 개발환경  3-6. 아키텍쳐 3-7. UI 정의  3-8. 프레임워크의 개발  3-9. 프레임워크를 사용한 개발

3-9. 프레임워크를 사용한 개발

Framework는 구현을 재사용하는 동시에 디자인을 재사용하는 방법이다. 구현과 디자인을 동시에 재사용할 수 있기 때문에 공통적인 Framework를 가지고 프로그래밍을 하게 되면 기술 구현에 필요한 사항 숙지와 Framework를 통해 전체적인 구조와 구현방법을 공통적으로 적용할 수 있게 되고, Framework를 통해 문제 해결에 필요한 해결 방법을 찾게 된다. 일반적으로 Framework는 함수의 사용법과 주의 사항에 대한 대처가 Framework를 사용하지 않았을 때 구현하는 것보다 쉽고 안전하게 되어 있는 편이고, 기능에 대한 문서화나 예제가 잘 되어 있다. 따라서 좋은 Framework를 이용하여 프로그래밍하는 것은 효율적인 프로그래밍을 더 효율적이게 할 수 있는 방법 중 하나일 것이다.[주:김용현, “Framework 구축과 발전”, 마이크로 소프트웨어, 2008년 12월] 따라서 OAM Client Framework를 개발하는 팀에서는 Framework와 라이브러리 뿐만 아니라 API 문서, Framework 매뉴얼, OAM Client 템플릿을 전달하고 이를 사용하는 방법을 교육하여야 한다.

OAM Client Framework는 반 완성된 어플리케이션(semi-complete application)로서 Visual Studio에서 사용 가능한 템플릿을 제공하여 쉽고 빠른 OAM Client 개발을 돕는다. Framework 개발팀에서 배포된 템플릿은 Visual Studio의 템플릿 폴더에 넣고 새 프로젝트 메뉴에서 OMC 클라이언트 템플릿을 선택하여 Framework 기반의 OMC를 새로 개발할 수 있게된다.

사용자 삽입 이미지

[OAM Client 템플릿]

템플릿에는 OAM Client가 기본적으로 수행하여야 하는 기능들에 대한 예제가 들어 있으며 속성을 변경하여 해당하는 서비스의 제품으로 커스트마이징할 수 있게 된다. 템플릿에는 제어를 위한 코드 뿐만 아니라 도메인에서 주로 사용하는 UI에 대한 예제도 사용자 정의 컨트롤(User Control)을 사용하여 정의되어 있으므로 사용자 정의 컨트롤의 속성을 변경하여 UI를 제품에 맞게 변경할 수 있다. 사용자 정의 컨트롤의 중요한 속성들은 별도로 분류하여 스마트 태그에 정의하면 Visual Studio의 디자인 환경에서도 쉽게 속성을 변경할 수 있으며, 변경된 속성에 따른 UI는 컴파일 없이 Visual Studio에서 확인이 가능하다.

사용자 삽입 이미지

[스마트 태그 속성을 통한 UI 변경]

OAM Client Framework는 크로스 도메인 Framework인 Spring .NET의 의존성 주입 컨테이너를 기반으로 작성되어 있다. 객체는 일반적으로 혼자 동작하지 않고 여러 객체들이 모여 목표를 달성하기 위해 체인을 형성하여 동작한다. 하나의 객체에서 다른 객체를 사용하기 위해 new 연산자를 사용하여 객체를 생성하게 되면 객체간에는 의존성으로 인해 강한 결합이 생겨 단위테스트가 복잡해지고 한 객체의 수정은 다른 객체에도 영향을 미쳐 유지보수도 힘들게 된다. 이를 극복하기 위해서는 객체간의 관계는 인터페이스에만 의존하고, 의존하는 객체는 외부에서 주입하여 의존성을 낮출 수 있다. Spring .NET를 사용하면 인터페이스에 대한 구현체를 소스 코드에서 구현하지 않고 DI 컨테이너를 통해 주입하므로 인터페이스만 유지되면 구현체의 교체가 용이하다.[주:Martin Fowler, “Inversion of Control Containers and the Dependency Injection pattern.”, http://martinfowler.com/articles/injection.html, 2004년] 외부에서 주입할 객체는 App.config에 정의할 수 있으며, 배포가 완료된 후에도 App.config를 수정하여 주입할 객체와 속성을 변경할 수 있다.

사용자 삽입 이미지

[Spring.NET을 사용한 객체의 주입]

OAM Client Framework에서 제공하는 템플릿은 아래 그림의 좌측과 같이 상태 정보를 글자 형태로 출력하지만, 같은 인터페이스를 사용하는 사용자 정의 컨트롤로 교체하여 우측과 같은 UI 형태로 바꿀 수 있다. Framework를 사용하여 개발하는 제품이 많아질수록 다양한 UI의 사용자 정의 컨트롤이 제작되어 교체할 수 있는 UI는 더욱 풍부해질 수 있다.

사용자 삽입 이미지

[OAM Client 템플릿에서의 객체의 주입]

CC BY-NC-ND 2.0 KR

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스

저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.

댓글 남기기