이 글은 오래된 전에 작성된 글입니다. 따라서 최신 버전의 기술에 알맞지 않거나 오류를 유발할 수 있습니다.
저자는 이 글에 대한 질문을 받지 않을 것입니다. 하지만 이 글이 리뉴얼 되면 이 글에 대한 질문을 하거나
토론을 할 수도 있습니다.
닷넷 스마트 클라이언트에 대한 관심이 점점 높아지면서, 실제 스마트 클라이언트 기반의 프로젝트들도 가시적으로 늘어나고 있습니다.? 하지만 닷넷 스마트 클라이언트에 대한 자료를 찾기는 쉽지 않은 것이 사실입니다. 사실, 대규모로 닷넷 스마트 클라이언트를 적용하는 사례를 국외에서도 찾기 쉽지 않다고 합니다. 반면 우리나라에서는 웹 UI의 한계를 극복하고자, X-Internet 기술을 적극 도입하고 있는 상황이며, 브라우저와 연동되기를 고집하는 고객들(참으로 고지식 하지요?) 덕택에 더욱 스마트 클라이언트에 대한 요구사항은 늘어나리라 생각됩니다.
그래서... 쓸데없는 정의감(?)에 불타는 필자가 닷넷 스마트 클라이언트에 대한 글을 끄적여 보려 합니다. 저번 파일 공유 시리즈는 짧은 시간 동안 들인 노력만큼이나 반응이 그다지 좋지 않더군요... 그래서 이번 스마트 클라이언트에 대한 글은 좀 여유를 갖고 천천히 쓰고자 합니다. 왜냐면... 필자가 급한 게 없기 때문이고... 필자가 게으르고... 내용에도 좀더 충실을 기하고... 결정적으로 필자 맘이기 때문이지요... ^^
시리즈 목차
Smart Client : Basic
독자들은 스마트 클라이언트라는 말을 자주 들어봤을 것이다. 대충은 알고 있지만 당췌 무엇을 말하는지 몰랐던 독자가 있다면 제대로 찾아 온 것이다. 이제 스마트 클라이언트에 대한 필자의 경험을 이곳에서 설명하고자 한다. 물론 한 번의 포스트에 스마트 클라이언트에 대한 모든 내용을 기술할 수는 없다. 죽으나 사나 시리즈 형태의 글이 될 터... 시리즈 형태가 맘에 안 드는 독자가 있다면 필자가 글을 다 쓸 때까지 기다리던가 아니면 직접 글을 쓰던가 니 맘대로 하길... -_-;
About The Term, Smart Client
스마트 클라이언트라는 용어는 상당히 일반적인 용어이다. 말 그대로 똑똑한 클라이언트라는 것인데, 이전의 클라이언트에 비해 영리한 클라이언트라는 것이다. 이전의 클라이언트들은 소위 리치(rich) 클라이언트이거나 웹 브라우저에 의해 표시되는 웹 클라이언트이다. 리치 클라이언트는 클라이언트 PC의 파워를 최대한 사용하는 클라이언트를 말하는 것으로 상대적으로 많은 메모리와 CPU 파워를 요구하는 클라이언트이며 심지어 비즈니스 로직까지 포함하는 경우도 있다. 이렇게 클라이언트 PC의 성능에 의존하며 많은 EXE, DLL 등의 파일을 클라이언트에 '설치'해야 하기 때문에 팻(Fat) 클라이언트라고도 불린다. 일반적인 SI적인 관용어로는 C/S 클라이언트라고도 하는데, 초창기 Client/Server 아키텍처에서 클라이언트로 사용된 PowerBuilder, VB 6.0, Delphi, VC++ 기반의 클라이언트들이 전형적인 리치 클라이언트가 되겠다. 웹 클라이언트라 함은 말 그대로 웹 어플리케이션의 클라이언트를 말하며 클라이언트의 브라우저만을 사용하기 때문에 상대적으로 가볍다 하여 씬(thin) 클라이언트라고도 불린다.
일반적으로 스마트 클라이언트라 함은 리치 클라이언트의 장점과 웹 클라이언트의 장점을 혼합한 클라이언트로서, 리치 클라이언트의 강력한 사용자 인터페이스, 일단 로드되어 수행되면 빠른 응답속도, 개발 생산성이란 장점을 취하면서, 웹 클라이언트의 장점인 손쉬운 배포, 적은 메모리 요구사항, 프로그램 업데이트의 용이한 점을 모두 갖는 클라이언트를 말한다. 그림1은 리치 클라이언트와 웹 클라이언트의 장단점을 보여주며 스마트 클라이언트가 이들의 장점만을 취하고 있음을 보여주고 있다. 일반적인 의미의 스마트 클라이언트란 용어는 특정 기술을 지칭하지 않는다. 즉, 특정 기술을 사용하는 클라이언트를 스마트 클라이언트라고 하지 않으며, 다양한 기술(ActiveX, Java Applet, Flash, .NET, 등)을 통해 구현된다.
그림1. 스마트 클라이언트와 기존 클라이언트 비교
.NET Smart Client ?
지금까지 설명한 내용은 정말로 얌전하며, 어디 이론적인 세미나에서나 볼 수 있는 스마트 클라이언트의 "일반적인" 용어적 설명일 뿐이다. 필자가 이야기 하고자 하는 것은 이따위 것이 아닌 닷넷 스마트 클라이언트이다. 인터넷에서 닷넷 스마트 클라이언트를 검색해 본 독자라면 알겠지만, 닷넷 스마트 클라이언트란 용어는 마이크로소프트에서 공식적으로 사용되는 용어가 아니다. MSDN이나 마이크로소프트에서 스마트 클라이언트를 검색해보면 "스마트 클라이언트"라는 용어를 매우 넓게 정의하고 있으며, 심지어 스마트 폰이나 PDA 등에서 작동되는 클라이언트 마저도 스마트 클라이언트 범주에 포함시키는 것을 알 수 있을 것이다.
우리가 말하는 닷넷 스마트 클라이언트는 닷넷이 제공하는 NTD(No-Touch Deployment) 기술을 사용하여 닷넷 어셈블리를 웹에서 다운로드 받아 클라이언트 어플리케이션을 구동시키는 것을 말한다(NTD 기술에 대해서는 다음 포스트에 상세히 다시 논하기로 한다). 이 정의는 일반적으로 자바, ActiveX, 플래시 기술 등을 사용할 수 있는 일반적인 의미의 스마트 클라이언트 보다 훨씬 좁은 의미의 스마트 클라이언트이며, 심지어 Click-Once 기술을 포함하는 NTD 기술의 닷넷 스마트 클라이언트 정의보다도 좁은 의미의 스마트 클라이언트를 의미한다. 예를 들어 리스트1 과 같이 LoadFrom 메쏘드 호출에 어셈블리(DLL 혹은 EXE) URL을 명시하는 코드 역시 닷넷 스마트 클라이언트로 볼 수 있다(리스트1 코드의 상세한 내용에 대해서는 그다지 신경 쓰지 말자. 다만, 웹에서 어셈블리를 다운로드 받아 수행한다는 정도로만 이해해 두자. 다음 포스트들에서 상세한 설명들이 나올 것이다).
????1?[STAThread]
????2?static void Main()
????3?{
????4???? // 어셈블리 Url
????5???? string strURL = "http://Server/Deploy/Client.exe";
????6???? Assembly assembly = null;
????7?
????8???? // 어셈블리 로드
????9???? assembly = Assembly.LoadFrom(strURL);
???10???? // 엔트리 포인트 클래스를 Reflection으로 호출
???11???? Type t = assembly.GetType("Namespace.EntrypointClass");
???12???? t.InvokeMember ("Main", BindingFlags.Public |
???13???? ??? BindingFlags.InvokeMethod | BindingFlags.Static, null, null, null);
???14?}
리스트1. 어셈블리를 웹에서 다운로드 받아 수행시키는 스마트 클라이언트 Stub 코드
그러나, 실제로 우리나라에서 말하는 닷넷 스마트 클라이언트라 함은, NTD 기술을 사용하여 어셈블리를 다운로드 받아 브라우저, 아니 IE에 의해 클라이언트를 기동하는 것을 지칭하곤 한다. 일반적인 닷넷 스마트 클라이언트적인 의미에 브라우저가 관여되는 좀더 좁은 의미의 닷넷 스마트 클라이언트라고 할 수 있겠다.
스마트 클라이언트라는 용어가 사용되면, 우리는 먼저 이 놈의 "스마트 클라이언트"라는 용어가 무엇을 말하는지 살펴볼 필요가 있다. 넓은 의미에서 말하는 스마트 클라이언트를 말하는지, 좁은 의미의 닷넷 스마트 클라이언트를 말하는 것인지, IE가 관여되는지 아닌지 등을 살펴볼 필요가 있다는 말이다. 딱 제목만 봐서는 "스마트 클라이언트"가 무엇을 말하는지는 파악하기 어렵다는 얘기가 되겠다. 사실 MSDN이나 Microsoft 의 자료에서 IE와 관련되는 아주 좁은 의미의 스마트 클라이언트에 대한 자료를 찾기는 대단히 힘들다. 다만 닷넷 어플리케이션을 클라이언트에 배포하는 방법들 중 하나로서 잠깐 언급하는 문서를 한두 개 찾을 수 있을 뿐이며, 대부분 넓은 의미의 닷넷 스마트 클라이언트에 대한 자료들이거나 Click-Once를 지칭하는 경우가 많다. 요는, 문서나 자료에서 말하는 스마트 클라이언트가 무엇을 말하는가를 잘 이해할 필요가 있다는 것이다.
Why .Net Smart Client ?
닷넷 스마트 클라이언트가 대충 무엇인가를 알았다면, 왜 이것에 관심이 집중(?) 되는가에 대해서도 언급할 필요가 있다. 단순히 남들이 하니깐 따라 하거나, 시장에서 요구하는 기술이니까 공부한다는 좀 곤란하다. 이런 마음자세로는 해당 기술에 대한 깊이 있는 접근이 힘들 뿐더러 수동적으로 기술을 습득하게 되기 십상이다. 항상 "왜?"라는 질문을 던져 보는 것이 좋다.
2000년대 초, 열풍처럼 불어 닥친 웹 어플리케이션. 우리나라처럼 IT 유행에 민감한 나라도 없다고 한다. 굳이 웹 어플리케이션으로 개발할 필요가 없음에도 대부분의 기업들은 시스템을 죄다 웹 어플리케이션으로 개발했었다. 웹 어플리케이션임에도 불구하고 기업들이 개발사(개발자)에게 요구한 것은 배포는 손쉬우면서 UI는 리치 클라이언트 처럼 강력한 것 이였다. 웹 어플리케이션의 가장 큰 장점이 무엇인가? 특별한 설치가 필요 없으며, 클라이언트 PC의 시스템 사양을 별로 타지 않으며 무엇보다도 배포가 쉬우며 프로그램의 업데이트가 간편하다는 점이다. 이러한 장점을 살리기 위해서는 HTML에 기반하는 UI는 그만큼 약해질 수 밖에 없다. 하지만 우리나라 사용자들이 어떤 사용자들인가? 화려한 것을 좋아하며, 자신이 편리했던 기능을 포기하지 않으려는 융통성 없는 아집덕택에 수천, 수만 건의 데이터를 웹 브라우저상에서 조회하려 하거나, 웹 페이지가 깜박이는 것은 절대로 용납하지 않을 뿐더러, 페이지는 빠르게 떠야만 한다. 이 뿐인가? UI는 이미지로 떡칠해서 무조건 예뻐야 하지 않는가?
웹 어플리케이션이면서도 웹 UI를 용납하지 않는 환경으로 인해, 웹 어플리케이션의 개발 생산성은 크게 떨어져 버렸다(수천 라인의 자바 스크립트를 생각해보라...). 생산성이 저하 되면서 요구하는 기능이라도 제대로 되면 좋았겠지만, 사용자가 요구하는 UI는 상당부분 만족되고 있지 않는 것 역시 사실이다. 그래서 요즘의 웹 기반의 시스템들은 다양한 방법을 통해 이를 극복하고자 하고 있다. 대표적으로 ActiveX 컨트롤을 사용하여 HTML로 구현하기 힘든 UI를 구현한다든가, AJAX 류의 기술을 이용하여 웹 화면의 깜박임을 제거한다든가 등등의 방법을 사용하곤 하지만 역시 개발 생산성이 저하되며, 다량의 데이터에 대해서는 성능마저 떨어지곤 한다.
이러한 상황에서 브라우저를 기반으로 하면서 HTML이 아닌 클라이언트 PC에 웹을 통해 자동으로 다운로드 받은 모듈에 의해 클라이언트가 기동되는 "스마트 클라이언트"는 IT 관리자들에게 충분히 매력적이라 할 수 있었겠다. 먼저, 브라우저에 의해 구동되므로 그렇게 좋아하는 "웹 기반" 어플리케이션이다. 그리고 기존의 C/S 클라이언트들처럼 강력한 UI (Tabbed Window, Drag&Drop, Progress Bar, Excel Interoperability, Powerful DataGrid, ...)도 가질 수 있을 뿐 더러, 웹 어플리케이션에 비해 개발 생산성 마저 좋으니 어찌 군침을 흘리지 않을 수 없겠는가?
그렇다면, X-Internet 기반의 다양한 스마트 클라이언트 솔루션에서 닷넷 스마트 클라이언트가 좀 더 두드러 지는 것은 무슨 이유일까? 닷넷 이외의 대부분의 X-Internet 기술들은 ActiveX에 기반하고 있으며 별도의 패키지만의 스크립트 언어가 사용되는 경우가 많다. 이들은 새로운 스크립트 언어에 대한 부담감과 클라이언트를 저 수준에서 제어하는 것 역시 쉽지 않으며, 관련 개발자의 소싱(sourcing) 또한 쉽지 않은 경우가 많다. Java 애플릿을 사용하는 방법도 생각해 볼 수 있지만, 생산성이 크게 떨어지기 때문에 고려대상에서 제외되기 마련이다. 반면 닷넷 기반의 스마트 클라이언트는 일반적인 닷넷 개발자라면 윈폼 개발을 수행할 수 있을 뿐더러(요즘엔 ASP.NET 개발자보다 윈폼 개발자 구하기가 어렵다고 한다... -_-;), 강력한 WinForm 개발 환경과 Visual Studio 덕택에 높은 개발 생산성을 구가할 수 있기 때문이다. 실제로 필자가 관여한 프로젝트의 PM이 "프로젝트가 아직 오픈 안 되서 다른 건 모르겠고, 개발 생산성 하나는 맘에 든다"란 말을 하기까지 했다.? 이 프로젝트는 약 5개월 동안 개발할 계획이였는데 개발 기간이 1개월 단축되었던 프로젝트였으며 실제로 단축된 개발 기간 내에 개발을 완료했었다!
Is .NET Smart Client REALLY Smart ?
닷넷 스마트 클라이언트는 정말로 앞서 그림1에서 보인 것처럼 정말로 스마트한 클라이언트 인가? 사실은 그렇지 않다. 닷넷 스마트 클라이언트가 그림1과 같이 리치 클라이언트의 장점과 웹 클라이언트의 장점을 모두 취한 것이라면 얼마나 좋겠는가 마는, 닷넷 스마트 클라이언트는 리치 클라이언트 만큼, 혹은 그 이상의 메모리를 요구하며 클라이언트 PC의 CPU 역시 많이 타는 편이다. 또한 닷넷 프레임워크를 기본적으로 사용하기 때문에 최소한 클라이언트에 닷넷 프레임워크가 설치되어 있어야 한다. 게다가 스마트 클라이언트가 최초에 로드되는 시간은 상당히 긴 편이다. 이러한 한계는 어떤 스마트 클라이언트들도 마찬가지이다. 특히 가상 수행 환경(virtual execution environment)의 기술에 기반하는 자바나 닷넷 환경은 더욱 더 그러하다.
하지만 닷넷 스마트 클라이언트는 최종 사용자가 가장 중요하게 느끼는 강력한 UI, 수천, 수만 건의 데이터를 빠르게 조회하고 표시하는 능력 등은 리치 클라이언트 못지 않으며, 개발 PM과 개발자가 가장 중요하게 느끼는 개발 생산성은 타의 추종을 불허하며, IT 관리자가 중요하게 여기는 배포의 편의성과 새로운 버전의 배포는 웹 어플리케이션과 다를 바 없이 간단하다. 이러한 이유만으로도 닷넷 스마트 클라이언트는 충분한 존재 가치가 있을 뿐 더러 고려의 대상이 되어야 할 것이다.
What's Next ?
닷넷 스마트 클라이언트에 대해서 이론적인 접근을 해 보았으니 이제 구체적으로 닷넷 스마트 클라이언트에 대해 접근해 볼까 한다. 다음 포스트에서는 닷넷 스마트 클라이언트를 구동하는 두 가지 방법과 구체적인 예제를 살펴보도록 하겠다. 곧바로 예제를 기대했던 독자라면 좀 미안하지만, 좀 천천히 많은 이야기를 하고자 하는 필자를 이해해 주기 바란다...
Comments (read-only)
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 위시 / 1/2/2006 3:01:00 PM
기대됩니다^^
새해 복많이 받으세요.
좋은글 항상 감사합니다..
스마트 클라이언트란 용어가 귀에 쏙쏙 들어오네요..^^
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 정준명 / 1/2/2006 6:32:00 PM
오 드뎌 스마트클라이언트에 대한 아티클을 올려주시는군요.
시리즈물이라 더더욱 가슴 조리네요. ㅋ~ 잘 읽고 갑니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 허정훈 / 1/6/2006 5:11:00 PM
항상 스마트클라이언트의 실체에 대해 궁금했었는데 역시 가려운 속을 긁어 주시는 군요~
기대할께요~
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 채준 / 2/8/2006 4:59:00 PM
기대만발이 대략난감으로 변하지 않는 그날까지. ^^;; 홧팅하십쇼. ( '')/
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 초보 닷넷 개발자 / 3/13/2006 4:25:00 PM
드뎌 찾았습니다. 마크 꾹했습니다. 모두 읽어보고 궁금했던 것에 대하여 방향 제시를 해주시길....^^
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 꿈의공장 / 3/28/2006 2:50:00 PM
경청해서 듣겠습니다...
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 앗싸구리 / 3/30/2006 1:57:00 PM
저도 경청해서 듣겠습니다... 즐겨찾기 1순위 입니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 구경꾼 / 4/4/2006 2:33:00 PM
정말 좋은 내용입니다. 전 개발자는 아니지만 많은 참고가 되었습니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / woo / 4/4/2006 5:53:00 PM
감솨감솨.정말이지 좋은 내용 감솨드립니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 개발자 / 6/23/2006 9:48:00 AM
좋은 정보 감사합니다. ^^
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / onemins / 7/27/2006 8:50:00 PM
너무나 좋은정보 감사합니다...
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 저기 꼭 .net에서만 되나요? / 8/11/2006 10:14:00 AM
저기 꼭 .net에서만 되나요? java인 톰켓이나 다른 것에서만 되는지
어젠 톰켓으로 만드었는데 잘 안되네요
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 블로그쥔장 / 8/11/2006 1:33:00 PM
스마트 클라이언트는 웹 서버가 톰켓이더라도 상관없이 작동합니다.
스마트 클라이언트의 원리에 대한 제 글을 살펴 보시면 다운로드 되는 닷넷 어셈블리(dll, exe)의
MIME 타입이 application/octet-stream 혹은 application/x-msdownload 이면 작동하도록 되어 있습니다.
톰켓에서 다운로드되는 dll 혹은 exe의 마임타입이 무엇인가 확인해 보십시요.
Fiddler(
http://www.fiddlertool.com)를 사용하시면 쉽게 파악하실 수 있습니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 쥔장님... / 8/14/2006 8:33:00 AM
MIME 타입이 application/octet-stream 혹은 application/x-msdownload 이면 작동하도록 되어 있습니다.
이걸 어디서 알아 볼수 있는거죠?
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 이것좀 알려주세요 tomcat에서 하는데 여전히 안되네요 / 8/14/2006 3:00:00 PM
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
function test(){
alert( document.all.sm.name_member);
}
</script>
</HEAD>
<BODY>
<OBJECT id = "sm" style="WIDTH: 100%; HEIGHT: 264px" height="264" width="100%" classid="ClassLibrary1.DLL#ClassLibrary1.Class1" >
<PARAM NAME="memver_name" VALUE="kojaedoo!">
</OBJECT>
<input type="button" onclick="test()" style="WIDTH: 96px; HEIGHT: 22px" value="오브젝트 벨류값 가져오기">
</BODY>
</HTML>
*************************************************************************************
using System;
namespace ClassLibrary1
{
/// <summary>
/// Class1에 대한 요약 설명입니다.
/// </summary>
public class Class1
{
string name_member;
public string memver_name
{
get
{
return this.name_member;
}
set
{
this.name_member = value;
}
}
}
}
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 블로그쥔장 / 8/14/2006 6:09:00 PM
Tomcat에서 안된다는 것이 스마트 클라이언트가 브라우저에 안 나타난다는 겁니까?
브라우저에 나타나긴 하지만 원하는대로 memver_name 이란 속성을 읽을 수 없다는 겁니까?
일단 웹 서버에 상관없이 스마트 클라이언트가 나타나는 것은 앞서 언급한 대로 MIME 타입과 다운로드 여부 등에
의해 결정됩니다. 질문하시기 전에 제 글들을 먼저 읽어 보시기 바랍니다.
특히 스마트 클라이언트의 원리에 대한 글을 읽어 보십시요. 스마트 클라이언트는 Tomcat에서도
잘 작동합니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 블로그귄장님 / 8/15/2006 7:22:00 AM
스마크 클라이언트가 브라우져에 안나타나며
jspt상단에
<% page contentType="application/x-msdownload charset=euc-kr"%>
이렇게 했더니 다운로드 받는다는 윈도우가 나타 나더군요!
아마도 memver_name 이란속성을 못 읽어서 그런듯 한데요
위에 제가 만드 코드가 잘못 된건지 알고 싶습니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 블로그쥔장 / 8/15/2006 10:10:00 PM
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 장님 / 8/16/2006 10:43:00 AM
답변 감사 합니다.
원리를 읽어도 이해가 안가서요
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 주인장님 / 8/17/2006 11:27:00 AM
스마트 클라이언트에서 System.Security.SecurityException
이런 문구가 나오는데 FILE을 제어 하는데 보안 때문에 그런다고 들었습니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 블로그쥔장 / 8/21/2006 9:29:00 AM
네.. 그렇습니다. 기본적으로 스마트 클라이언트는 로컬 디스크의 파일을 액세스할 수 없습니다.
이를 가능하게 하려면 CAS(Code Access Security) 설정을 해주셔야만 합니다.
상세한 내용은 제 글 중 CAS 관련 글을 참고 하시기 바랍니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 스마트클라이언트에서는 디버깅 하는것을 볼수 있나요? / 8/23/2006 5:06:00 PM
스마트클라이언트에서는 디버깅 하는것을 볼수 있나요?
브라우져에서 띄워서 보니깐 잘 알수가 없던데요 볼 수 있는 방법 좀 알려주세요
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 블로그쥔장 / 8/24/2006 9:31:00 AM
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 열라개발중 / 2/16/2007 1:19:00 PM
요즘 x-Internet을 이용한 개발로 인하여 디따 피곤한 사람 입니다.
사실 플젝에서 개발한 내용을 MI-Platform 으로 적용할까 (요 놈은 내가 첨해보는 넘이라 부담 백배) 닷넷을 이용한 스마트 클라이언트로 적용할까 고민중인데..
이글이 많은 도움이 될거 같습니다. 쥔장님 팟팅입니다. 제 궁금중을 마구마구 해결해 주시리라 믿어 의심치 않겠습니다.
#re: 소스가.. / 희정 / 4/17/2007 4:03:00 PM
어셈블리를 웹에서 다운로드 받아 수행시키는 스마트 클라이언트 Stub 코드<- 요 소스가 ASP.NET에서 다른곳에 만들어 두었던 윈도우 어플리케이션의 EXE파일을 불러다 쓰는 경우인건가요?
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / suemirr / 8/17/2007 4:56:00 PM
감동입니다. 이것을 찾고 있었습니다.!!!
Smart Client.. 왜 진작 이것을 몰랐을까.. ㅜㅜ;
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / test / 8/31/2007 10:42:00 AM
test
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 강반장 / 12/27/2007 5:40:00 PM
ㅠ.ㅜ 아드뎌~~ 감사합니다. 즐겨찾기 꾸욱 합니다.
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / 시하 / 5/13/2008 5:36:00 PM
알려주셔서 정말 감사해요 ㅠ ㅠ 정말 쩍쩍 갈라진 논에 단비같은 글이네요 !! 감사합니다^ ^
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / Bandcy / 9/12/2008 9:48:00 AM
스마트 클라이언트에 대한 이해가 너무 부족했었는데,
정말 필요한 정보를 얻어 갑니다.
감사합니다~~
#re: 스마트 클라이언트, 그것을 알려주마 (I) : 개요 / choong / 12/14/2008 1:48:00 PM
좋은 글 잘 읽고 갑니다.
제 블로그에 글 링크 걸고 갑니다.
감사합니다. ^^