통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
WPF & Silverlight 포럼마을입니다.
  마을등급 WPF & Silverlight   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 서학수 주민 728 since 2008-07-17
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
[마을 게시판]
WPF 강좌
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 WPF 강좌
 WPF Overview #2 2008-07-16 오전 9:46:55
 kdw234  kdw234님께 메시지 보내기kdw234님을 내 주소록에 추가합니다.kdw234님의 개인게시판 가기 번호: 37263  / 읽음:6,183

요즘 온라인게임에 빠져서 포스팅이 살짝(? 대략 3시간정도...??ㅠ) 늦엇네요. 죄송합니다.

저번시간에 이어 WPF Overview 2번째 시간입니다. 저번 시간에는 WPF가 어떻게 구성되었고 어떻게 작동되는것인가에 대해 알아보았는데요, 처음 접하시는 분들께서는 다소 어려운 감이 있을수도 있습니다.

이번시간에는 좀더 가벼운 주제로,
왜 WPF를 사용해야 하는가 그리고 WPF를 사용하면 왜 좋은가?
에 대해서 알아보도록 하겠습니다.

사용자 삽입 이미지


보통 우리는 디자인이 요구되는 프로젝트를 할때 디자이너와 함께 작업을 합니다.
(최근 UX가 발전하면서 Application의 UI 디자인은 필수요소라고 할 수 있죠.)
디자이너는 Photoshop이나 Illustrator, Powerpoint 등을 사용해서 디자인을 제작합니다. (그림 가장왼쪽)
그리고나서 각각의 세부항목들을 잘라서 JPG,PNG,PPT등의 포멧으로 변환하여 개발자에게 넘겨주죠?
(간혹가다 잘라주지 않고 '통이미지'로 보내주는 사람이 있는데.. 이건뭐.... 직접 잘라다 쓰란소리죠 ㅠ )
뭐 어쨋든 개발자는 이렇게 이미지 파일을 받으면 C++,C#, VB(주로 사용하는 언어가 없다고 미워하진 마세요ㅠ 떠오르는것들만쓴겁니당)와 같은 언어를 사용해 UI를 구현하게 됩니다.

많은 개발자 분들이 느끼시겠지만, 개발의 한계를 이해 하지 못하는 디자이너 분들의 환상적인 디자인 때문에, 수많은 삽질과 노가다를 시작합니다. 현실은 언제나 그렇듯이 냉혹합니다ㅠ
열심히 한다고 원하는 결과가 뚝딱 나오는건 아니죠ㅜ

엄청난 삽질과 노가다를 통해 디자이너의 요구대로 구현을 하다보면 실제로 구현하기 너무 힘든 부분이 발생하는 경우도 있습니다. 위에서 예시를 든 콤보박스를 보면..

간지가 좔좔 흐르는 콤보 박스에 각각 아이템들에는 체크박스도 포함되어 있네요..
체크박스도 보통 체크박스는 아닌듯 하고.. 위와 같이 구현을 하려면 보통은 콤보박스를 새로 구현을 해야합니다.
체크 박스따로 만들고 체크박스포함된 콤보박스 아이템 만들고 거기다 콤보박스 틀에 내부 기능까지...
해야 할 일이 너무 많습니다. ( 이럴경우를 보고 배보다 배꼽이 크다고 하죠.) 

개발자 입장에서는 이것도 해보고 저것도 해보다가 결국 타협을 하기 시작합니다. 이건 기술적으로 안되, 저거 하려면 시간이 너무 오래걸려 이렇게 자신과의 타협을 하면서 나온결과물은 그림 오른쪽, 기존 콤보박스와 별다른 차이가 없죠.

이제부터 디자이너와 개발자의 싸움이 시작됩니다. 디자이너는 왜 자기가 디자인 해준데로 구현을 못하냐고 소리치고, 개발자는 그게 말처럼 쉽게 되는게 아니니까 니가 해봐라 하고, 그럼 가능한선에서 예쁘게 만들라고 합니다. 이말은 마치 디자이너가 어느정도 컨셉을 정해주면 개발자가 알아서 개발이 가능한 형태로 새로 디자인해서 개발을 해라 라는 말과 같죠..

그럼 개발자들은 이렇게 말합니다.

사용자 삽입 이미지


개발만으로도 할일이 태산같은데, 디자이너가 할일까지 해야 하겟냐는거죠..
WPF는 이런 상황에 놓인 개발자들을 위한 해결책이라 할 수 있습니다.
아래 그림을 살펴보도록 하겠습니다.

사용자 삽입 이미지


아까와 비슷한 그림이지만 잘 살펴보면 이번에는 개발자의 콤보박스가 디자이너가 요구한데로 그대로 구현이 되어있다는걸 확인 하실 수 있습니다. WPF를 사용한 결과인데요, 어떻게 된일일까요?

눈에 띄는것을 보면, 이전에 Photoshop이나 Illustrator를 JPG,PNG등의 포멧으로 전달 햇던 작업이 딸랑 XAML이라는 것하나로 해결된것을 확인 할 수 있습니다. XAML이란 WPF에서 UI를 표현하기 위한 언어로 디자이너와 개발자가 모두 사용가능한 형태의 중간 언어라고 할 수 있습니다.

"중간 언어" 라고 표현을 했는데, 그렇다면 디자이너들은 그럼 우리가 언어를 배워야 하는거 아니냐 라고 말할 수 있겟죠? 배워서 남주는건 아니니 배운다고 나쁠건 없지만, 배우기 싫으면 굳이 배우지 않아도 언어를 충분히 다룰 수 있습니다. Exression Studio와 같은 Tool을 사용해 디자인을 하고, XAML으로 저장만하면 되기 때문이죠.

사용자 삽입 이미지


XAML은 디자이너의 디자인을 객체단위로 XML로 표현하는 방법이라 할 수 있습니다. 개발자는 이렇게 XML형태로 만들어진 디자인을 가져다가 그대로 사용하면 되는것이죠.  정리하면 디자이너가 위와 같은 버튼을 하나 그렷다고 가정을 해보겠습니다.

그럼 XAML(왼쪽)으로 표현될것이며, 개발자가 버튼을 을만들면 C#,VB.NET(중앙,오른쪽) 과 같이 코드로 표현하게 됩니다. 차이점은 코드를 통해 UI를 구현 할 경우 디자이너가 보내준 그림을 기준으로 개발자가 새로 구현 해야하지만, 디자이너가 만들어준 XAML을 사용하면 개발자가 UI를 새로 구현할 필요 없이 내부 Logic만 구현하면 바로 사용이 가능 하다는거죠.

아직까지는 살짝 애매할 수 도 있는 부분이지만, XAML에 대한 이야기와 디자이너와 협력 부분은 뒷부분에서 더 자세히 다루도록 하겠습니다. (지금은 일단 XAML이라는게 있구나 라고 만 이해해 두시면되겠습니다.)


사용자 삽입 이미지


XAML은 Expression Designer나 Expression Blend와 같은 Tool에서 쉽게 제작이 가능하며 Expression Studio에서 만들어진 XAML은 곧바로 VisualStudio에서 사용이 가능합니다. 한가지 덧붙이자면, VisualStudio에서 개발한 프로젝트를 Expression Blend에서 불러와 디자인 작업을 할 수 도 있고, Expression Blend에서 작업한 프로젝트를 Visual Studio에서 불러와 사용할 수있습니다.

여기서 중요한 점은 바로, UI와 Logic의 분리 입니다.
이제 디자이너는 디자인만 하고, 개발자는 내부 Logic만 구현하면 되는 시대가 된거죠.

일단 이번 시간은 여기까지로 하고, 다음 시간부터는 XAML과 WPF에 대해 조금더 알아보도록 하겠습니다.
지금 시간이 대략 새벽 4시가 가까워지고 있는데 ㅠ
너무 졸려서 인지 쓰면서도 내가 맞는 말을 하고 있는가 싶습니다. ㅠ
일단 일어나서 한번더 읽어보긴 하겠지만, 혹시나 읽으시다가 잘못된 부분이나 질문은 사정없이 태클 걸어주시기 바랍니다.  그럼 전 꿈나라로~~



보. 너. 스.!!!!
XAML이 국내에 소개되면서 많은 개발자들 사이에서 논란이 되었던 XAML에 대한 발음에 대해 말씀드리겠습니다. 이건 지극히도 개인적인 의견이며 정답이 아닐 수도 있으니 100%신뢰 하지는 마시길 바랍니다.

제멀,제믈,제블,젬얼,젬블,젬을 등등등..


개인적으로 생각하는 XAML에 대한 발음은....!!!

사용자 삽입 이미지


죄송합니다. -_-; 졸려서 미쳣나봐요.


김대욱(kdw234@naver.com) http://kdw234.tistory.com

[코멘트] 좋음
2009-09-07 10:56
 flysky19  flysky19님께 메시지 보내기flysky19님을 내 주소록에 추가합니다.flysky19님의 개인게시판 가기 
마지막..^^;;;; 잘봤습니다..
저장 취소
[코멘트] 좋음
2012-08-09 12:53
 s879563  s879563님께 메시지 보내기s879563님을 내 주소록에 추가합니다.s879563님의 개인게시판 가기 
다른데서 봤던내용인데(아마 동일 저자 포스팅) x박 ㅠㅠ
저장 취소
코멘트쓰기
  좋음   놀람   궁금   화남   슬픔   최고   침묵   시무룩   부끄럼   난감
* 코멘트는 500자 이내(띄어쓰기 포함)로 적어주세요.
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.