RSA 사용 예제

일상 2011. 7. 1. 18:01

현재 참여하고 있는 프로젝트의 아키텍처는 MDA(Model Driven Architecture) 이다. 이 모델링에 사용되는 툴이 RSA(IBM® Rational® Software Architect for WebSphere® Software) 인데 이 툴의 일례를 다시 한번 기억하기 위해서 적어둔다.

전문 모델러가 아닌 개발자에겐 상당히 복잡한 툴이다. 사실 이렇게 느끼는 건 나뿐만이 아닌 것 같다, 같이 일하는 동료중 스티브는 "이래서 내가 이 툴을 사용하는 걸 될 수 있으면 피해~" 라고 하며, 옆 자리 앤드류는 "나 그거 싫어해~" 하면서도 친절하게 가르쳐 주었고, 프로젝트 매니저인 맷은 "양~ 드디어 니가 모델러 전문가 과정을 시작했구나" 하면서 일종의 크래시 코스라는 이름하에 한시간 정도 사용법을 배웠다.

이 예는 민컴 프로젝트용으로 한정된다.즉, 일반적인 예제가 아니다.개인적으로 오늘부터 한달 육아휴직 인대 다시 돌아가면 잊어버릴것 같아서 한번 더 익혀둘 목적으로 적는다.

전체적인 순서는

Model
RSA 를 이용해서 UI 패턴을 정의하고,이 예는 그중에서  UI Behaviour 패턴중  Field Toggle 패턴과 Value Field 패턴을 이용했다.이 화면 패턴을 설계한 다음 Transform 명령으로 화면 Definition 파일을(XML 형식) Transform 한다.

Controller
자바 단에서는 더 수정할 사항이 없다.

View
Flex 단에서는 이미 개발된 소스가 이 패턴에 대해서 제대로 동작하는지 확인한다.예상대로 동작하지 않으면 추가 및 수정한다.

일단,
1)타겟 모듈을 RSA 에 임포트 한다. 아래 화면 처럼 타켓 어플리케이션 으로 이동한 후에
사용자 삽입 이미지

2)아래처럼 UML 다이어그램을 추가한다.
사용자 삽입 이미지

3)UIBehaviour 폴더를 열어서 Pattern Explorer 탭 클릭 후, Field Toggle Pattern 과 Value Field Link Patttern을 이용해 고객의 요청사항에 맞게 다이어 그램을 완성한다.
주의,
  • 완성된 다이어그램이 원하는 값을 포함하지 않고 있다면(왼쪽에 해당 항목을 클릭해서 눈으로 확인한다) 해당 값을 지우고 아래처럼 Reapply 한다.
  • Values의 항목의 값을 넣을 때는 '문자열' 형식으로 넣어줘야 한다. 'B' 혹은 'two' 이런식이다.
  • Page는 Main,Search,Detail 정도 인대 보통 결과값을 보여주는 페이지는 Detail 이다.
  • Field Toggle Pattern 의 Value Field Link 항목값은 Value Field Link Pattern 을 만든 후, 해당 패턴을  드래그 앤 드롭해서 넣어준다.

사용자 삽입 이미지

4)그런 후 해당 어플리케이션을 클릭 후, 트랜스폼 시킨 후에 최종적으로 생성된 xml 을 열고 원하는 비지니스 로직을 제대로 반영하고 있는지 확인한다.
사용자 삽입 이미지


쓰고 나니 1~4번의 과정으로 아주 간단하게 보인다. 하지만 실제로는 이 이슈 하나를 해결하는데 일주일이 걸렸다.지금까지 내가 해결한 이슈중에 가장 오래 걸렸던 이슈이고 가장 까다로웠다.

그 이유는,
이슈를 보고 나서 모델쪽 변경없이 Flex 쪽에서 추가할 수 있는 기능 처럼 보였다.하지만 구현중에 이 이슈는 모델링쪽 작업이 선행되지 않으면 해결할 수 없다는 걸 알게되었고, 이 이슈를 생성한 친구를 봤더니 쿠알라룸푸루에 있는 비-탯-림 이라는 친구였고, Skype 를 설치해서 대화를 해본 결과 모델링 이슈가 맞았다.

이 프로젝트 모델링에 대한 문서는 총 148페이지의 문서 였는데, 그때 부터가 문제 였다.RSA 를 다뤄본 경험도 없지만 민컴 프로젝트 모델링에 대한 것도 모르기 때문이었다.

프로젝트 매니저 맷에게 도움을 청했고, 장난기 그득한 웃음으로 위의 내부용 모델링 링크를 주면서, "자~~ 다 여깄어~ 이거 보면서 따라하면 돼~", 정말 기운빠진 목소리로 장난하지 말라구 했더니 그제셔야 스모나 라는 모델러를 데리고 왔다,근데 그 아줌마 하는 말이 "이툴은 self-explanatory" 라는 멎진 말을 하구 갔다.

"self-explanatory?? give me a break~" 맷도 내 말에 웃더니 그제서야 자기도 잘 알지는 못하지만 아는데 까지 설명해준다며 직접 알려줬다.

이 모델링을 거치고 나서 자바쪽 프로젝트로 임포트 시키고,GitIvy 로 타겟 개발환경 세팅하는 것도 간단치가 않은 일이었다.이 개발환경 세팅이 계기가 되어 파티션 뒤쪽의 스티브가 스탠다드 일립스 프로젝트와 C클래스 프로젝트 개발 환경 설정 사항을 문서화 하게 되었다.스티브가 세팅을 도와주고 왈 '니가 나의 처음 기니피그 였어' 라며 잘 해봐~라는 격려를 해주었다.

소스와 모델링을 그리고 테스트 환경 세팅 후, 내부용 모델링 링크를 보면서, 해당  UML 모델을 완성하고 최종 XML 을 생성. 해당 프로젝트를 현재 자바쪽 프로젝트로 임포트 Jboss 세팅후 로컬서버로 타켓 어플리케이션을 띄워보니 내가 한 모델링이 맞았다.

그제서야 이슈트래커로 이슈를 Resolved로 업데이트 했다.마침 한달 육아 휴직전에 이 이슈를 해결해서 무척 다행이었다.

'일상' 카테고리의 다른 글

육수 만들때 실수 및 기억할 만한 노하우  (0) 2011.07.07
호주 직장 이야기 - 자격증  (0) 2011.07.02
실감난다  (0) 2011.06.18
새벽길을 떠나며  (2) 2011.06.18
벌써 일년이 지났다.  (4) 2011.06.06
Posted by iamyhs
,