QCon 세미나 첫째날입니다.
앞의 이틀은 Tutorial이라고 일종의 수업인데, 오늘 저의 선택은 AOM 이었습니다.
■ 진행방식
- 강사 둘이 주거니 받거니 만담식으로 진행
놓치지 않고 많은 내용을 전달하기도 하겠지만, 두명이 하고자하는 말이 많으니 그만큼 수업도 더욱 빡셈.
- Joseph W. Yoder 와 Rebecca Wirfs-brock 인데, 레베카는 나이가 아주 많아보이는 여자임.
나이들어서도 저렇게 멋진 기술자가 될수 있다는 점이 좋아보임.
-강의를 한번에 한시간 반씩하고 조별 짧은 실습(30여분)이 두 번 수행하여 9시에서5시.
실습은 클래스 다이어그램 그리는 건데, 역시 툴사용은없고 플립차트에 볼펜으로 끄적!
■ 내용
- AOM은 변화에 쉽게 적응하도록 하기 위해 Meta modeling을 이용하는 모델링 방식임
- 모델에 나타나는 유형(meta model)을 모델화 하고 이를 사용자가 직접 관리할 수 있도록 시스템까지 만들어 주자고 주장.
그래서 오늘 강의의 부제는 "ultimate atility : Let your Users do your work!" 임.
- 변화에 적응하자는 것이 Agile의 사상이기는 하나 더 열심히 하자는 것 만으로는 한계가 있어 AOM이 필요함
(Agile이 정말 대세인듯, Agile의 한계를 지적하면서는 극도로 조심스럽게 이야기함)
- 변화가 자주, 빠르게 일어나는 복잡한 모델에 대해서는 AOM을 적용하자.
- AOM의 대표 요소는 TypeObject, TypeSqure, Rule, GUI 등임.
- 기존 모델에서 자주변경되고 추가되는 부분은 TypeEntity로 한레벨 더 추상화(meta modeling)하고
TypeEntity에 따라 달라지는 속성도 property Attribute로 도출. 원Entity 및 property와 네모를 이루는 관계가 되며 이를 TypeSqure라함.
(위그림의 왼쪽 네 개 클래스 가 연결된 부분)
- 여기에 Behavior를 위한 rule을 추가하면 AOM 완성. (위그림의 오른쪽 세 개 클래스 부분)
- rule은 constraints/functional/workflow/event based 류의 네가지로 나눌 수 있음
- 이 메타모델을 최종 사용자가 직접 관리할 수 있도록 시스템으로 만들어 제공.
(기존의 DB 분야에서 사용하는 메타 모델 관리 시스템과 거의 동일한 개념으로 보였음.)
- type과 관련된 부분을 knowledge level, 기존 모델에 등장하는 부분을 operational level이라함.
- operational level은 DBMS에 관리되며, knowledge level은 XML로 저장하는 아키텍처를 사용함.
■ 소감
- 기존 패턴, DB쪽의 메타모델 관리시스템, 메타모델링 등의 개념을 혼합하여 만들어낸 개념으로 보임
- 그래서 (감히^^;) 딱히 새롭진 않으나, 이러한 조합과 정련도 상당 수준의 고수들이라 가능한것이고,
적용하여 변경에 매우 유연한 시스템을 실제로 구현해내고 있으니 인정!
- AOM 모델링 쉽지는않으며, 따라서 프로젝트 멤버간 의사소통의 장애가 될 수도 있음
- 우리가 유지보수하는 자사 asset의 모델링에는 적용할 수도 있지 않을까?
'IT 이야기' 카테고리의 다른 글
QConSF2010 Friday (0) | 2010.11.06 |
---|---|
QConSF2010 Thursday - noSQL (0) | 2010.11.05 |
QConSF2010 - Wednesday (2) | 2010.11.04 |
Innovation at Google (1) | 2010.11.04 |
Continuous Delivery (0) | 2010.11.03 |