본문 바로가기

728x90

UX스튜디오

(18)
스마트한 기술의 경험 - 투비소프트 그랜드세미나 2011 지난주 목요일 성황리에 투비소프트 그랜드세미나 2011 행사가 진행되었습니다. 예상보다 많은 분들이 참석하셨고 새로운 기술에 많은 관심을 보이셨다고 합니다. 투비소프트에 합류하고 나서 참여했던 첫 번째 큰 행사라 다른 외부 행사에서 발표했던 경험과 또 다른 느낌입니다. 그리고 몇개월 전부터 행사를 위해 준비하시는 모습을 곁에서 지켜보았기 때문에 더 그런지도 모르겠습니다. 이런 행사장에만 오면 전날까지 잘 돌아가는 코드들도 말을 듣지 않는 경우가 많은데 다행스럽게도 이 날 행사에서는 일부 네트워크 문제를 제외하고는 별 다른 사고 없이 하루가 지나간것 같습니다. 행사장에서도 소개한것처럼 이 날 제품 소개 세션은 각 제품 개발 담당자가 직접 발표를 진행했습니다. 제품 개발과 발표 준비를 병행하면서 가장 마음 ..
이벤트 개요 - Object 엑스플랫폼이 EDA를 기본으로 만들어졌다고 해서 모든 Object가 이벤트 처리대상은 아닙니다. 앞에서도 이야기했듯이 이벤트는 '주목할할만한 상태의 변화'를 가지고 있어야 합니다. 엑스플랫폼에서 이벤트를 처리대상이 되는 Object 들은 주로 동적으로 상태가 변하는 것들입니다. UX스튜디오에서 이벤트를 등록할 수 있는 Object 는 다음과 같습니다. * ADL ADL(Application) - 애플리케이션의 로딩/시작/종료 등에 대한 이벤트 - onload, onloadingglobalvariables, onloadtypedefinition, onbeforeexit, onexit 등 Frame - Frame Object 에서 발생하는 이벤트. Frame 이벤트는 ChildFrame과 Form과 긴밀한 ..
그림을 그려보자 - GraphicPath (하) 이제 마지막 단계입니다. GraphicPath 을 사용하면 벡터그래픽의 장점인 확대와 축소를 가능하게 합니다. 기업용 애플리케이션을 만들면서 그림 그리는 툴이 뭐가 필요할까 싶지만 의외로 많은 부분에서 이를 필요로 합니다. 조직도나 다이어그램을 그린다고 할때 드로잉 도구가 없이 그리려고 한다면 정말 난감할 겁니다. 커브는 Cubic Bezier Curve 형식을 따릅니다. 베지어 곡선 Bezier curve 은 불규칙한 곡선을 표현하기 위해 프랑스의 수학자 베지어(Bezier P.)가 수학적으로 만든 선이라고 합니다. 이럴때는 수학공부를 학교다닐때 열심히 할걸이라는 생각이 듭니다. 커스텀 컴포넌트 개발로 깊이 들어갈때에도 수학적인 지식이 필요하기때문에 여유가 있을때 기본을 다시 잡아주는 것도 좋습니다. ..
그림을 그려보자 - GraphicPath (중) 이번 시간에는 타원,호를 살펴보겠습니다. 사실 타원과 호라고 했지만 원을 그릴때도 마찬가지로 적용합니다. 엄격하게 말하면 원은 완전한 원은 아닙니다. 하지만 일반적인 모니터로 보았을때 거의 구분이 안되기 때문에 그냥 원이라고 합시다. ㅠㅠ 앞에서 살펴본 GraphicPath 의 속성은 사실 어디서 뚝 떨어진것은 아니고 SVG 스펙에 근거해서 만들어졌습니다. http://www.w3.org/TR/SVG/paths.html 내용을 보면 거의 유사하다고 보시면 됩니다. SVG 소스를 그대로 가져다 놓으면 동일하게 구현되지만 약간의 차이가 있긴 합니다. elliptical arc 는 A 로 구분하고 다음과 같은 속성을 가집니다. nRx nRy nAngle bLargearcflag bSweepflag nX nY ..
그림을 그려보자 - GraphicPath (상) 애플리케이션을 만들면서 그림을 그리는 일이 있을까 싶지만 일반 컴포넌트만으로 부족한 부분을 채워주기 위해 그래픽 처리를 지원해주는 컴포넌트가 있다는 것이 얼마나 고마운지 모릅니다. 그렇지 않다면 정말 힘들게 표현을 해야 하거든요. 엑스플랫폼에서는 GraphicPath 라는 컴포넌트를 제공합니다. 폼 위에 도형을 직접 그릴 수 있는 컴포넌트로 GraphicPathData 정보를 가지고 선이나 곡선을 그릴 수 있습니다. data 속성에 대해서 먼저 알아보겠습니다. 해당 속성값에 들어가는 인자값은 type과 argument 순으로 들어갑니다. type은 대소문자 구분없이 들어갈 수 있습니다. M : moveTo 이동에 대한 속성입니다. GraphicPath 시작점(또는 마지막 위치)에서부터 이동하게 됩니다. ..
콤보 컴포넌트 콤보는 여러 종류의 음식이 섞여 나오는 것을 의미한다고 합니다. 극장에 가서 팝콘이랑 콜라랑 같이 주문을 할때 콤보세트로 주문을 하게 되면 좀 더 가격이 저렴해지거나 합니다. 또는 게임을 할때 몇가지 명령을 조합해서 내리는 경우 새로운 공격을 할 수 있는 명령이 만들어지는데 이것도 콤보라고 표현합니다. 그냥 콤보라고만 하면 좀 혼란스러워 콤보박스라고 이야기합니다. 엑스플랫폼에서는 컴포넌트명이 Combo 입니다. 그리고 일반적으로 콤보박스와 드롭다운을 구별하여 텍스트 영역을 편집 가능하다면 콤보박스 그렇지 않다면 드롭다운이라고 구분하기도 합니다. 엑스플랫폼에서는 type 으로 이를 구분할 수 있게 지원합니다. UX 스튜디오에서 Combo의 모습은 달력 컴포넌트의 기본 모습과 동일합니다. 내부적으로 들어가면..
달력 컴포넌트 사용해보기 날짜를 입력하는 방식에는 여러가지가 있지만 가장 편한 방법은 직접 텍스트로 입력하는게 아닌가 싶습니다. 하지만 직접 입력하는 방식은 실제 가능한 날짜인지 검증하는데 어려움이 있습니다. 그래서 많은 개발 도구에서 다양한 기능을 가지는 달력 컴포넌트를 제공하고 있습니다. 개발 과정에서 처음에 단순한 달력을 원하다가 점점 기능이 추가되더니 스케쥴 관리 애플리케이션이 되어버릴 수도 있습니다. UX 스튜디오는 기업용 애플리케이션 제작에 필요한 강력한 달력 컴포넌트를 제공하고 있습니다. 메뉴얼을 찾아보면 다음과 같이 설명되고 있습니다. Calendar는 날짜와 시간을 입력받기위한 Component입니다. 날짜와 시간의 출력보다 입력 관련된 기능이 많습니다. 월단위로 보고 입력하는 방식과 편집영역에 직접입력하는 방식..
디버깅 조금 해보기 그럼 간단한 애플리케이션을 만들면서 디버깅에 대해 살펴보겠습니다. 만들어볼 애플리케이션은 간단한 그리드에 간단한 데이터가 들어가고 각 셀을 클릭하면 이벤트를 발생시키도록 했습니다. 새로운 프로젝트를 만들고 (File > New > Project) 새로운 폼을 만듭니다 (File > New > Item > Form) 툴바에서 그리드를 선택하고 폼에 배치합니다. 크기는 상관없습니다. 그리고 DataSet도 하나 만들어줍니다. DataSet 은 실체는 있지만 눈에 보이지 않는 객체로 폼에서 그려도 상관없지만 폼에 표현되지 않고 Invisible Objects 영역에 표시됩니다. 데이터도 설정해놓고 DataSet을 그리드로 드래그앤드롭해서 연결하면 셋팅이 완료됩니다. 그리드 이벤트에서 oncellclick 를 ..

반응형