Creative Commons License

Community

공지/뉴스
지식공유
질문/답변
자료실
자유로운 글
방명록

공유를 넘어 교류로... 제가 알리는 말씀 및 사이트 이용자들이 함게 참여하는 커뮤니케이션 공간입니다.

.

자료실

군인이 최신 무기로 무장한채 전투에 임해야 하듯이 개발자는 강력한 툴로 무장하여 실무에 임해야 합니다. 유용한 툴, 개발 자료, 문서등을 공유하는 공간입니다

실용 아키텍처 : 사용자 인터페이스

작성자 박종명
작성일 2008-07-09 오후 4:37:32,    조회수 : 2228

실용 아키텍처 : 사용자 인터페이스

저자 : Ted Neward

원문 : http://www.microsoft.com/korea/msdn/library/ko-kr/bb288452.aspx

 

응용 프로그램의 사용자 인터페이스(UI) 는 신중히 고려되고 비즈니스에 가장 적합한 선택이 되어야 한다.

사용자 인터페이스의 개념적, 기술적, 경험적 환경변화는 정말 놀랍도록 발전에 발전을 거듭하고 있다.

저자는 이런 현상을 무어의 법칙에 비유하고 있다.

근래 기술변화를 살펴보면 그리 과장된 표현도 아닌 것 같다.

굳이 콘솔 스타일의 인터페이스부터 거론하지 않더라도 ASP, VB, WPF, Silverlight, SmartClient, ASP.NET

WindowsForm.NET, Ajax, Flex 등 기술차이, 환경변화, 체감효과 등의 변화는 급속화 되고 있다.

 

사용자의 인터페이스의 선택이 단순히 사용자 환경이 이냐 윈도우 응용프로그램이냐의 기준만을 말하지는 않는다.

웹 이든 윈도우 응용프로그램이든 사용자에게 최종적으로 표현되고 사용자와 상호작용하는 방식,

심지어 성능과 같은 비 기능적 요구사항 까지도 기준이 되는 변수로 두어야 한다.

 

저자는 사용자 인터페이스 선정은 상황에 맞는 정확한 기준을 고려하여 신중히 결정하라고 말한다

 

무어의 법칙에는 장단점이 있습니다. 무어의 법칙은 간단히 말해 18개월마다 트랜지스터 수가 두 배로 증가, 즉 컴퓨팅 성능이 두 배로 향상된다는 법칙으로, 여기서 설명하는 내용과 관련해서는 우리가 구축하는 응용 프로그램의 사용자 인터페이스 성능 및 기능의 지속적인 확대를 설명하는 근거가 됩니다. 이러한 사용자 인터페이스의 성능 확장은 응용 프로그램을 구축하는 데 있어 기술적으로 상당한 유연성을 가져다 주지만 동시에 막중한 책임도 따르게 됩니다. 따라서 사용할 인터페이스를 신중히 선택해야 합니다.”

 

 

저자의 다음과 같은 결론에 도달한다.

아쉽게도 신중하게 여러 옵션 중에서 가장 적합한 사용자 인터페이스를 고른다고 하더라도 기술은 항상 바뀌고 발전하기 때문에 지금 구축한 응용 프로그램은 언젠가는 "구식" 응용 프로그램이 되어 다시 작성할 수밖에 없습니다. 사실 개발자나 관리자 중에는 새로운 기술이 출현하면 기존의 응용 프로그램을 다시 작성하는 것을 대수롭지 않게 여기는 사람이 많기 때문에 이러한 일은 자주 발생합니다. 물론 개발자나 관리자는 우수한 신기술로 사용자 인터페이스를 개선하면 응용 프로그램을 사용하기가 훨씬 쉬워질 테니 신기술을 마다할 이유가 없지 않느냐고 반문할 겁니다. 그러나 응용 프로그램 개발 방식을 최종 결정할 때 최우선으로 고려해야 하는 것은 개발의 용이성입니다. 그리고 이러한 선택을 위해서는 사용 가능한 도구에 대한 깊이 있는 이해와 원하는 UI를 만들어 낼 수 있는 도구가 어느 것인지를 판단할 수 있는 지식이 바탕이 되어야 합니다.”

 

저자가 언급한 요소들 중 개발자의 입장에서 보면 민감하게 느끼지는 사항은,

[구현방식], [위치] 일 것이다.

구현방식의 차이는 실제 개발과 인터페이스 연동에 직접적인 연관성을 가지며

위치는 성능, 배포, 접근성 등 코드 못지 않게 소프트웨어환경의 중요한 환경요소이다

 

저자가 언급했듯이 인터페이스와 비즈니스, 데이터를 독립된 tier 로 잘 설계하고 구현했다고 하더라도

실제로 인터페이스의 변화는 기존 프로그램의 많은 부분의 변화를 동시에 유발하게 된다.

 

응용 프로그램의 많은 부분이 사용자 인터페이스의 선택 결과에 따라 코딩되므로 이러한 결정은 그리 쉽지가 않습니다. 물론 구성 요소의 모듈화, n 계층 시스템 등의 기술을 활용할 수도 있겠지만, 결국은 비즈니스 개체를 표시 계층과 효과적으로 분리해 놓은 경우에도 표시 계층과 해당 계층에서의 사용자 상호 작용을 처리하는 코드를 작성해야 합니다. 이러한 코드는 전혀 간단하지 않으며, 특히 한번 잘못 판단할 경우 몇 년 후에 전체를 다른 방식으로 다시 코딩해야 하는 사태가 발생할 수도 있습니다. 프로그래밍 언어나 플랫폼을 약간만 변경하는 경우에도 엄청난 분량의 코드를 작성해야 할 수 있으니까요. 이러한 사실이 잘 믿어지지 않는다면 현재 여러분의 WinForms ASP.NET 프로젝트를 살펴보십시오. WinForms에서 ASP.NET으로 또는 반대로 전체를 "리팩터링"해야 한다면 얼마나 많은 양의 작업을 해야 하겠습니까? 표시 계층과 비즈니스 계층을 완벽하게 분리해 놓은 최상의 시나리오에서도 아마 전체 프로젝트의 거의 절반은 다시 개발해야 할 것입니다.”

 

지금 사용자 인터페이스의 변화를 시도하거나 선택을 하려는 분이 있으시다면 저자의 글은
좋은 참고 자료가 될 것입니다

이름
비밀번호
홈페이지
WP <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요