PLoP이 드디어 20주년을 맞이 했습니다.
20주년 행사인 만큼, 초기 패턴을 이끌었던 맴버들이 대거 참석한다는 것이고, 가장 먼저 PLoP 이 열렸던 성지인 Allerton Park에서 열립니다. 책에서 본 그곳에서 책에서나 보는 대가들과 만난다니 기쁘네요.
- Ralph Johnson
- Ward Cunningham
- Rebecca Wirfs_Brock
- Joseph Yoder
- Richard Gabriel
- Joshua Kerivsky
패턴 저자 : 손영수, 오혜성, 양현철, 정승수
아키텍쳐 시각화 패턴 I 회에서는 아키텍처 시각화 패턴의 전체적인 구조와 구성되는 패턴들의 종류들을 간단히 소개하고, 아키텍처 시각화를 하기 전에 소프트웨어 시스템을 분석하기 위한 기본 요소들인 Domain Level Classifier Pattern과 Class Dependency Classifier Pattern에 대해서 살펴보았다. 2회에서는 시간에는 소프트웨어 시스템의 아키텍처적인 분석에 기본이 되는 다양한 Metric 분석과 관련된 패턴에 대해서 설명하고자 한다
Base Metric Extractor Pattern의 정의
소프트웨어 시스템의 아키텍처를 분석하기 위하여 의존성만을 이용하게 되면 분석의 시야가 좁아 보다 다양한 측면에서의 분석이 힘들어진다. 그리고 의존성만을 시각화한 Chart로는 상호 참조와 같은 아키텍처적인 문제만을 바로 확인할 수 있고 그 외의 소스 코드의 크기나 복잡성 등과 관련된 문제들은 확인할 수 있는 방법이 존재 하지 않는다. 의존성 분석만으로는 파악할 수 있는 아키텍처적인 문제들의 한계가 존재한다. 그렇기 때문에 이를 보완할 수 있는 다른 분석 방법들이 필요하다. 또한 이를 보완할 분석 방법도 매우 직관적이고 명시적으로 분석할 수 있어야 하며, 매우 빠른 시간에 아키텍처를 파악할 수 있어야 한다.
이때 소프트웨어 메트릭이라는 소프트웨어 시스템의 품질을 나타내는 지표를 이용하면 이 문제를 해결할 수 있다. 이 지표는 소프트웨어의 측정 기술을 기반으로 소프트웨어 생명 주기 동안에 소프트웨어의 특징 또는 특성을 객관적이고 과학적인 수치로 정량화한 지표이다. 또한, 다양한 문제점들을 정의하고, 관련된 기초 데이터를 수집하고, 문제점들을 객관적이고 과학적인 수치에 의해 분석하여 다양한 문제점들의 연관 관계 및 해결 방법을 탐색하며, 다양한 문제점들을 종합적으로 해결할 수 있는 문제 분석 프로세스 및 소프트웨어에 대한 지표이다.
이러한 지표들 중에서 품질 향상에 많은 도움을 줄 수 있는 소프트웨어 메트릭의 종류를 크게 4가지가 존재한다.
- 첫번째로 단순히 패키지, 클래스, 메소드, 필드의 갯수, 코드 라인 수를 나타내는 “Count Metric”,
- 두번째로 코드내의 순환복잡도, 무거움, 엉킴을 나타내는 “Complexity Metric”,
- 세번째로 코드 간의 의존성을 나타내는 “Robert C. Martin Metric”,
- 마지막으로 코드간의 상속을 수치로 나타내는 “Chidamber & Kemerer Metric”
이러한 메트릭을 통해 다음과 같은 이점을 얻을수 있다.
- 소프트웨어 시스템의 코드를 정량적으로 분석이 가능하다.
- 소프트웨어 시스템의 품질을 수치화 시키기 때문에 객관적인 분석이 가능하다.
- 소프트웨어 시스템의 문제를 직관적으로 파악할 수 있다.
- 소프트웨어 시스템을 다양한 시각으로 분석할 수 있게 된다.
오랜만에 지방에 강의를 하러 내려갔습니다. 강의 비용은 서울에 비해 많이 적은 편이며, 이동 시간과 차비 그리고 하루를 꼬박 다 날려야 하기 때문에. 금액만 보면 솔직히 지방에 가기란 쉽지가 않습니다.
하지만 전 지방은 찾아 내려가는 편입니다. 저 역시 고향이 부산이라, 지방 개발자의 서러움을 잘 알고 있기 때문입니다. 소마에 과정에 만난 제자이며, 청출어람이라고 평할수 있는 고액 수입자인 Sleep if you can의 신재명 대표님과 같이 내려갔습니다. 먼길을 마다않고 같이 가준 신재명 대표에게도 정말 감사하구요.
도착을 하자 마자 깜짝 놀랐습니다. 현수막과 포스터까지 곳곳에 부쳐져 있었거든요.. 참 예전 생각이 많이 났습니다. 지방 에서 무엇을 하겠다고 깔짝 거리는 시절. 아는것도 없으면서 잘난체 하고, 정보를 몰라 좌절하는 옛날 기억들이 났습니다.