퇴근5분전

 

 이번 주말엔 프로세스 그리기를 첫번째를 만들었다.

 

 

특정 프로세스를 그린다.

 

 

프로세스 A를 더블클릭하면 또 하나의 프로세스가 나오고,

 

작업001,

작업002

 

작업항목을 더블클릭 하면... 두번째 만드는 화면으로 이동하게 된다. ( 아직 구상중... )

 

단위시간처럼 1~10(N)을 결정해두고 그리드에 색을 지정할수 있다.

 

프로세스A를 처리하는데 걸리는 시간이 그냥 다른거에 비해 길다? 정도?

작업001을 처리하는데 걸리는 시간이 다른거에 비해 엄청 짧다.

작업002를 처리하는데 걸리는 시간은 프로세스A를 처리하는 정도??

 

상대적인 느낌으로 길이를 그려주면 된다고 생각한다.

 

 

음... 그리고 작업과 관련된 화면을 어떻게 그릴지 구상중인데.... 어떻게 하면 좋을까?

 

 

 

 

 

 

 음 요새 머리속에 꽉 차있는... 프로세스 그리기...

 

직관적으로 프로세스를 그려서 설계할수 있다면 어떨까 ...? 라는 생각에 계속 그리고 지우고를 반복하고 있다.

 

만약 A담당자가 어떤 업무처리를 할때 이 과정을 UML등으로 그린다고 했을때? 난 뭔가 빠진듯한 느낌이 너무 든다.

 

제대로 공부를 하지 않아서 그렇게 느껴지는 것일수도 있지만... 왠지 모르게.... 아쉽다???

 

 

그래서 프로그래밍 하면서 늘 고민하고 있고 디자이너를 만든 후에는 꼭 프로세스 그리는 프로그램을 만들었다.

 

이번에도 ... 또 시도하고 있다.

 

현재의 ERP 시스템을 개발하면서 개발자로 투입되어 소스코딩을 하고 있지만... 개발하고 있는 이 화면이 담당자의 업무 중

 

어느 시점에서 하는지 ... 감이 안온다. 단순히 뭔가를 등록하거나 수정하거나 삭제하거나 타 업무시스템과 연계되는 일등을

 

기술해두는 문서자료를 봐도 좀 생뚱맞은 느낌이 든다.

 

 이 내용들을 어떻게 하면 좀 쉽게 보고, 연관되어 있는 화면이 언제 어떻게 쓰이는지를 쉽게 볼 수는 없을까?

 

보안사항이라서 꼭꼭 숨어라??? 머리카락 보일라? ... 인가????

 

 구글에 여러가지 키워드를 넣어가면서 찾아보고 있지만 딱 이거다 라는 느낌이 드는 그림, 문서등은 발견할 수 없다.

 

 새로 만들고 있는 프로세스 그리는 폼에 과연... 내 입맛에 맞게 설계가 되는지도... 의심스럽긴하다.

 

뭔가 만들어보면서 고쳐가야 하는데 뜬구름 잡듯이 추상화만 하고 있으니....

 

 어제보단 오늘 생각한게 더 좋은 방법을 찾았지만.. 이대로 좋은가? 싶다..

 

 글 작성하고 있는 지금도 구글링 옆에 켜놓고 보고 있지만... 참 문서 다운 문서만 있다.

 

내가 필요한 문서는 없어. 내공이 부족해서 해석이 안되는 것인가...

 

 

 작업방법을 간단히 기술해본다.

 

# A담당자

   - 프로세스01

                 작업1   __

                 작업2      ________

                 작업3                _

                 프로세스02          ____

 

위와 같은 형태로 처리해볼까 한다.

 

 A담당자가 어떤 일(프로세스01)을 할때 순서를 나열하여 정리한다.

     작업1을 하고 작업2를 하고 작업3을 하고, 다음 일( 프로세스02 )를 하게 된다.

     단순작업은 [작업]으로 나열하고 좀 복잡한 일들은 [프로세스]로 작업을 그룹화 한다.

 

     __ 의 크기는 해당 작업을 하는데 소요되는 시간 개념의 선긋기?로 한다.

    꼭 단위 시간을 뜻하는 것은 아니다.

 

   작업을 클릭하면 >> 간단한 드로잉 툴을 띄워서 관련 화면이 있으면 화면을 배치한다.

                             화면을 클릭하면 디자이너 오픈.

                             메모박스, 그림박스 등.... 배치 할수 있게 만들고..

 

   프로세스를 클릭하면 위에 처럼 해당 프로세스의 상세내역을 볼 수 있게 띄운다....

 

  현재는 타업무연계 프로세스관련된 내용을 정리중인데... 이거 정리되면 작업 드로잉 판넬을 만들려고 한다.

 

지금 프로젝트에서 간단히 그려볼수 있으면 그려봐야 되는데... 음... ...

 

 

 

 템플릿 기능을 추가했다.

 

예전 프로그램들도 가지고 있던거지만... 이번 프로그램에도 넣어야지 하고 ... 미뤄두었던 기능을 드디어 추가했다.

 

위치는 도구상자 아래 위치시켰다.

 

가져오기 버튼, 삭제버튼이 있다.

 

# 가져오기 버튼 : 디자인된 컨트롤을 선택하고 가져오기 하면 이름을 지정하고 저장하면 템플릿 목록으로 뜬다.

# 삭제 버튼 : 선택된 템플릿 컨트롤을 삭제한다.

 

 

 지금 플젝에서 툴을 사용중이지만 디자인도 여러개 했지만... 조건 판넬에 조건들이 비슷하게 들어가는데 매번 새로 생성하자니

 

귀찮아져서 미뤄두었던 기능을 추가했다.

 

화면에 어디에 배치할까 고민하다가 도구상자 밑에 넣었다.

 

 다시 프로세스 디자인 UI 를 다시 고민해보고 있다. 딱히 답이 안나오긴 하지만... 생각하다보면 아이디어가 나오겠지...

 

 

 

 개발중에... 완성된 기능을 써본다.

 

이 기능은 PL이 작업요청한 것을 저장하는데 처음 모두 복사해 붙여넣은 후

 

캐럿을 위치해두고 Ctrl + Enter 를 이용하여 구문을 조각 내준다.

 

물론 한문장씩도 등록이 가능하다.

 

# 첫번째 케이스

   등록을 해둔 상태에서 세번째 줄 '캐럿' 앞을 클릭하여 캐럿이 깜빡거릴때 Ctrl + Enter 키를 누르면 문장이 두개로 분리된다

 

 

        분리된 결과다.

 

 

# 2번째 케이스...

        통으로 등록한 글을 일정부분을 선택 한 후 Ctrl + Enter를 입력하면 3개로 분리해준다.

   

 

      3개로 분리된 구문...

 

 

   여러 문장으로 구문으로 적혀 있는 것을 기능에 맞춰 잘 잘라주고 저장을 한 후 비주얼 스튜디오에서 해당 내역을 등록한 화면을 개발할때

  주석문으로 끌어와서 사용할 계획이다. 메모보내기 기능은 앞에 디자인 화면에서의 뷰모드에서 보여지는 메모 기능에 아이템으로 내용을 보내는 버튼이다.

 

여러 줄의 문장이 있을때 중간에 계속 분리해 나가도 순서가 뒤엉키지 않게 만들었다.

 

 

※ 1~6까지 하나씩 넣고 중간 중간을 분리해나온 결과 위처럼 순서가 바뀌지 않는다.

 

 

이번 주말엔 비주얼 스튜디오의 Addin을 개발할 예정이다.

 

위 메모들을 해당 화면 소스에서 볼수 있게 하고 주석으로 꽂아 넣게 만들것이다.

 

## 추가~

 

 등록된 기능 목록은 아래 처럼 비주얼 스튜디오에서 목을 볼수 있다.

 

 

그리고 < 버튼 클릭하면 현재 커서 위치로 주석문을 붙여넣기 해준다.

 

이렇게 한곳에서 기능목록을 관리하고 비주얼스튜디오에서 목록을 직접 볼 수 있다면.... 개발이 좀더 쉬워지려나?

 

쉬는 날 이제 코딩하는 게 쉽진 않넹...

 

 

 음 요새 디자이너를 사용해서 프로젝트를 진행하고 있다.

 

익숙해지고 있지만... 뭔가?? 느린 느낌????

 

그래서 시작 측정을 위해 기능들을 고민하다가 추가했다.

 

첫번째,

화면을 등록하고 상세화면을 열었을때 디자인 시작 시각을 기록.

 

디자인 후 소스변환을 하면 디자인 종료 시각 기록.

 

다음 작업완료 버튼을 클릭하면 작업 완료시각을 기록.

 

이제 추가했기 때문에 새로 시작하는 화면에서나 볼 수 있다.

 

두번째, ( ... 작업중 )

PL이 작업요청서같은걸 엑셀로 만들어서 준다.

 

이 엑셀에는 해야할 작업내역들이 기록되어 있는데, 이 내역을 보면서 작업한다.

 

모니터가 노트북 모니터에서 하기때문에... 걸리적 거린다. ...

 

비주얼스튜디오와 엑셀을 번갈아가면서 보거나, 엑셀 내용을 복사해서 소스작업할 곳에 붙여넣고

 

작업을 이어간다.

 

이래 저래 좀 귀찮은 작업이 되므로... 고민하다 추가한다.

 

디자이너에 작업내역을 입력하는 판넬을 만들어 추가한다. ( 엑셀의 시트 내용을 통째로 복사해서 붙여넣기 )

 

판넬 내에서 적당한 방법( = 따로 고민해둔 방법이 있음.)으로 내용 쪼개기를 한다.

 

쪼개진 내용중에 일부 필요한 내용은 디자이너의 뷰 기능에 있는 메모란으로 복사할수 있도록 버튼을 배치한다.

 

내역을 쪼개서 저장한 후에...

 

비주얼 스튜디오에서 AddIns으로 해당 화면에 맞는 작업내용들과 맵핑 한 후에

비주얼 스튜디오 내에서 보여주고, 해당 내역을 소스상에 주석으로 배치 할수 있게 만들어준다.

 

그리고 작업 후에 또... 고민해봐야지...

 

 

 

... 기타 다른 버그 수정

 

ver 1.0.0.37
  - 반투명 기능 추가. ( 엑셀보고 입력할 때...)
  - 읽기전용 필드 설정 ( DimGray 배경색 처리) 및 소스변환 처리
  - 그리드 정렬 변경시 선택위치 변경되는 부분 체크 수정.

 

아직 한참 적응중이다.

 

 자리 이동시 짐을 줄이기 위해 노트북 1대로 모니터 없이 작업을 하려다 보니, 프로그램을 띄워서 설정할 때

작업내역 엑셀을 보기가 불편해서 반 투명 처리를 추가해봤다.

 

작업은 해봐야 알겠지만... 어떨지...

 

 읽기전용 필드 설정을 매번 수정해야해서 그리드 설정할때 같이 해버리는 걸로 바꾸었다.

 > 소스변환 처리까지 마침.

 

 

 음 작업시간을 확인하고 있지만.... 그렇게 작업이 빨라지진 않는다. 기존 변환 프로그램과 비슷한 시간이 걸린다.

 

 

 

 

 목요일(5.4) 처음 디자이너를 이용해서 작업을 해봤다. 시작시간 부터 종료까지...

싱글폼 탭 3개에

내부 컨트롤이 38개.

이걸 디자인 해서 변환하고 소스 작업 마친 시간이 6시간 걸렸다. ㅡ.ㅡ;;

 

겁나게 오래 걸렸넹 디자인만 3시간...

 

음.. 전날 프로그램 수정까지 마친 상태에서 가져가서 바로 디자인하고 변환 했더니... 문제가 생겼다.

 

 WPF에서 TextBox에 숫자입력관련 처리를 전날 마무리하고 테스트해갔지만, .net 3.5에서 적용이 안되고 에러가 똭!!!

 

wpf의 .xaml 에

 

 xmlns:num="clr-namespace:System.Globalization;assembly=mscorlib"   를 추가하고

 

<TextBox  Height="21" TextAlignment="Right" Name="txtNumber" 
                  Text="{Binding Price,
                  UpdateSourceTrigger=PropertyChanged,
                  StringFormat='#,##0',
                  ConverterCulture={x:Static num:CultureInfo.CurrentCulture}}" />

 

다음 .xaml.cs 에

       public decimal Price { get; set; }

 

       txtNumber.DataContext = this;

 

로 처리하니까 숫자로 입력하는 경우 ,가 자동으로 찍힌다.

 

이게...  .net 3.5에선 안된다ㅡㅡ;;  3.5에서 하려면 IValueConverter를 구현하고 적용하여야 한다.

 

그걸 굿센 개발프레임웍에서 어떻게 지원하면 좋을지 찾고 고치고 디자인을 상세조정하는 3시간이 소요되었다.

 

그 다음 소스단 처리를 위해 작업하고 테스트 하니 3시간이 훌쩍... 생각보다 오래 걸리네..?

 

주말에 다시 소스를 재정비해놨다. ( 더이상 어떻게 고칠지... 생각이 안난다. )

 

디자이너는 더 고칠것 같지는 않고.. 추가적인 기능을 구현할 것 같다.

 

첫번째, 테스트작업. ( UI 테스트 기능을 스크립트로... )

두번째, 회의록기능.

 

기타.

  VS AddIns 으로 화면별 조회정보? 나 테스트 정보 같은걸 만들어줄까나?

 

 

 

기존 사용자 정의 툴 박스를 변경했다.

 

원래는 {ID : 이름} 조합으로 등록하면

 

라벨 1개, 다른 컨트롤 1개를 각 행별로 만들었는데, 이번엔 1쌍으로 만들어놨다.

 

*NO_STDM:현설번호:CFD:코드파인드명
+2:제조일자
*FR_SBM:시작일자:TCL:yyyy-MM-dd
*TO_SBM:종료일자:TCL:yyyy-MM-dd
CD_ORDPLC:발주처:CFD:코드파인드명

 

구조에 대하여 설명하면 {* 필수여부}{ID}:{텍스트}:{컨트롤타입}:{부가정보}  이다.

 

쌍으로 동작하는 것 뿐이고

중요한건 +2:제조일자  이다

 

 '제조일자'는 헤더, '+2'는 아래 두개를 쌍으로 묶은다.

 

그림을 보면 제조일자에 두개의 날짜 컨트롤이 묶여 있는 것을 볼 수 있다.

 

생성시켰을때 다음과 같이 우측에 표시된다.

 

 

 제조일자를 디자이너에 옮기면!!!   오른쪽엔 옮긴 아이템으로 표시를 하고!!  날짜와 날짜 사이라면 '~'를 추가해주고...

 

 

연휴때 남은 작업을 마저하고 5월부터는 타임어택을 해야지.. 얼마나 빠르게 만들어 낼 수 있을까?

 

변환포멧 두가지 정도를 추가할 생각이지만... 연휴에 만들면 되는 것이고...

 

 

 

 

 새로 만든 디자이너에 적응중이다. 써보면서 떠오르는 부분들이 있어서 두서없이 기록해본다.

 

 아직까지 자잘한 버그들이 나타나지만 그래도 금방 고칠수 있는 수준이라서... 큰 이슈는 이제 없다.

 

다만 몇 번 안써봐서 적응이 아직 덜 되었다. 작업을 하면 뭔가 집중할 수 없는 환경문제인건가...

 

아무튼 계속 폼을 만들어가면서 적응중이다. 어제는 탭 3개짜리 디자인을 하고 저장! 하는 순간 디자인 데이타가 날아갔다.

 

원인은 데이타 수집과 설정하는 두개의 메서드의 접근자를 얼마전에 전부 바꾸었는데, 탭 페이지컨트롤만 바꿔두지 않아서 발생했다.

 

MethodInfo 로 리플렉션을 이용하여 메서드를 뽑아서 호출하는데 접근자 지정 플래그값을 NonPublic으로 설정하여 메서드를 읽어오지

 

못하여 발생하는 문제로 수정을 간단히 끝냈다.

 

 툴박스에서 컨트롤을 하나 하나 가져오니 불편하기에 컨트롤 복사기능도 추가했다. 컨트롤키를 누른채 컨트롤을 찍고 이동시키면 복사체를 만들어 붙여넣어준다.

 

다른건 몰라도 상세폼을 디자인 할 때 컨트롤 이름과 속성을 수정해야되는데... 이것이 현재 가장 큰 이슈다.

 

어떻게 하면 쉽고 빠르게, 편하게 입력 할 수 있을까? AI를 손대고 싶어진당. 대신 디자인도 하고 코딩도 하고 ...

 

소스 변환율을 대략 90%까지 올려놨는데... 자꾸 머리속에 더 더 ... 더를 떠올리게 된다. 앞으론 DB랑 붙여볼까?

 

 작업하는 순서를 간단하게 정리해본다.

 

1. PL에게서 [작업할 내역이 담긴 문서]를 받는다.

2. 해당 문서를 [내 작업내역관리 프로그램]에 등록해둔다.

3. [작업할 내역의 화면정보]를 [내 작업내역관리 프로그램]의 화면 목록에 등록한다.

4. 디자인을 작업을 한다.

5. 디자인 된 화면에서 소스변환 작업을 하여 프로젝트 관리 소스 폴더로 옮긴다.

6. DB와 관련된 설정 정보를 셋팅한다. ( VS 또는 SSMS에 생성되는 코드를 붙여넣은 후 실제 컨트롤과 연결하는 코딩을 한다. )

7. 컨트롤들의 이벤트 중 다른 컨트롤들과 연결되거나 DB연결과 관련된 소스코드를 작성한다.

8. 빌드하고 테스트 및 디버깅

9. 배포한다.

10. 비주얼 스튜디오에서 작업내역프로그램으로 화면에 대한 작업종료를 작성 전달. ( 스케쥴러에 완료시간이 표시되도록... )

그리고 논다. ㅡ.,ㅡ,,

 

기존 프로그램이 대략 위 작업이 간단한 조회는 30분이내완료, CRUD 기본로직은 1시간~2시간( 내부 컨트롤이나 컬럼 갯수에 따라 증가 )

좀더 복잡한 작업들이 있으면 조금 더 추가...

 

새로 만든 프로그램으로 아직 시간 측정을 못해봤다. 5월엔 또 다시 개발 타임어택을 해서 평균시간을 측정해봐야 겠다.

 

DB작업자체를 ... 붙이면??? 어떨까?????

 

컨트롤 맵핑을 UI에서 마져 해버리고 소스를 생성한다면????

 

솔직히 이부분은 코딩이 더 빠르다.

  1. VS에서 추가해둔 프로시져관련 소스생성 기능을 띄워서, 프로시져를 지정하고 버튼 두번 누르면 소스에 박힌다.

  2. SSMS에서 프로시셔 선택후 프로시져 정보 보기를 하면 관련 소스가 나오므로 복사해서 소스에 붙인다.

음... 훨씬 간단하게 되므로 DB부분은 개발하다가 멈춘 상태이다. 조금 더 좋은 방법을 모색해보고 있다.

 

 

변환 버튼을 누르면 위처럼 확인창이 뜬다.

 

사용자정의 컨트롤이면 Yes, 다이얼로그면 No 를 선택하면 된다.

 

차이는 적용되는 스타일명이 바뀔뿐이다.

 

변환을 완료하면 위처럼 프로젝트 파일들이 생성된다.

 

변환된 소스에 비쥬얼 스튜디오에 등록된 내 확장프로그램으로 프로시져와 파라미터 셋팅을 마치면 소스가 기본동작을 할수 있게 된다.

 

Link타입으로 등록된 버튼은 뷰 모드에서 해당 화면으로 이동시켜준다.

 

 

 + 수정 추가

 - 마스터-디테일( 그리드 2개) 짜리에 대한 소스 변환 완료.

 - 팝업창 디자인 소스 변환 완료.