[H사] 2019.12.17(화) I/O Matrix

프로젝트/프로젝트 일지 2019. 12. 17. 22:06 Posted by meanoflife
반응형

CRUD Matrix를 아시나요?
제가 프로젝트에 들어가서 가장 먼저 하는 일중의 하나가 CRUD Matrix를 만드는 일입니다.

CRUD Matrix란...
CRUD는 C : Create / R : Read / U : Update / D : Delete 의 첫글자입니다.
이는 화면에서 일어나는 이벤트인 "등록, 조회, 수정, 삭제"를 의미합니다.( 통칭 '거래'라고도 표현합니다. )
Matrix는 이들 거래를 특정 기준에 따라 상관관계표로 작성한 것입니다.

일반적으로 CRUD Matrix라고 하면, "화면"에서 "서비스"를 거쳐 "DB-Query"까지의 흐름을 정리한 표를 말합니다.
작성하는 정보는 "화면번호 / 거래유형(CRUD) / (호출)서비스 / DB(Query) / 사용테이블" 등을 포함하고 있습니다.

  ※ 링크 ▷ CRUD Matrix 에 대해 좀더 알아보기

금주 Task중에 I/O를 도출해야 하는 업무가 있습니다.
화면, 서비스, 비즈니스, DAO 및 각 단계에 사용할 I/O를 정의해야 하는 것입니다.
촉박한 일정과 많은 양을 처리하기 위해 오늘은 I/O Matrix라는 것을 작성해 보기로 했습니다.

1. 화면에서 호출하는 서비스 도출
  화면에서 거래를 발생할때는 특정한 API를 호출합니다.
  화면의 소스를 읽어, 이 API를 사용하는 Syntax를 도출하는 것입니다.
  
  일반적으로 이러한 API들은 인자값중 '서비스'를 호출하기 위한 '서비스ID'가 있습니다.
  이를 파싱하여 "화면 : 서비스ID, 서비스ID, 서비스ID ... "를 도출합니다. ( 1:n 관계 )

2. 서비스에서 사용하는 VO객체 열거
  현 시스템이 일명 '통 전문'을 사용하고 있었습니다.
  통 전문이란, CRUD거래에 사용하는 I/O를 하나의 VO( Value Object )로 만들어 사용하는 것을 말합니다.

  그래서, 우선 서비스에서 사용하는 모든 VO정보를 열거하였습니다.

3. DAO-Query에서 사용하는 I/O 도출
  쿼리를 Parsing하여 I/O정보를 도출하였습니다. ( 쿼리 Parsing은 "Java : SQL Parsing 참고" )

그리고, 각 단계별 VO 및 I/O를 도출하여 순서에 맞춰 매핑을 하였습니다.

이렇게 해서 전체 프로그램의 I/O를 화면단위로 모두 도출할 수 있었습니다.
그런데, 아쉬운 점은 하나의 서비스에서 CRUD를 모두 처리하다보니 ( 구분값에 의해 로직으로 분기 처리 )
거래단위로 I/O를 식별하는데는 어려움이 있었습니다.

디테일은 떨어지지만, 그래도 촉복한 일정을 맞춰 산출물을 만드는데에는 도움이 될 것 같습니다.
이를 활용하여 산출물을 작성해야 하지만,
그래도 하루를 투자하여 백데이터를 만들어 냈다는 것에 만족하는 하루 였습니다.

이를 CRUD Matrix처럼 도출한 것이라서, 개인적으로 I/O Matrix라고 부르고 있습니다.ㅋ

끝.






반응형