퇴근5분전


음.. 컨트롤을 타원으로 회전시키는 메뉴들...

구심점에서 메뉴들이 빙글 빙글 돌아가는걸 욕심이 생겨 구현해보았다.

타원방정식을 이용하고 컨트롤들을 받아서 좌표값을 회전시키면서 재조정해주었더니 잘된다.

손수 삽질했던 공식으론 원만 그리다가... 타원으로 오니 일그러짐이 많이 생겨서... 타원방정식을 이용해서 둘다 해결하였다.

            // 타원방정식.  http://www.gisdeveloper.co.kr/497  타원방정식.
            // X(t) = Xc + A * cos(t)cos(각) - B * sin(t)sin(각);
            // Y(t) = Yc + A * cos(t)sin(각) + B * sin(t)cos(각);

이 공식을 보고 작업하였으며 

앞으로 나오면 BringToFront()  땡겨줬더니.. 대략 비스므리 하게 된듯 하다.

왼쪽은 컨트롤

오른쪽은 회전중에 스크린샷.

빨간 패널이 구심점이고  구심점을 기준으로 컨트롤들이 제각각 타원으로 회전한다.

독특한 메뉴구성이 필요하거나 할때 쓸모있을듯 한다.

수학이 딸리니 응용은 힘들다..



'# 1) 프로그래밍' 카테고리의 다른 글

TCP.IP 초기 구상 모델...  (0) 2010.05.09
미스테리... vs2008 오류..  (2) 2010.04.19
프로그래밍 설계?  (0) 2010.04.05
Xml 관련 객체가 한번더 정리가 되었다.  (0) 2010.04.01
XML 클래스다루기...  (0) 2010.03.31


 내가 프로그래밍을 접한지 3년이 넘었다.

회사 프로젝트를 하면서 여간 딴짓을 안해본적이 없다.  설계 라는게 한번에 와닿는게 아니기에 중간 중간 많은짓을 해본다.

나만에 방법론을 만들고 그 방법론이 실제 프로젝트와 얼마나 매칭이되는지도 살펴야 하고 다른부분이 어떤지도 파악해야하고 설계에서 구현과정을 담아보려고 무던히도 노력해보았다.

실제 설계 후 코드화 하는 구현단계까지 왔을때 난 여러가지 난관에 봉창한다.

생각지도 않았던 설계상에 오류. 누락된 객체표현등...

우선 내가 하는 방법은
1. 전체 프로젝트의 결과물을 그린다. (종이나 파워포인트에 UI를 그려놓는다 )
2. 이 결과물이 하는 일을 기록해준다.
3. 필요한 객체 목록들을 나열해본다. ( 객체들을 나열할때 시간소비가 많이 들어간다. 어떤객체가 얼만큼에 크기로 만들어져야 되는지.. 고민아닌 고민을 하게 된다. )
4. 객체간 관계를 따지고 언제 어떤데이타를 넘겨줄지 대략 그려본다.
5. 전체 결과물처럼 대략 추상화하여 구현 난이도를 결정해본다.
6. 코드에 들어간다.  각각 객체별 구현하는데 누락된부분은 다시 3번부터 재시작한다.

3~6까지를 두세번 반복하다보면 대충 결과물에 거의 근접해간다. 이때마다 새로운 기능들을 넣고 싶은 욕심이 생기는데
과감히 버려야 한다. 안그러면 네버엔딩스토리가 되므로...

개인 프로젝트를 계획하고 이를 구현하는데 있어서 위 방법으로 해보고 있는데 뭔가 빠진듯하고, 부족해보이는게 많다.

추상화에서 구현으로 들어올때, 추상화 된 부분이 많이 바뀐다. 이렇게 되면 추상화 했던 부분이 많이 바뀌므로 이를 이용한 객체들이 조금씩 틀어지는데 여기서 여러가지 문제가 터지더라...

경험 부족일까? 또는 추상화가 잘못된것일까? 앞으로도 계획된 몇가지 개인프로젝트가 있는데 이또한... 이런 과정을 거치면서 좀더 개발 방법론을 튼튼히... 하다보면.. 나중에 내가 주도하는 개발에 대해서 좀더 체계적으로 나갈수 있지 않을까?

현재 만들어놓은 프레임웍은 그 시초라고 볼수 있겠지만. 이 프레임웍은 현재 닷넷 개발에 쓰기엔 좀 뒤떨어진다.
앞으로의 트랜드에 맞춰서 나가려면 많은부분이 경량화 되고 차세대 버젼에 맞추어 발빠른 업그레이드가 필요한데... 과연
해낼수 있을까? 지금은 2.0이지만 올후반에는 3.5대로... 내년초에는 4.0으로... 빠르게 업그레이드를 해보아야 겠다.

앞으로 체계적인 방법론을 만들기 위해 노력하자.. 아자! 아자!


아마 이게 제일 클것이다.

윈도우용 폼부터 직접 만든 컨트롤 + 여기저기서 수집한 몇개 컨트롤...들...


음 우선 설명은 생략하고...

나중에 다른 문서로 정리해야겠다.

'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

JsFW20 설치하기...  (0) 2010.05.22
NetWork 2010 0511  (0) 2010.05.12
XML 2010 0402  (2) 2010.04.03
Plugin 2010 0402  (0) 2010.04.03
Exception 2010 0402  (0) 2010.04.02


Xml관련 객체들이다.

주객체는 XmlHelper다.


XmlHelper는 XmlElmt라는 객체를 컬렉션으로 관리하는 객체로

XmlDocument 의 역할을 한다.
XmlElmt 는 XmlElement와 XmlAttribute를 래핑해놓은것으로 컴포짓 패턴을 응용하여 구성해두었다.

Helper관련 글은 몇번 기록해었다.

Helper를 한번더 감싸서 파일기록이 용이하고 class를 이용할수 있도록 하였으며,

이를 또한번 감싼 후 제너릭 객체를 만들어서 List< xmlElemt가 될 class >도 지원한다.

이제 초간단하게 xml데이타를 만들어 낼수 있게 되었다!  캬~

이걸로 처음 만드는건 일정관리다. DB대신 XML로 또한번.. 데이타를 기록저장한다!

테스트해보니 굿~ 제너릭에 대한 새로운 사실도... 굿!




'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

NetWork 2010 0511  (0) 2010.05.12
WinControls 2010 0402  (0) 2010.04.03
Plugin 2010 0402  (0) 2010.04.03
Exception 2010 0402  (0) 2010.04.02
Debug 2010 0402  (0) 2010.04.02


플러그인 관련 객체들이다.

만들어둔 메인모듈에 핵심기능이다.

메인 설치 후 이후 추가되는 컨텐츠는 설치가 아닌 Plugin 기능으로 추가하는 기능이다.

여기에 관련된 객체들이다.


추상객체와 같은 소스파일에 다른 객체들을 정의 해놓았더니... 클래스다이어어그램이 안그려지는구낭..

모조리 빼서 파일별로 분리했다.

'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

WinControls 2010 0402  (0) 2010.04.03
XML 2010 0402  (2) 2010.04.03
Exception 2010 0402  (0) 2010.04.02
Debug 2010 0402  (0) 2010.04.02
CommonWin 2010 0402  (0) 2010.04.02


예외 처리 객체들이다.. 4가지인데...



이 예외는 좀 특이한 케이스다.

보통의 예외는 발생했을시 발생 정보를 그냥 리턴한다!

그러나 이건 객체를 합성하면서 리턴한다.

초기 발생시점에서 BaseException(  Exception ) -> DAC일때는 DACE( BE ( E )) 가 되서 Biz로 반환
BizE( DE ( BE ( E )))  이렇게 예외가 발생한 지점을 역행하며 그 순간 순간 데이타들을 로그화하기 위해
고안해 낸 방법이다. 나름 머리 썼다.

마지막 파일로 로그를 남겨서 보면

언제 어떤 메서드에서 호출하여 어떤 쿼리와 파라미터를 썼는지. 누가 사용했는지까지... 파일로 기록이 된다.
물론 웹에서 사용하면... 어떻게 될지...  윈폼에서만 적용해봤었던 방법이다.



'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

XML 2010 0402  (2) 2010.04.03
Plugin 2010 0402  (0) 2010.04.03
Debug 2010 0402  (0) 2010.04.02
CommonWin 2010 0402  (0) 2010.04.02
CommonUtil 2010 0402  (0) 2010.04.02

비지니스 디버그용 윈도우 ... 전에 글올렸던게 있다.



컨트롤 -> Biz -> Dac 로 쿼리와 파라미터를 전달할때.
Biz에서 쿼리와 파라미터를 캐취해서 디버그 모드일때는 디버그용 창이 뜬다.

쿼리 와 파라미터가 보여지고 여기서 직접~~ 쿼리를 실행하거나 쿼리를 변경시켜서 결과값을 볼수도 있다.

'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

Plugin 2010 0402  (0) 2010.04.03
Exception 2010 0402  (0) 2010.04.02
CommonWin 2010 0402  (0) 2010.04.02
CommonUtil 2010 0402  (0) 2010.04.02
BaseObject 2010 0402  (0) 2010.04.02



메세지 박스, VS DebugWriter, Fade효과객체, 관련해서 넣어놨는데...
아직 그닥 더 추가된 공통기능이 없다.


몇개 없어서... 쩝..

다만 메세지 박스... 표시시간, 또는 예외정보에 따라 처리가 달라진다.

디버그Writer는 vs출력창에 디버그 정보를 뿌려줄때 사용한다.
컨트롤만들때 정보를 보기위해 사용한다.

'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

Exception 2010 0402  (0) 2010.04.02
Debug 2010 0402  (0) 2010.04.02
CommonUtil 2010 0402  (0) 2010.04.02
BaseObject 2010 0402  (0) 2010.04.02
ADO_NET 2010 0402  (0) 2010.04.02


공통적으로 사용하는 기능들을 묶어두었다.

다만 여기 있는 FTP관련 객체는 만들어둔 TCPIP_Helper 와 함께 NetWork dll을 새로 생성하여 이동할 것이다.



FTP는 App.config에 설정된 계정 정보를 Config.AppSetting( Key ); 로.. 받아서 설정해서 사용한다.
업로드, 다운로드, 디렉토리 생성등... 모두 지원하도록 되어있다.

'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

Exception 2010 0402  (0) 2010.04.02
Debug 2010 0402  (0) 2010.04.02
CommonWin 2010 0402  (0) 2010.04.02
BaseObject 2010 0402  (0) 2010.04.02
ADO_NET 2010 0402  (0) 2010.04.02


기본 객체들을 모아둔 Dll이다.



앞서 ADONET dll에서 설명한 IUniDataParameters , IUniDataSet이 존재한다. 또한 로그인 유저정보도 가지고 있다

여기서 UniList는 현재 프레임웍의 표준흐름 데이타이다. 여기에 데이타가 담겨져서 컨트롤에서 Biz로 넘어가고 다시 넘어와서 풀리고.. 등등... 표준 포멧과도 같은 데이타규격이다.

DataParameters는 UniList의 단위 데이타 이다. Key와 Value를 가지고 UniList에 리스트형태로 담겨져서 여기저기 다니는 데이타가 된다.

'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

Exception 2010 0402  (0) 2010.04.02
Debug 2010 0402  (0) 2010.04.02
CommonWin 2010 0402  (0) 2010.04.02
CommonUtil 2010 0402  (0) 2010.04.02
ADO_NET 2010 0402  (0) 2010.04.02