JSFW.Designer] UI까지...
새로 만들어진 프로그램!!
미리보기 한 상태이고, 디자인상태가 되면 숨겨진 컨트롤들이 되살아 난다.
- 버그. dockPanel 구현로직이 잘못되어 있어.... 이런 저런 옵션들을 주면 컨트롤이 엉뚱한곳에 표시되거나 뒤로 숨어버리거나...
- TableLayout 을 이용하여 구현한 컨트롤에 Jsfw_Mover 를 붙였을때 ... Mv관련 컨트롤들이 추가되면서 Row, Column이 증가하면서 제대로 안되어 우선 패스.
- delete 할때 Grid가... 엉뚱한게 지워진다.. ( 버그 잡음 12-27 )
대략 기능들은 만들어져있고... 위에 버그는 다시 만들어야지...
디자인이 이쁘게 안나오네 ... 나중에 색상조합을 해봐야겠다.
--- 추가~~~
버그는 다 잡았다.
다행이 JSFW_Mover를 쉽게 수정해서 마쳤다.
기존 > 선택된 컨트롤의 부모창에 M, L, R, T, B 각 이동기능을 가진 컨트롤들을 추가하고 해당 컨트롤위에 챡! 붙였었는데...
TableLayout에 들어가 있는 컨트롤을 선택했을때... 추가되는 컨트롤때문에 골때린 현상이 생겨서 이번에 수정했다.
추가없이... 가능하도록 만들었다.
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
JSFW.Designer III] 또 다른 디자이너... (0) | 2017.01.08 |
---|---|
JSFW.Designer] 디자이너... 또 하나 더? (0) | 2017.01.04 |
JSFW.Designer] 만들다 보니... (0) | 2016.12.22 |
JSFW.Designer 또 한번 엎어볼까나??? (0) | 2016.12.19 |
화면정리 프로그램] 추가 기능 II ( 테스트 시나리오 ) (0) | 2016.12.13 |
JSFW.Designer] 만들다 보니...
만들다 보니 기존 컨트롤들을 거의다 구현이 끝났네.
# 가장 까다로운 레이아웃 그리드는 TableLayoutPanel로 다시 만들었다.
예전에 내가 만든 레이아웃그리드엔 꾀 많은 코드가 들어갔는데... TableLayoutPanel을 손봐서 만든건
코드 복잡도가 많이 줄었다. 잘 만들어져 있는 TableLayoutPanel의 기능들을 이용하는 것 뿐이니까!
동적으로 Cell Resize 처리를 하는게... 쉽지 않았다.
기존에 판넬 사이즈 변경이나 이동처리 하는 로직으로 안된다. 계속 비교는 해봤지만...
우연히 찾은 소스에서 설마!! 하고 적용했더니 되더라.. ㅡ.ㅡ; 그게 될줄이야...
# 데이타 그리드는 편집기능 판넬만 떼어다가 가져다 붙였다.
새로 구현하려니 너무 귀찮아서...
# 오늘 드디어 미친듯이 새로운걸 만들때마다 괴롭히던게 잡혔다.
에러 문구
---------------------------
Microsoft Visual Studio
---------------------------
'CellContent' 속성의 코드를 생성하지 못했습니다. 오류: ''JSFW.MockupIII, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 어셈블리의 'JSFW.Controls.MockupIII.mkLabel' 형식이 serializable로 표시되어 있지 않습니다.'
---------------------------
확인
---------------------------
에러 문구가 왜 뜨냐면...
mkLabel에 새 프로퍼티로 CellContent라는 걸 만드는데 class를 새로 정의한 것이었다.
이걸 mkLabel에 추가하고 Form 디자이너에 mkLabel을 드랍해두고 아무 프로퍼티나 수정을 하게 되면
프로퍼티내용을 직렬화 하는 과정에서 새로 만든 클래스 타입을 인식을 못하는것 같다.
실제 [Serializable] 걸어도 의미없다.
그렇게 삽질을 하다가 찾은게
[System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
요거다. 직렬화 하지 말라는거... 프로퍼티위에서 걸어주면 form에서 직렬화 하지 않아서 에러 메세지가 나타나지 않는다.
하나의 어셈블리 파일로 만들꺼면 set을 internal로 걸면 또 직렬화 하지 않는다.
저 클래스의 용도가 .designer.cs에 소스코드로 보여질 내용이 아니므로 직렬화해서 관리하지 않아도 된다.
난 경우가 다르므로 꼭 직렬화를 피해야 한다. 다른 프로그램만들때 저런 에러가 나서 프로퍼티말고 Set, Get Method로 처리했던것 같은데...
어째든... 성공이다. 나중에 내부 데이타들을 모두 다른 dll로 뽑아내고 플러그인에 들어갈 객체로 써야 하므로 internal이면 안되기 때문에...
[System.ComponentModel.DesignOnly(true)] 요것도 있다.
.resx에 프로퍼티 직렬화되어 값을 보존하는 듯 하다. .designer.cs 소스로 생성되어 뿌려지지 않는다.
위 에러가 나타나서 해당 프로퍼티에 걸었더니 .resx에 형식이 (없음/null) 로 보이게 된다.
여기까지 만들어진 화면이다. ( 아래 레이어 mkLabel2는 테스트 도중 위치값이 바뀐경우라... 에러 아님.)
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
JSFW.Designer] 디자이너... 또 하나 더? (0) | 2017.01.04 |
---|---|
JSFW.Designer] UI까지... (0) | 2016.12.26 |
JSFW.Designer 또 한번 엎어볼까나??? (0) | 2016.12.19 |
화면정리 프로그램] 추가 기능 II ( 테스트 시나리오 ) (0) | 2016.12.13 |
화면정리 프로그램] 추가 기능. (0) | 2016.12.09 |
JSFW.Designer 또 한번 엎어볼까나???
현재 툴로도 나름 만족하지만... 자꾸 눈에 밟히는게 웹을 지원하려면.. 디자이너의 컨텐츠가 부족하다...
컨텐츠 부족 요새 머리속을 흔들고 있다.
MockupII는 뭔가 어정쩡한 느낌이라 소스를 버리고,,,
MockupIII를 만들었다. ( 잘만들어졌다... ㅠㅠ )
문제는 컨텐츠인데... 머리속에서 뱅글뱅글 돌아....
이번에 만들어진 컨트롤들... 왼쪽은 테스트로 올려둔거.. 두번째는 선택한 컨트롤의 속성탭, 세번째는 첫번째 판넬을 xml로 변환한것. 네번째(오른쪽 마지막)는 xml을 다시 컨트롤로 변환시킨것...
전처럼 어렵게 코딩안해도 변환이 쉽고, 필요한 속성을 쉽게 추가 할 수 있다.
나중에 플러그인으로 내부데이타(속성)들을 받아서 변환처리도 쉽게 할수 있게 구조를 다 바꾸어 두었다.
--- 여기서 문제는.... 컨텐츠.부족!!
윈폼이라든가 wpf는 그럭저럭 비슷하게 디자인을 할 수 있게 만든다.
그러나 웹!은 어떻게 할까? 요새 구글링으로 와이어 프레임 프로그램들을 살펴보고는 있지만 대부분 모바일용이 많고 웹도 있긴한데...
디자인은 이쁘게 나오던데... 그렇게 많은 컨텐츠가 필요할까 싶기도 하고... html로 변환한다고 했을때... 어떤 프로그램은 그냥 그대로 뜨는것 같던데..
어떻게 한걸까?
일단 디자이너를 만들기전에 컨텐츠 정리를 해봐야 하는데... 머리속에서 뱅글뱅글 돌기만 한단 말이지...
포털사이트를 디자이너로 만든다고 했을때... 필요한 컨트롤들이... 과연? css는??
출퇴근시간 수첩들고 이리저리 그려보고 있는데... 쉽지 않네..
밤에 썼더니.. 오타가 많넹...
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
JSFW.Designer] UI까지... (0) | 2016.12.26 |
---|---|
JSFW.Designer] 만들다 보니... (0) | 2016.12.22 |
화면정리 프로그램] 추가 기능 II ( 테스트 시나리오 ) (0) | 2016.12.13 |
화면정리 프로그램] 추가 기능. (0) | 2016.12.09 |
화면정리프로그램? 으로 이름을 바꾸자. (0) | 2016.12.04 |
화면정리 프로그램] 추가 기능 II ( 테스트 시나리오 )
화면 정보를 등록하는 화면에서 [테스트 시나리오] 탭을 추가 했다.
우선 필수 파라미터 체크하는 것인데. 경우의 수를 모두 담기엔... 무리가 있다.
파라미터가 10개 만되어도 2^ 10 만큼의 테스트를 해야 하므로 ... 미친짓이다?
그래서 10개일경우 1개씩 값을 넣으면서 그때 필요한 필수값<<에 대한 체크를 하고 YES/ NO를 선택하게 된다.
NO인경우 우측에 기록!!...
차수도 있어서 1차 부터 n차까지 계속 미친짓을 할수 있다.
또 펼치기를 누르면...
입력값을 적을수 있는 텍스트박스 와 예상결과값을 넣을수 있는 텍스트 박스가 나타나고
별도의 테스트 조건을 넣을수 있게된다.
[생성]버튼을 누르면 위 두가지를 합한 테스트 조건들이 차수에 기록되고 만들어진다.
보통 테스트중에는 스샷 찍어서 오류 내용을 적어두는게 보기 쉬운데... 텍스트 박스로 해놨다 ㅡㅡ# ( 귀찮아서 ... )
낼부터는 진짜 업무에 사용해서 화면정리를 해봐야지... 소감은 다음에... 이어서...
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
JSFW.Designer] 만들다 보니... (0) | 2016.12.22 |
---|---|
JSFW.Designer 또 한번 엎어볼까나??? (0) | 2016.12.19 |
화면정리 프로그램] 추가 기능. (0) | 2016.12.09 |
화면정리프로그램? 으로 이름을 바꾸자. (0) | 2016.12.04 |
SSMS AddIn 기능중 Results Grid 접근! (0) | 2016.10.20 |
화면정리 프로그램] 추가 기능.
화면과 관련된 내용을 어떻게 채워 넣을지 계속 고민하다가.... 우선!
# 기능중에 작업버튼 색상구분( 녹색 : Execute , 오렌지 : 창 Link )
# 디자이너 연결 ( 새로 만들려다가... 기존 디자이너 연결함. )
# 썸네일 이미지 등록 기능.
# 예외메세지 관리기능
- 화면마다 발생하는 주요 예외 메세지에 대해 어떤 처리를 해야 예외가 사라지는지. 원인이 무엇인지... 적어두어 관리한다.
# 화면에 사용하는 SP를 등록해두고, 관련된 객체목록을 살펴볼수 있게 만들었다. sp_depends 를 이용하여 정보를 조회하면서, 조회된 정보를 다시 클릭하면 선택된
객체와 관련된 객체목록을 다시 검색해서 보여준다. 다이어그램 같은걸로 뿌리려다가... 귀차니즘에...
- 이 화면은 필요할까? ... :0
# 우선 ... 데이타베이스 정보에 대해 필요할까??? 고민 하다가 넣긴 했는데...
테스트 시나리오를 넣으려는데... 머리속에 쉽게 안그려지네.
화면에 대한 테스트 시나리오를 작성한다.... 전에 이상한 회사에서 작성한 이상한 시나리오가 자꾸 떠올라서 그림이 자꾸 이상하게 그려지는데...
좀더 고민해봐야지..
다음주부터는 실제로 이 프로그램으로 화면들을 정리해봐야지...
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
JSFW.Designer 또 한번 엎어볼까나??? (0) | 2016.12.19 |
---|---|
화면정리 프로그램] 추가 기능 II ( 테스트 시나리오 ) (0) | 2016.12.13 |
화면정리프로그램? 으로 이름을 바꾸자. (0) | 2016.12.04 |
SSMS AddIn 기능중 Results Grid 접근! (0) | 2016.10.20 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(3) (0) | 2016.10.15 |
화면정리프로그램? 으로 이름을 바꾸자.
프로세스 다이어그램 보다는 화면정리 프로그램이 나을것 같다.
프로세스를 그린 후 시간에 대한 정보도 담으려고 했었는데... 곰곰히 생각해보니
프로세스와는 크게 관련이 없어보인다. 단지 화면들을 관계들을 업무별로 정리하는 프로그램정도로 마무리 해야겠다.
부가적인 정보로 화면들을 시간순서대로 나열하면서 주석과 기호등을 통해 우선순위정도만 표시해도 괜찮을듯 싶다.
화면정의 프로그램을 붙이려고 하는데 옛날 디자이너를 그대로 붙여버릴까 하는 생각이 자꾸 든다... ( 다시 만드는 과정이 ... 생각만 해도 지친다. )
새로 만든 프로세스 다이어그램이다.
이제 다이어그램 그리는 정도 만든거지만... 추가할 기능에 대한 생각이 많아진다.
전 버젼에서의 화면 기능에 추가작업버튼의 경우를 별도 오브젝트로 빼다 보니 다이어그램이 보기도 어렵고 해서 계급장 처럼 바꿔서 표시했다.
창으로 여는 일을 하는 빨간색 계급장, 그냥 실행만 하고 끝나는건 녹색계급장.
프로세스를 그릴때 다른 업무에서의 화면과 연계될때는 위에보이듯이 타이틀에 해당 업무에 지정된 색상으로 표시해준다.
ex)프로젝트상세, 프로젝트목록 은 [공유] 업무에 있는 화면으로 현재 [테스트] 업무에 포함된 프로세스에 그려지므로 색으로 다름을 표시한다.
상세보기를 들어가는 경우 화면 구성에 대한 정보를 기록하게 되는데 이를 화면 설계나 디자이너를 붙여 작업에 이용하려고 한다.
여기에 첨부파일, 코멘트등을 추가한다.
------------
이 프로그램 기획의도는 ... 나중에 PL역할을 혹시? 하게 되면 업무에 대한 설계나 화면 설계를 빠르게 하기 위함이기도 하고
기존 화면에 대한 화면분석을 빠르게 할수 있지 않을까? 그런 욕심에 만들게 되었다.
SI를 하다보면 설계할때와 개발할때의 문서들이 유지보수하는 인력에게 전달될때!!! 좋은 방법이 없을까 싶어서 생각을 해보고 있다.
위 다이어그램과 함께 누적된 기록들을 클라우드 같은 곳에 올려두고, SM 인력들에게 비쥬얼 스튜디오에서 위 다이어그램등이 쉽게 접근 수정가능해지면?
좋지 않을까? 특정화면에서 어떤 문제를 만났을때... 과연 어떤 해결과정을 거칠까?
지금까지 본 바로는 보통 개인의 머리 속 기억에 의존하게 된다. 그러다 그 사람이 나가면? 인수인계가 제대로 이뤄질까? 인수인계된 내용에 대해 검증이 될까?
유지보수하면서도 비쥬얼 스튜디오의 .cs 또는 .proj 파일에서 해당 화면에 대한 전체 프로세스를 쉽게 볼수 있다면?
유지보수 하면서 만약 수정이 되는 프로세스나 알아둬야 할 값들이 있다면? 프로그램에서 수정해두면 ...
한가지 걸리는게 있다. 문서화 하지 않는 사람... 이건 뭘 가져다 줘도 안되니까.
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
화면정리 프로그램] 추가 기능 II ( 테스트 시나리오 ) (0) | 2016.12.13 |
---|---|
화면정리 프로그램] 추가 기능. (0) | 2016.12.09 |
SSMS AddIn 기능중 Results Grid 접근! (0) | 2016.10.20 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(3) (0) | 2016.10.15 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(2) (0) | 2016.10.15 |
SSMS AddIn 기능중 Results Grid 접근!
SSMS에서 쿼리를 실행했을때 결과 그리드에 접근하기 위한 코드를 겨우 완성했다. ( 자료를 못찾는건지 ... 없는건지... )
겨우 소스는
// 참조 : http://www.tsingfun.com/html/2015/dev_0728/478.html
이 소스로 Addin 기능을 구현했었으나... 발견된 버그!
쿼리를 두개 이상 실행했을 때 첫번째 그리드만 접근이 되어 헤더목록을 제대로 취득하지 못했다.
디버거 조사식으로 객체들을 쫒아다니며 겨우 찾았다 "FocusedGrid" 프로퍼티를 이용하여...
/// <summary>
/// 获取当前文档视图窗口中的DataGrid
/// </summary>
/// <returns></returns>
public static IGridControl GetActiveGridControl()
{
try
{
SqlScriptEditorControl sqlEditorCtl = GetDocView() as SqlScriptEditorControl;
object sqlResultsControl = GetNonPublicField(sqlEditorCtl, "m_sqlResultsControl");
object gridResultsPage = GetNonPublicField(sqlResultsControl, "m_gridResultsPage");
var focusedGrid = GetNonPublicProperty(gridResultsPage, "FocusedGrid");
return focusedGrid as IGridControl;
}
catch (Exception e)
{
// Log
return null;
}
}
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
화면정리 프로그램] 추가 기능. (0) | 2016.12.09 |
---|---|
화면정리프로그램? 으로 이름을 바꾸자. (0) | 2016.12.04 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(3) (0) | 2016.10.15 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(2) (0) | 2016.10.15 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(1) (0) | 2016.10.15 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(3)
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법1
http://aseuka.tistory.com/entry/PRJMNG-비전공자가-SI를-하는-방법2
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법3
프로젝트에 참여하면 보통 PL이 요구사항들을 정리해서 작업을 하나씩 요청해온다.
어떤때는 쿼리를 직접 작성하게 되는 경우도 있기도 있고, 작성해준 것으로 작업을 시작하기도 한다.
아래 내용은 sp작성 완료 후 과정을 적어본다. 화면 정의서가 엑셀로 오는 경우도 있고, ppt도 있고, 말로만 설명하기도 한다.
그러면 우선 화면 디자이너를 이용해서 화면을 그리게 된다.
#### 요구사항을 하나 예를 들고 만드는 순서를 적어본다.
- Col1 이 조회조건이다.
- 그리드에 Col1, Col2, Col3 를 보여줘야 하는 단순 조회용 화면이다.
프로시져는 PL이 만들어 준다는 가정하에 내 프로그램들을 이용해서 화면을 구성해보자.
※ SSMS 추가된 기능
<추가된 메뉴>
※VS 추가된 기능
<솔루션 목록접기>
<프로젝트 셋팅>
<추가된 메뉴>
0. 작업내용을 일정관리 프로그램에 등록한다.
1. 프로시져를 실행하여 SSMS의 SQL결과 그리드에서 Header와 데이타를 뽑아내어 Header만 남기고 지운다.
# sql object 검색
- Control + Q, Control + F
# sql query formatter
-쿼리 정렬전
-쿼리 정렬 후 ( Control + Q, Control + Q )
# 데이타가 없을때도 복사가능
※ 아직 데이타가 조회되지 않는 경우 기본적으로 SSMS에서는 Header를 뽑아낼 수 없다.
- SSMS의 AddIn 을 이용하여 SQL결과 그리드에서 컬럼을 뽑아낼수 있다.
- SP_HelpTxt( Ctrl + 0 )를 이용하여 쿼리문을 편집기로 올려두고 컬럼들을 AddIn의 정렬( Sql_Formatter )기능으로 정렬시킨 후
이 쿼리에서 Header 목록을 얻어낸다.
# 쿼리에서 컬럼정보 얻어내기 ( 쿼리 정렬 후에 뽑아낼 수 있다. )
2. 뽑아낸 Header를 AddIn 기능 중 특정 포맷형태로 바꿔주는 기능을 사용하여 변환 시킨다.
Col1:컬럼1
Col2:컬럼2
Col3:컬럼3
Control + Q, Control + R 단축키를 누르면
{컬럼ID:컬럼명} 으로 정렬시켜준다. ( 추후 그리드 및 상세화면 디자이너 속성으로 사용된다. )
3. 디자이너를 띄워 화면을 디자인하고 소스생성 한다.
#디자인을 한다.
@UI기능
- 도구상자 : 디자인에 사용되는 컨트롤들을 배치되었다. 굿센에 맞춰진 특정 컨트롤, 컨트롤들을로 디자인 한 템플릿컨트롤들이 배치되었다.
동일한 형태의 컨트롤 배치를 계속 사용하게 되는 경우 템플릿으로 저장해두면 매번 재배치 하지 않고 사용가능하다.
- 디자이너
- 속성 : 컨트롤들의 속성값들을 편집 할 수 있다.
- 스크린샷 : 디자인된 소스를 스크린샷으로 찍어 클립보드에 복사해준다.
- Xaml내보내기 : Xaml로 변환하여 클립보드에 복사해준다.
- 프로젝트 생성하기 : 정해진 규칙대로 폴더를 생성하여 프로젝트(폴더,파일포함)를 만들어준다.
#디자이너에서 그리드를 설정한다. ( 그리드 속성창 > 편집 : Editor 버튼 클릭 )
@그리드 편집 기능
- Source Formatted : 이미 만들어진 화면의 소스에서 그리드 설정부분으로 그리드 설정값들을 복원하여 값들을 지정할 수 있다.
기존 화면을 수정해야 할 경우에 그리드를 일일이 다시 그리지 않고 한번에 읽어들일 수 있다.
- 컬럼추가 : 그리드에 컬럼을 추가해야 되는 경우 <, >버튼(오른쪽 아래버튼)으로 컬럼위치를 옮길 수 있다.
- Header + 1, Header - 1 : 그리드의 멀티컬럼을 설정할때 사용한다.
- 병합 : header 병합
- 병합해제 : 병합된 header 병합해제
- Custom Merge : 병합된 Header 정보를 이용하여 구현소스로 변환시켜 클립보드에 복사해준다..
- Const_GridCols_String : 그리드의 컬럼 Index를 상수형으로 설정하는 소스를 만들어 클립보드에 복사해준다..
- InitGridSettings : 그리드를 초기화 하는 소스를 만들어준다. ([Source Formatted]기능으로 읽어들이는 소스와 같은 형태로 생성.)
- DynamicGridInitEvent : 화면 UI에 title 컨트롤 Click이벤트 발생 시 실행되는 소스를 만들어주는데, 이 기능은 실행중에 컬럼Width 값을
데이타를 보면서 적절한 폭으로 조정한 후 Click하면 [InitGridSettings]에서 구현되는 소스와 동일한 형태의 소스를 만들어
클립보드에 복사해준다.
- Export To OpenXML : 그리드 내용을 Excel로 내보내기 기능을 OPEN XML을 이용하여 구현하는 소스를 만들어 클립보드에 복사해준다.
- Export To Excel : 그리드 내용을 Excel로 내보내기 기능을 Microsoft.Excel.Interop을 이용하여 구현하는 소스를 만들어 클립보드에 복사해준다.
- Import From Excel : 엑셀내용을 그리드로 업로드 기능을 구현하는 소스를 만들어 클립보드에 복사해준다.
4. 생성된 소스를 svn관리 폴더에 복사한 후 프로젝트를 visual Studio로 연다.
- 화면 UI에서 우측위쪽에 배치된 프로젝트 생성하기 버튼으로 프로젝트를 생성한다.
5. .xaml을 살짝 조정해준다. Grid의 마지막행, 마지막열의 height, width 값을 적절하고 바꾸고, 컨트롤들의 width값을 조정하여 보기 좋게 만든다.
6. .xaml.cs 에서 쿼리와 관련된 작업을 진행한다.
- 컨트롤에 Event처리
- 프로시져와 관련된 작업을 진행한다.
. sp설정 관련 코드라인 포커스를 두고 마우스 우측버튼 클릭 > MBaseClass Gen 클릭
. 프로시져 검색하고 변환하여 소스생성 > 원하는 위치에 [보내기] 클릭
7. 테스트를 진행하고 배포한 후 PL에게 완료여부를 알린다.
8. svn을 commit ( + add )한다.
9. 일정관리 프로그램에서 완료처리 한다.
#### 요구사항을 하나 예를 들고 만들어보았다.
이렇게 내가 일하는 작업들은 직접 구현하는 일은 많지 않다. 소스구현 툴에서 생성하며 붙여넣기를 반복적으로 하게 된다.
일반 조회는 30분~1시간, CRUD의 경우 그리드일 때 1~2시간 반, 상세화면 일때는 3시간 정도 잡고 일을 할수 있다. 난이도나 복잡도에 따라서 차이가 있다.
첫 언어로 C#닷넷을 선택하게 된 것이 나에겐 운이 좋았던것 같다. 비전공자인 나에게 프로그래밍에 집중 할 수 있게 해준 최고의 도구 Visual Studio와 구현이 너무
쉽게 가능한 C#을 이용해 지금까지 프로그래밍을 해왔다. 자바도 물론 경험 했으나, 알아야 할 것이 너무 많았다.
나에겐 절실함이 있었고, 닷넷 프로그램을 이용해서 풀어낸듯하다. 공부는 계속 하고 있지만...
다음 글은 ...
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
화면정리프로그램? 으로 이름을 바꾸자. (0) | 2016.12.04 |
---|---|
SSMS AddIn 기능중 Results Grid 접근! (0) | 2016.10.20 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(2) (0) | 2016.10.15 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(1) (0) | 2016.10.15 |
JSFW.PROJECT.REF] 프로젝트 모듈 - SP검색 (0) | 2016.09.26 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(2)
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법1
http://aseuka.tistory.com/entry/PRJMNG-비전공자가-SI를-하는-방법2
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법3
프로젝트에 투입이 되면 내 자리는 PL이나 PM급이 아니라서 지금까지 개발자위치다.
구현단계에 들어가서 PL이 설계한 내용을 구현해주는 일이 곧 내 일인 셈이다. 요구사항은 계속 바뀌며 화면은 여러번 수정해야 한다.
PL과 개발자가 윈윈 하는 방법은 무었일까? PL은 현업이 요구하는 내용들을 무조건 쳐내는 것은 매우 어려운 일이며, 개발자는 무한정 하나의 요구사항 구현에 매달
려 있을 수 없다. 여러 SI프로젝트 현장에서 직접 체감하면서 고민하던 방법은 일과시간내에 구현을 최대한 빨리 끝내며 6시 정각엔 컴퓨터를 끈다.
지금 가진 생성 프로그램을 시간을 측정하면 SP작성이 완료된 시간부터 작업을 시작하여 단순 조회성 화면은 30분~1시간, CRUD는 1시간~2시간반, 그리고 상세화
면 3시간정도로 잡는다. 시간 측정이 가능하니까 할 수 있는 것들이 굉장히 많다.
지금 가지고 있는 프로그램과 프로시져의 목록을 나열해본다.
#일정관리 프로그램 : PL에게 들어온 요청을 최초 기록하고 완료기록등을 해두는 프로그램이다.
관련파일들은 요청작업 상세기록에 첨부하여 관리한다.
스케쥴러에서는 미래 일정보다는 작업해온 내역들을 한눈에 볼수 있도록 만들어져 있다.
#SP_HELP_TEXT : sp_help를 수정해서 쿼리의 탭그대로 유지하고 볼수 있게 만들어놓았음. 단축키 ctrl + 0
#SP_HELP_COLUMNS : sp_help 같이 컬럼 또는 파라미터 목록을 볼 수 있게 만들었다. 또 프로시져일때 프로시져 호출,
cs 코드상에서 만들어야 할 파라미터 구문 생성.
#Table R SP생성.sql : 테이블 조회 SP를 한번에 만들어주는 쿼리문. ( 관계테이블 외래키가 있으면 조인문으로 컬럼들까지 포함해서 만들어줌. )
#Table CUD SP생성.sql : 테이블 입력,수정,삭제 쿼리를 한번에 만들어주는 쿼리문.
#SSMS ADDIN : sp또는 Tabe, View등을 검색. ( 필터 사용하지 않고 검색가능 ) 위에 나열된 쿼리문들을 포함하고 있다.
조회시 나타나는 컬럼 목록을 뽑아내는 기능.
Select 쿼리문에서 Header를 뽑아내는 기능.
쿼리 정렬 기능.
#StoryBoard Designer : 화면정의 관리 프로그램 정도로 만든 것인다. 화면의 구현기능에 대한 기록이 가능하고 버튼에 링크 기능도 있다.
#UI디자이너 : 소스코드를 생산해 내기 위해 와이어프레임( ex: 발사믹, 펜슬... )같은 프로그램을 만들었다.
이 소스에서 ProjectInfo.cs에서 회사마다 개발표준에 맞게 변환 코드를 넣어주면 디자인 마치고 바로 변환하여 소스를 얻어낼수 있다.
( 변환 코드 작성 시간 약 일주일 )
#상세코드프로그램 : 상세화면의 컨트롤들의 데이타 바인딩, 초기화, 이벤트 코드를 생산해 낸다.
#VS AddIn : 소스상에서 프로시져와 관련된 정보를 소스변환하여 소스에 붙여주는 기능.
소스팁을 관리하는 기능.
그리드의 header 를 다시 정렬해서 만드는 기능. ( 새 컬럼 추가 삭제시 필요하다. )
VS2008에서 솔루션 접기 기능. ( 솔루션 하나에 20개정도의 프로젝트 가 묶여있으면..... )
프로젝트 참조DLL 갱신기능 ( 프로젝트에 참조된 다른 프로젝트 dll을 서버에서 내려받아 dll 참조 오류를 방지한다. )
.xaml 정렬기능 ( wpf 화면 정보를 해당 프로젝트에 맞춰 재정렬 및 스타일 강제셋팅한다. )
#프로세스 다이어그램 : PL이 된다면? 이란 가정하게 아직 초기 버젼 정도로 만든 프로그램.
각 프로세스를 정의하고 프로세스의 특정 포지션에서 필요한 화면UI를 디자인( 위에 있는 UI디자이너를 띄움. )
#지금 현재 프로젝트에서만 사용하는 프로그램으로 만든것들이 있다.
- Excel_Report_Gen : 특정 엑셀 양식을 이용하여 보고서 대용으로 사용하는 경우 이 엑셀을 이용하여 데이타 맵핑과 Export생성 소스를 만든다.
- 프로젝트모듈별UIAndSP검색 : 프로젝트의 소스(로컬)에서 화면별로 참조된 다른 화면과 sp목록을 검색해서 excel로 생성해준다.
여기 프로젝트에서만 사용하게 될 것 같다. 코드표준에 맞춰 검색이 되므로 기준이 다른곳에서 사용시 변환필요.
이 목록들이 10년간 만들어온 내 SI 필수목록이다.
다른 프로젝트에 투입이 되어 사용할 수 없는 경우엔 그때에 맞춰 다시 개발하여 사용 후 폐기한다. VS만 있으면 되니까.
다음글은 PL요청이 들어왔을때 부터 완료 찍을 때 까지의 작업에 대해 써본다.
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
SSMS AddIn 기능중 Results Grid 접근! (0) | 2016.10.20 |
---|---|
PRJMNG] 비전공인 내가 SI를 진행하는 법(3) (0) | 2016.10.15 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(1) (0) | 2016.10.15 |
JSFW.PROJECT.REF] 프로젝트 모듈 - SP검색 (0) | 2016.09.26 |
JSFW.Minutes 회의록 작성기 (0) | 2016.09.12 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(1)
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법1
http://aseuka.tistory.com/entry/PRJMNG-비전공자가-SI를-하는-방법2
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법3
일단 내소개! 나는 대림대학 전자과 출신 개발자이다. 지금으로 부터 10년전 2006년 7월부터 이 일을 시작했다.
동양공고 전자과를 졸업하고 전산을 지원했다가 낙방하고 1년 후 특별전형으로 집가까운 대림대학 전자과를 입학하였다.
그 후 군대와 졸업을 하고서 전자제품 생산공장, A/S기사, 무선중계기 점검기사, 거리에서 도로정비 및 신호등정비, 건물 관리 통신실등 정말 다양한 일들을 했지만,
워낙 박봉인데다가 작업등을 개선하기 위해 이런 저런 개선안을 보여주고 작업의 결과도 보여줬지만, 비용이 조금더 든다하여 매번 거절당하고...
전자쪽 일을 계속하면 굶어죽기 딱 좋겠다 생각해서 직업을 바꿀 기회를 알아보고 있었다. 그러다가 국비지원 임베디드 교육이 있는 것을 알게 되었고,
바로 회사를 퇴사하고 6개월간 교육을 들어갔다.
아침 9시 ~ 저녁 6시 였던것 같은데, 교육 리눅스 포팅과 C, C++, MFC등을 겉핧기 식으로 배웠다. 친구녀석이 전공이 프로그래머라서 C 문법 공부등을 도움받아가
며, 5개월쯤 마쳤을때 전자전공을 살리면서 뭔가 임베디드 배운 것등을 함께 하면 좋지 않을까 해서 결국 미친 짓을 또 시작했다.
처음 간곳이 전광판 개발하는 업체, 두번째가 스크린도어 설치하던 업체, 세번째가 전자제품 검사기만들던 업체였다. 이렇게 1년 허비하고 전자전공을 버렸다.
막연히 소프트웨어 쪽을 해보고 싶어서 전자와 관련없는 직장만 이력서를 넣고 있었는데... "와이즈엠"(현재:와이즈엠 시스템즈)회사의 대표님이 날 뽑아주셨다.
3개월 C# 책을 보고, 중국 하얼빈으로 날아갔다. 1개월간 숙식하며 프로그램을 맘껏 만들었다. 1년간 전공자들의 공부를 따라가기 위해 일하면서 계속 공부를
하였으나 그래도 부족했다. 1년을 버티고 웹 개발을 해보고 싶어서 와이즈엠에서 퇴사하였다. 중간에 다시 들어가고 싶었지만... 그럴 수가 없더라.
웹 개발을 처음 하는 곳에서 샘플을 주며 보고 만들면서 익히라는 말에... 거부의사를 밝히고 부장님과 다투고, 사장님 면담 후 하락하에 1달의 시간을 얻어냈다.
asp.net, javascript, html, css등 웹개발관련 공부를 20일정도에 마치고 바로 작업에 들어가서 망가진 프로젝트를 2달만에 끝마쳤다. 초기 사장님과의 약속이 어긋나서
회사를 그만두고 일찍 프리랜서(용역, 계약직)를 시작했다. 말이 좋아 프리랜서지. 그냥 계약직 아닌가?
롯데, kt, ... 등등... 거치다가 "굿센테크날러지"라는 ERP업체에 차세대 프로젝트에 참여하여 WPF라는 걸 처음 봤다.
잘 만들어진 개발 프레임웍, 하나 하나 뜯어보고 또 뜯어보면서 공부를 했다.
이때 소스 생성 프로그램이 처음 만들어졌다. 막 찍어내야 했으며 하루에 8개까지도 생성해보았다.
계속 생성 프로그램을 업그레이드 해서 10번 정도 다시 만든 프로그램을 지금 "굿센테크" 프로젝트에서 참여하여 사용 중에 있다.
프리로 다니면서 단가 협상을 못해서 오르지 않는 단가에 맘 상해하면서 일을 진행했다. 그러다보니 돈을 쫒게 되었고, 마음이 조급하게 된 것 같다.
프리로 앞으로 얼마나 하게 될지는 모르지만... 든든한 툴 만들어 사용하는데 걸린 시간이 10년!
오키 커뮤니티 글을 보면 학원출신, 비전공자들에 대한 편견들이 좀 있다. 내가 보기엔 지금 프로그래밍 교육 순서가 잘 못 된 것 같다.
문법 보다는 특정 상황을 프로그래밍 할 수 있는 시야를 넓혀주는게 먼저일 듯 한데, 문법만 가르쳤다고 나가서 일하라고 하니 일이 되겠는가?
다음 글에 프로젝트를 진행할때 내가 하는 방법들을 글을 이어 써본다.
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
PRJMNG] 비전공인 내가 SI를 진행하는 법(3) (0) | 2016.10.15 |
---|---|
PRJMNG] 비전공인 내가 SI를 진행하는 법(2) (0) | 2016.10.15 |
JSFW.PROJECT.REF] 프로젝트 모듈 - SP검색 (0) | 2016.09.26 |
JSFW.Minutes 회의록 작성기 (0) | 2016.09.12 |
JSFW.PJT.Diagram] 추가 기능 [그룹핑] (0) | 2016.07.17 |