퇴근5분전

 

 #목적
   소스 디렉토리 ( 솔루션 )를 모두 검색해서
  특정 문자열을 찾아 트리 구조화 한다.


 #주요내용
 - 참조되어 사용되는 타 모듈명, 사용되는 SP명
 - 주석문 내에 위치한 모듈, SP는 제외 한다.


 # 방법
   1차 검색시에는 모두 찾음.
   2차 검색은 검색된 위치에서 주석여부를 판별!

 

 

 화면UI에서 사용하는 SP, 다른 화면UI 검색해서 트리구조로 뽑아내는 소스를 만들었다.

기본적인 조건이 네이밍 룰에 맞춰 개발된 소스를 바탕으로 한다.

 

  모듈명_

  모듈명PR_ 로 되어 있는 TEXT를 모두 검색하여 트리구조화 하고 검색된 TEXT의 후방탐색으로 주석여부를 판별한다.

 

// 으로 시작되는 TEXT행은 파싱자체를 제외함.

 

// 으로 시작되지 않고 중간에서 //로 시작되면서 검색된 TEXT가 //뒤에 있으면 제외.

 

/*

   .. 주석내에 있는 모듈 또는 SP인 경우 별도의 플래그 값을 가지게 됨.

*/

 

 소스의 ROOT를 조건으로 주어졌을때 모두 돌면서 찾으니 5분가량 걸렸다. ( 응답없음...! )

 

 엑셀로 떨궈볼까나?...

 

### 완성작!!

 

< 메인 화면 >

 

< 검색 창 : 진행 과정을 볼 수 있다. >

 

< 엑셀로 떨어진 파일 >

 

 

 

간단한 회의록 작성기..

 

 # 회의 참석자 사원A, 사원B

 # 안건 1, 2, 3 등을 미리 등록하고

 # 제목, 장소 일시를 작성!

 

 해당 파일을 열어서

안건을 클릭(선택)하고, 사원A를 더블클릭하면 작성창이 뜬다. 사원A가 안건에 대한 얘기를 할때 간략하게 또는 상세하게

받아 적어넣을수 있다.

 

현재로는 받아 적는 것만 넣어놨다. 그림툴을 추가해두면 그림도 그릴 수 있으니 좋겠지? 또 카메라나 녹음 기능을 추가하면...

 

 

 

 

 

기능을 또 추가하였다.

 

우선 투명 컨트롤 점선으로 겹치는 부분 보이도록 처리. ( 깜빡이는건 ㅠㅠ.. pass )

객체의 타입에 Exec 를 추가

선 타입을 두가지로 늘림. 실선과 점선!

 

이것으로 과연...?

 

프로세스의 흐름을 알아 볼수 있게 표시할수 있을까? 출퇴근하면서 메모장에 이런 저런 그림을 그려보고 있지만..

왠지 모르게 부족해보여.. 이해가 아직 부족한것 같다. 이걸로 대략적이나마 내가 원하는 모습으로 표시가 가능할까?

 

 업무적인 것을 그려보려고 현재 맡고 있는 업무에 대하여 적용 중인데 문서도 없고, 딱히 가시적인 정보도 없다.

단지, UI를 어떤 sp를 이용해서 그려달라고 하면 그냥 만들뿐이라서... 누가 언제 무엇을 어떤 일을 하는지 감이 안온다.

 

 데이타가 나오고, CRUD만 정확한 동작을 하며, 이걸 정말 빠르게 만들어주면 되는 일이라서... 툴과 잘 짜여진 sql을 이용하면

 

금방 만들어 내는게 가능해졌다. 그런데.. 업무는 모른다. 요새 뭔가 지루한? 막연한?? 답답함이 있네...

 

머리속에 다른 업무들을 그려보려고 해도...

 

 코딩을 주로 하면서 늘 가지던 생각은 업무는 언제든지 두 팔걷고 나서면 할 수 있을 것이다 였는데...

 

언젠가 원하는 프로그램을 만들고자 할때 코딩에서 막히면 안되지 라고 생각해서... 코딩을 많이 했는데...

 

나이가 이제...

 

 

 

 

 

-----------------------------------------------------------------------------------------------------------------------------

 

 

 그룹핑 기능을 추가로 넣어봤다.

 

 

 데이타 흐름에 대한 시각화... 관련해서 구글링 해보니 칸반 이란게 검색되어 나오던데.. 무료 툴도 있고. 내용은 꾀 괜찮던데...

 

여러가지 프로세스 다이어그램을 살펴보니 프로세스 자체적으로 그룹같은 기능이 필요한듯 하여 만들어 넣었다.

 

편의사항도 몇가지 추가 했다. 

 1. 프로세스를 더블클릭하면 해당 프로세스로 점프를 하는데 다시 되돌아 오는 기능을 만들어놓았다.

 2. 디자이너가 상/하로 쪼개져 있는데 이걸 라벨을 더블클릭하면 상단 프로세스 디자인 창을 크게 키워주고, 다시 더블클릭하면 원위치 시켜준다.

 3. 링크 라인을 점선 화살표, 와 >>> 추가했다.

 

그룹 기능을 추가하여 기존 xml을 사용못하게 되었다.

 

기존에 그려놓은것은 모두 다시 그려야 한다.

 

 

 

 아싸! 성공했다.

 

 네번째 시도는 정렬하다가 포기했다. 그냥 막막해서... 그러다가 문득 떠오르는 생각이 있어

이걸 두번째 주석날려먹어야 정렬되는 프로그램에 적용하다가 완성이 되었다.

주석 날려먹게 된 배경은


/*콤마 앞, 뒤 섞은것*/
SELECT  T1.COL1 A, --에이
        T1.COL2 B  -- 비
       ,T1.COL3 C/*씨*/       
  FROM  TB00 T1 /*테이블*/
  LEFT 
 OUTER  JOIN LTB00 T2
    ON  T1.COL1 = T2.COL1/*ON주석*/
   AND  T1.COL1 = T2.COL2
 WHERE  T1.COL1 = 'A'/*WHERE주석*/
 GROUP  BY T1.COL1,/*에이*/
           T1.COL2  --비
          ,T1.COL3,  --씨
   T1.COL1,/*에이*/
           T1.COL2/*비*/
          ,T1.COL3/*씨*/         
HAVING  COUNT ( T1.COL1 ) > 0
 ORDER  BY T1.COL1 desc,/*에이*/
           T1.COL2 asc/*비*/
          ,T1.COL3 desc/*씨*/
,T1.COL1,/*에이*/
           T1.COL2/*비*/
          ,T1.COL3/*씨*/

 

 

사용자가 찍는 콤마와 주석 위치에 따라 주석 배치가 제대로 안되었던 거였는데...

이게 주석들을 모두 제거하면 포맷이 이쁘게 잘 나왔었다.

이걸 해결했다.

 

 주석 없이 쓰다가... 너무 불편해서... 시간이 좀 될때 잊어버릴만 할때

다시 설계를 해서 세번째 시도... 실패.. 역시나 case문이 다중으로 들어가면 골아프다.

 

 남이 짜놓은 쿼리문에 주석이 많을때... 이걸 어떻게 해볼 방법이 없었기 때문에,

구글링을 해봐도 딱 내입맛에 맞는 정렬 프로그램이 없어 만들자였는데 1년만에 된 것 같네.

 

 

-- 콤마 앞으로 배치

 

-- 콤마 뒤로 배치

 

그리고 이건 SSMS 에 들어가는 SqlFormatter 의 설정화면.

 

 

 

 

 

 음... 두번째꺼 워낙 잘 되긴한데... 주석문을 모두 없애버리니까... 쩝.

 

세번째로 다른 설계를 해서 만들었는데... 실패했넹 ㅡ.ㅡ;;;

 

다 잘되고 딱 좋은데 case문을 만나면서 꼬여버렸네!

 

좋다 말았네.. 쩝. 코드도 심플하고 딱 좋은데..

 

 

 

 낮에 좀 써봤는데... 급조한거라 조금 불편한 기능이 있었다.

 

1. 새 노드를 만들었을때 포커스를 더블클릭해야 들어가는 것 > 생성되자 마자 편집포커스!

2. 링크ID가 보여져서 어떤 링크인지 알기 어려움. > 이름으로 보이도록 변경.

3. 타입( 프로세스, 모델, 화면 ) 에 대해 테두리를 넣었지만... 좀 부족해보여... > 아이콘을 넣었고, 화면일때는 MockupStoryBoard에서 스샷 저장시 

  해당 이미지의 썸네일을 별도로 저장하고 이를 아래처럼 보이도록 바꿔줌.

 

자잘한 버그들 잡고 우선 내일 또 써봐야지...

 

 

 

 프로젝트를 하면서 업무에 대한 이해를 좀더 쉽게 하려면??? 고민을 많이 해보고 있는데...

 

그래서 일주일 설계해서 주말에 2일간 열심히 만들었다. 더 많은 기능을 붙여버리고 싶은 마음을 최대한 자재하고 가장 최소기능만 넣었다.

 

MockupDesigner를 붙일까 말까 고민하다가 StoryBoard랑 겹칠까봐 넣지 않았다. 어떻게 보면 이게 더 스토리보드 같을텐데...

 

음.. 그럼 이 모듈을 독립적으로 띄울까? 이것도 고민인다.  띄워야 할 프로그램이 많아지니까... 이 프로그램을 Story Board에 붙일까?

 

우선 요구사항들에 대한 정리를 아래 화면에서 등록한다.

 

 

새 프로젝트 프로세스 상상 < 이란걸 등록하여 더블클릭하면 상세 창이 뜬다.

 

이때 중앙 판넬 두개가 뜬다. 상단은 프로세스 다이어그램을 그리는 판넬, 아래는 각 프로세스에 필요한 데이타모델을 등록한다.

 

 

 

아래 대충 그려보면 목록에서 보기, 등록으로 연결되고, 보기 에서는 수정과 삭제기능으로 대략 연결되는 구성도를 그려놓을수 있다.

아래 목록조회 에서 필요한 데이타 모델을 게시글, 첨부파일, 등록자 로 정하고 각 모델에 필요한 속성정보를 등록할수 있게 되어 있다.

첨부파일 정보에 우측 속성창에 첨부파일명, 첨부파일경로, 확장자, 사이즈 등을 각각 기록해둔것이다.

 

 

 

 이런 저런 프로세스관련 정보들을 간략하게 기획하거나 분석할때 기록해둘수 있게 만들고, 아래 모델들을 이용하여 DB모델 설계에 사용할 수 있지 않을까?

 

모델정보를 ERD 논리모델처럼 확장 할 수도 있을 것 같긴한데... 거기까지는 또 범위가 너무 크지?

 

 

 

 오늘 신규 페이지를 할당 받고, 페이지 디자인을 하는데... 헉!

 

컨트롤을 삭제(Delete 키)를 하니 객체 참조 오류 에러 메세지가 떴다.

 

사용자정의 컨트롤 위에 레이어 그리드를 올렸더니...

 

음... 거기다가 레이어 그리드를 사용자정의 컨트롤 위에 올리고 RowCount와 ColCount를 바꿨더니, Cell 조절바가 사라졌다?

 

엥... 또하나 사용자 정의 컨트롤 위에 레이어그리드를 놓고 레이어 그리드를 클릭! 하니 ... 레이어그리드 컨트롤이 조금씩 작아진다?

 

음 또 사용자 정의 컨트롤을 올리고 컨트롤을 올리니... padding값이 없이 풀로 가득채워버렸네? 어랏..

 

버그 폭탄 맞은 것 같은 느낌에 이거 저거 고치고 있는데 잘 안되었는데, Cell 조절바가 사라진 버그는 어떻게 고쳤는지 모르겠다.

 

이벤트 따라가다가 고치고 테스트 하고 해도 안잡혔는데! Ctrl + Z누르다가 멈추고 띄웠더니 잘 떴다? 뭐지???

 

소스가 점점 복잡해지니까 디버깅이 어려워지네.

 

MockupII에선 조절바를 없애고, 레이어그리드가 지금은 2중 구조인데 그것도 1개만 사용해서 구현을 했다.

 

버튼, 텍스트, 레이어그리드, Dockpanel, Stackpanel 컨트롤을 만들었는데... 언제 다 만들지...

 

만들어지면 소스는 엄청 가벼울 것 같다.

 

 

 찜짐한 버그를 어떻게 고쳤는지 전혀 모른체 오늘 넘어가게 되네...

어여 MockupII를 만들어서 대체 해야겠따.

 

버그폭탄은 다 고쳤다.

 

요새 또 다른 머리속에 떠오르는 프로그램 기획...  노트에 계속 그려보고 있는데 잘 되려나..?

 

몇일째 출퇴근시간에 그려보고 있는데... 잡힐듯 안잡힐듯...

 

 신규 Mockup은 계속 진행중인데...

프로젝트중에 사용중인것도 기능 수정을 해야 하므로...

 

. 레이어 그리드에 이미 올라가 있는 컨트롤들을 유지하면서 RowCount, ColCount를 변경할 수 있게 수정함

    : 다행이도 사용자 개체수가 유지된다. 증가되면 우짜나 싶었는데....

 

. 레이어 그리드 내에 컨트롤들을 이동시키거나 자리 바꿈 가능.

 

어... 오늘 저녁에 한게 두개였나?... 까먹었네?...

 

. 어제한게 아마 delete 키 눌렀을때 컨트롤이 날아가는 현상을 잡았고...

. 미리보기 상태일때 편집을 막았다.

 

 

안적어 놓으니 기억이 안나네...

 

다음 추가할기능은 xaml을 그대로 로딩하는 거!( 간간히 기존 화면들 수정건이 들어오는데... 어려운기능은 아니니 쉽게 가자 )

 

 

 

 Mockup에 새 기능을 추가 하려고 하다가!! 소스를 백업하고 기능을 붙일까? 아니면 새로 만들까 하다가...

 

새로 만들기로 결정했다. 이유는 이미 만들어진 디자이너 소스가 꾀 복잡하다. 나름 쉽게 구성한다고 했었는데

이런 저런 기능들을 넣다보니... 이번에 사용자 객체수 조절하다보니 어렵더라..

 

좀더 쉽게 처리 할수 있는 구성으로 만들어보자. 그래서 좀더 쉽게 바꾸는 방향으로 객체 디자인을 바꾸었다.

 

그리고 샘플도 만들어보았다.

 

 

가장 쉽게 만들수 있는 텍스트 박스!

가장 손이 많이 가는 레이어그리드!

 

차츰 차츰 기능을 다시 구현해보고 쓸만한게 나와야 할텐데...

 

좀더 쉽게 개발이 가능했음 좋겠넹...