개발&Development/프로그래밍 일반

UML 그리고 VS 2005 블라블라

겐도 2005. 3. 16. 02:22
요즘 UML 2.0과 Design Pattern, Refactoring, VS 2005에 대해 이리저리 책도 보고 자료도 찾다가 이 모든것이 짬뽕이 되고 있다는 사실을 발견하였다. 더물어 그 모든것들이 스파게티가 되어 아직도 뭐가 뭔지 햇갈려 죽겠다. 이 글에서는 현재까지 파악된 것들에 대해 대충 링크라고 정리해 보자.

UML 2.0
http://www.uml.org/: 나름 대로의 공식 홈피
1.5의 Specification을 제공하며 더불어 2.0의 맛배기(?)를 제공해 주고 있다.

http://www.holub.com/goodies/uml/index.html: Allen Holub's UML Quick Reference
항상 최신(!)의 정보를 제공해 주는 Quick Reference. 미러링 하지마라고 하는 이유가 다 있다.

UML 2.0의 가장 큰 변화라고 하면 Rational의 잔치가 아니라 Rational을 산 IBM을 비롯하여 거물이란 거물은 다 참여하고 있다는 점이다. 분야, 기술, 언어, 형태 등등에 따라 Profile이 제공되고 ISO 등록을 위해 노력중이다. OMG가 2년이나 듀를 딜레이 시켜가며 발끈 중이시다.
이것으로 다른 녀석들이 무엇을 하냐면 MSF같은 개발방법론을 각 회사들이 만들고 있다. IBM은 Eclipse를 바탕으로 Rational 제품군을 강화하고 있고 MS의 경우 VS 2005 TS와 함께 MSF를 만들어 나가고 있다. Sun이나 기타 등등의 들러리(?)들도 제각각 뭔가를 만들어 나가고 있음이 포착되고 있다. RUP에 관해서도 공부하고 있었는데 개발 방법론과 관련하여 지금 상황에서 더이상 뭘 봐야 할 지 모르겠다. 다봐야 한다면 죽어버릴꺼야~~ ㅠ.ㅠ

Patterns 그리고 Refactoring
최근에 산 책인 "Refactoring to Patterns"를 보고나선 결국 이거 하고 싶은건가란 생각도... 우선 Patterns는 UML로 모두 표시가 되면서 개발툴들이 이전에는 "SDI로 할래 MDI로 할래"라고 하던 것이 "어떤 Pattern으로 만들어 볼래"라는 위자드를 제공하기 시작하였다. Borland Together제품의 Screen Shot중에 쉽게 찾을 수 있을 것이다.
이제는 프로그램을 작성할때 Pattern을 모르면 시작도 할 수 없는 세상인양 사람들은 떠들어 대고 있다. 실제로 곧 나올 개발툴들을 보면 시작점이 Pattern이다.(전통적인 막코딩도 가능하긴 하지만 ;;;)
음.. 이 부분에 대해선 아직 내공이 약한가 보다. 자세한 이야기는 좀더 공부하고 썰을 풀어야 겠다.

Visual Studio 2005 Team System
http://lab.msdn.microsoft.com/vs2005/default.aspx: 조만간 나올거라는 Whidbey
http://www.microsoft.com/msf: Microsoft Solution Framework
VS 2005의 가장 중요한 부분인 Team System를 이해하려면 우선 MSF부터 이해해야 할 것이다. 요구분석->아키텍처 수립->개념설계->논리설계->물리설계의 Architecturing 이후 개발하고 Test하는 플로우가 VS 2005에 녹아 있으며 그것은 MSF를 따르고 있다. 또한 MSF는 UML을 차용하고 있으며 이는 다시 Pattern 질을 해야 된다는 의미 ㅠ.ㅠ (Visio는 MS가 회사를 인수한 이후 Office냐 VS냐 헤메다가 드디어 VS로 붙을 작정인듯 --;)
또하나 흥미로운 것은 Team Foudation인데 형편 없었던 Visual Source Safe가 이번에 엄청 변경되면서 형상관리나 이슈 트랙킹이 TF에서 지원된다는 것이다. Project Management도 지원하겠다는 것이 아닌가!

결론
기존에 프로그래머라고 한다면 C++ 문법만 제대로(!) 알고 있었으면 먹고 사는데 별로 지장이 없었다. (잘 몰라도 대충 사는것 같다. --;) 하지만 최근의 변화는 UML은 그저 화장실에서 보는 내셔날 지오그래피(전혀 딴 세상)수준이 아니라 당장 눈앞에 코드를 작성하라면서 떨어지는 작업 지시서에 나올지도 모른다. RUP, MSF 같은 개발방법론을 이해하지 못하면 당장 Project Manager도 될 수 없다고 한다. OMG를 비롯하여 개발과 관련된 회사들이 드디어 소프트웨어를 개발하는데 혁신적인 Silver Bullet(늑대인간을 죽일 수 있는 은탄환, 프로젝트를 획기적으로 성공시킬수 있는 기술이라는 의미인 동시에 보통 그러기 힘들다는 의미도 포함)을 개발하고 있고 이것으로 붕어빵 직어내듯이 소프트웨어가 만들어 질 수 있다는 꿈을 제시하고 있다. (반대로 저렇게 어려운 것들을 알지 못하면 프로그래머가 될 수 없다고 하면서 프로그래머의 질적 향상을 유도한다는 측면의 의견도 있다.)
과연 Silver bullet이 탄생할 것인가? 아니면 스캇 마이어스(Effective C++의 저자)정도의 내공을 가진 사람 이외에는 모두 실패하는 상황이 재현될 것인가...(OOP의 경우 상당한 내공의 소유자가 아니면 높은 비율로 프로젝트가 실패한다고 보고된 바 있다.) 신만이 알려나? 아무튼 난 오늘도 많은 책과 웹페이지를 전전하며 두통에 시달리고 있다. @.@;