태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

닷넷프레임워크 딥 다이브 - .NET Framework Deep Dive

SEARCH RESAULT : 글 검색 결과 - 2010/03 (총 6개)

POST : .Net/.Net Framework Design Guide Line

네이버 오픈API C# Linq Provider - Linq To Naver 구현 예제 포스트 합니다..


네이버 오픈API C# Linq Provider - Linq To Naver 구현 예제 공개합니다.
작은 프로젝트이며, 네이버 오픈API C# LINQ Provider 라이브러리와 Test 프로젝트로 구성되어 었습니다.

LINQ와 LINQ Provider 에 대한 이해를 도울 수 있는 프로젝트라 판단되어 포스트 합니다.

다음, 미투데이 등등의 API를 추가하여 '검색엔진 Linq Provider 프로젝트'로  발전해도 좋을 듯 싶습니다.

소스코드는  linqtonaver.codeplex.com 에서 다운로드 받을 수 있습니다.


개요 :
이 프로젝트는 Naver OpenApi를 LINQ Custom Provider 형식으로 구현 한 것입니다.
LINQ의 한국어 예제가 드물고, LINQ의 활용성을 제시합니다.

목적 :
Language INtegrated Query 는 LinqToSql, LinqToEntities ( Entity Framework) 의 DB 와 Interact 하는 SQL의 또다른 방법으로만 알려져 있기도 합니다.

LINQ는 이름에서도 알수 있듯이 '언어에 통합된 쿼리' 로써 다양한 형태의 자료를 '질의(쿼리)' 형식으로 처리할 수 있음을 이 예제를 통해서 보입니다.

Lambda Expression과 Expression Visit 그리고, Queryable 메소드를 확장함으로써 Information Hiding을 달성할 수 있음을 보여 줍니다.

LINQ Provider가 어떻게 작동하는지 쉬운 구현 예를 통해 이해함으로써, 더욱 복잡한 프로바이더들을 더욱 효과적으로 사용할 수 있게 의견을 나눕니다.

작은 프로젝트에서 OOP와 디자인패턴이 적용되는 과정과 프레임워크로의 진화(향후  Open Api 공급자들의 모든 구현을 통합하여 프레임워크화 시키는 것.) 됨에 의견을 공유합니다.


LinqToNaver 디자인 Trade-Off

1. NaverParser 에 SearchResult의 모든 Parse 메소드를 넣을 수 있으나, 코드가 너무 많아짐에 따라 각각의 Result 타입에 위치시켰습니다.

2. SearchResult를 Abstract화 시키고, Parse시에 Abstrct Factory 디자인 패턴으로, QueryType을 추가할 때는 NaverSearchResult로 부터 파생시키고, Factory 등등의 클래스에 연결함으로써 추가할 수 있습니다.

3. Naver OpenApi의 Response Result는 RSS2.0 명세로 받아 올수 있어, 각각의 Result를 RSS2.0에 완전히 맞출 수도 있겠으나,
(예를 들어 RSS 클래스를 Channel , Item Collection 의 구성으로 만들 수 있으나),
OpenSearch 스타일의 명세 맞춤 (한개의 레코드가 검색결과 갯수 등의 모든 정보를 담는 것.)을 도모하고,
RSS.Item.Title 방식으로 깊이를 가지지 않게 하기 위해 한개의 클래스에 풀었습니다.



PS:
Naver OpenApi의 모든 섹션을 구현하지는 않았습니다. 필요하신 분들은 같은 패턴으로 구현하시면 됩니다.
Daum Api도 같은 방법으로 구현할 수 있습니다.
네이버 동영상 API는 2010년 4월 29일 종료 된답니다.


사용 예제
        //네이버 API 키를 대입하세요.
        static string AppKey = "";

            //추가 파라미터를 사용하는 경우. Sort 
            //웹으로 요청 되는 URL : http://openapi.naver.com/search?key=당신의키&target=news&query=아이폰&display=5&start=1&sort=date
            NaverContext context = new NaverContext(AppKey);
            var query = (from p in context.Newsis
                         where p.Query == Keyword && p.Sort == "date" 
                        select p).Skip(1).Take(5);

            ObjectDumper.Write(query);

            Console.WriteLine("---------------- 블로그 검색 결과 -----------------------");

            var query2 = (from p in context.Blogs
                          where p.Query == Keyword && p.Sort == "sim" 
                         select p).Skip(1).Take(5);

            ObjectDumper.Write(query2);



            Console.WriteLine("----------------실시간 인기 키워드 결과 -----------------------");

            var query3 = (from p in context.Ranks
                          where p.Query == "nexearch"
                          select p);

            ObjectDumper.Write(query3);


            Console.WriteLine("----------------추천 키워드 결과 -----------------------");

            var query4 = (from p in context.Recommends
                          where p.Query == Keyword
                          select p);

            ObjectDumper.Write(query4);



            Console.WriteLine("----------------웹 문서 결과 -----------------------");
            //Queryable 메소드 확장을 이용하는 방법.
            //ScopeResults Extension 메소드를 사용.
            var query5 = (from p in context.Webkrs.ScopeResults("smack.kr")
                          where p.Query == Keyword
                          select p);

            ObjectDumper.Write(query5);




Linq Provider에 대한 More Information
Building a LINQ Provider By Pedram Rezaei, Microsoft Corporation
LINQ: Building an IQueryable provider series by mattwar
저작자 표시
top

tags

LINQ custom provider, Naver openApi C#, 네이버 오픈 API

posted at

2010/03/31 17:47


POST : Human Information Interaction

안드로이드, 팍스 구글리카 ( Pax Googlica)의 완성


안드로이드 폰의 전격 발매를 시작으로 스마트폰 시장은 애플, 구글, 마이크로소프트의 삼분지 천하가 모습을 드러내고 있습니다.


1. 스마트폰 OS의 삼분천하


애플은 아이폰을 이용해 수년간 발전시켜 오면서 '풍부한 사용자 경험(Rich User Experience)란 이것이다' 를 보여줌과 동시에 , 모든 개발자가 배포자가 될 수 있는 앱스토어로 어플리케이션 생태계를 만들어 냈습니다.

개개의 개발자가 참여하는 오픈소스라는 형태가 이미 존재 하였지만, 그 결과물로 돈을 만들어 낼수 있는 생태계를 만든 것은 애플입니다.

애플은 그 특유의 천재성인 '손 맛' 을 극도로 실현시키는 재능을 가지고 있으며, 아이패드의 라인업 추가는 또 한번 커뮤니케이션 디바이스의 혁명을 보여주려 하고 있습니다.

이로써 애플은 스마트 인포메이션 디바이스 경쟁에서 당당히 챔피언 자리를 차지하고 있습니다.



구글의 안드로이드 폰들이 속속 출시 됨에 따라 스마트 인포메이션 디바이스 분야에 구글이 진입하기 시작했습니다.

구글은 정보의 조직화(Information Orgernize)를 존재 가치로 내세우는 회사입니다. 검색엔진 회사가 전혀 다른 분야로 보이는 OS 개발에 뛰어 든 것에 대해서 대다수는 의아할 것입니다. 구글이 정성들여 만든 서비스에 접근하려면 브라우저(크롬)가 있어야 하고, 브라우저를 기동하는 OS가 필요하다는 것이 구글의 생각이었을 것입니다.

자신들이 통제하지 못하는 OS와 브라우저를 거쳐 서비스에 접근 되는 것이 장벽이라 생각 했겠지요. 구글은 이미 성숙해 버린, 그리고 비용이 많이 소요되고, ROI가 보장되지 않는 PC OS를 만들기 보다는 스마트폰 OS에 진출 했지요.

앞에 열거한 PC OS 진출의 약점이 작으면서도 PC보다 보급률이 몇배나 많은 , 24시간 사람들과 함께 하는 장점을 가진 스마트폰 OS에 말 입니다.

안드로이드의 강점은 아이폰과 쌍벽을 이룰만한 기능과 성능을 가지면서, 공개되어 있어 모든 휴대폰 개발 업체에서 탑재할 수 있고, 이는 아이폰에 필적할 만한 하드웨어가 등장할 수 있는 환경이 조성 되었다는 것입니다.

IBM의 메인프레임을 쓰러트린 MS의 DOS 처럼 말이죠.



마이크로소프트는 '윈도우즈 폰 7' 이라는 스마트폰 OS를 하반기에 정식 릴리즈 할 것이라 합니다. 20여년의 개인용 컴퓨터 OS의 왕좌에 굴림하고 있으면서도 윈도우즈 CE 또는 윈도우즈 모바일은 소비자들에게 그다지 감동을 못주는 물건이었습니다. 이는 '윈도우즌 폰 7'에 대해서 사람들이 별로 관심을 보이지 않게 하는 MS의 커리어 입니다.

그러나, MS에게도 기회는 있습니다. 통합된 개발환경이 그것이지요, 자바가 "Write once, run anywhere" (WORA) 라는 캐치 프레이즈를 가지고 있는 것처럼, 닷넷 개발 플랫폼에서 개발되어지는 것은 run anywhere 라고 말할 수 있을 만큼 MS 진영 개발자가 쉽게 참여 할 수 있다는 것이 장점 입니다. 또한 광범위하게 퍼져 있는  윈도우 OS와 가장 궁합이 잘 맞는다가 장점이겟죠.  하지만 이것으로는 약간 부족합니다. 이제까지 하드웨어가 따라주지 못하긴 했지만 OS 황제의 장점에도 불구하고, 팜(Palm) 등의 기기에 밀려 왔던 것이 MS이니까요.




2. 누가 위나라의 조조가 될 것인가?

결론부터 말하자면 위(안드로이드),  촉(윈도우즈 폰), 오(아이폰)이 될 것이라 조심스럽게 점쳐 봅니다.

거대 동맹군(삼성, 엘지, 모토로라 등등의 Manufacture Alience)을 가지고 있는 구글, 

황제의 후손이고 정통성이 있긴 하지만 뭔가 그럴듯한 성과를 내지 못하고 영토하나를 차지하는 마이크로소프트,
 
하남(河南)에 막강한 수군(사용자 경험)을 가지고 철옹성을 쌓고 있는 애플이 위,촉,오 삼분지 천하를 이루게 될 것이라 예상합니다.


애플은 분명히 현재 최고의 스마트폰 강자 입니다. 아이폰과 관련된 모든 것을 통제하는 것이 애플이지요,

하지만, 통제되는 세상은 통제할 수 있는 만큼만 성장합니다.

시장초기에는 뛰어난 리더에 의해서 역량을 한곳에 집중하는 것이 성과를 이룩하지만 시장이 커지면 네트워크화 되는 것이 진리이죠.  
이것이 바로 애플의 강점이자 장점입니다.


스마트폰이 어플리케이션에 의존하는 성격이 있지만, 현재의 정보기기는 연결되어 있지 않으면 깡통이라는 것을 누구라도 알고 있습니다. 인터넷이 연결되어 있지 않은 컴퓨터는 타자기 또는 동영상 재생기 일 뿐입니다. 그 연결 되어 있음을 가장 잘 지원할 수 있는 진영이 누구냐, 그 주인공은 구글 안드로이드폰이 될 것입니다.

구글이 그것에 집중 하고 있다는 것을 알 수 있는 것이 바로 안드로이드 폰 2.0 의 가장 중요 기능인 Accounts, Contacts and Sync 입니다.




안드로이드 2.0 비디오와 안드로이드 개발자 센터


외국의 Web 2.0 소셜이라는 서비스들은 회원을 가입할때 , 지메일 또는 페이스북에 친구로 설정되어 있는 사람들에게 가입 사실을 알리고, 초대 하기를 유도합니다. 무심코 '다음' 버튼을 클릭하면 모든 친구들에게 메일이 발송됩니다. 바이러스가 전파 되듯이 말이죠.

안드로이드폰은 개통시에 구글 메일 계정을 등록하기를 요구합니다.

이 계정을 이용하여 안드로이드폰 2.0의 Accounts, Contacts and Sync가 제대로 작동되는 것이지요.

모든 연결은 구글을 통하여 라는 '팍스 구글리카'의 시작이자 완성입니다.


이제 별도의 개인정보관리시스템(PIMS) 어플리케이션이 필요없게 됩니다. 친구들이 자신의 정보를 업데이트 하기만 한다면 , 주소, 전화번호, 상태 변경은  구글 Account를 이용해서 Contact 하고 Sync 될 테니깐 말이죠.


전세계의 데이터 센터와 연동되는 안드로이드는 팍스 구글리카를 완성하는 무시무시한 물건이 되리라 생각합니다.





저작자 표시
top

POST : 아키텍처

Microsoft Application Architecture Guide, 2nd Edition V2


Microsoft Application Architecture Guide, 2nd Edition 의 V2가 2009.11.20일 퍼블리쉬 되었습니다. V1 퍼블리쉬 포스팅 소식 이후  약1년만에 버전업이며,  몇개월 지났는데 이제야 알아 차렸네요.


V1에서 380페이지 분량 이었던 것이 V2에서는 560페이지로 늘었습니다.

소프트웨어 아키텍처와 디자인 핵심 개념의 총정리라고 할 수 있으며, 어떤 연관된 개념과 관련 서적들이 있는지 101이라고 할 수 있습니다.  


PDF 파일이며 아래 MSDN 에서 무료로 다운로드 받을 수 있습니다.

MSDN 다운로드 페이지로 가기

그럼 즐독하세요.



아키텍처 관련 서적 :

Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software.
Addison-Wesley, 2004.
Nilsson, Jimmy. Applying Domain-Driven Design and Patterns: With Examples in C#
and NET. Addison-Wesley, 2006.

그외 꽤 많다.
저작자 표시
top

POST : Human Information Interaction

포스퀘어(foursquare) - 본격 모바일 서비스의 블러드 엣지

아이폰(iphone)의 도입을 시작으로 대한민국에는 모바일 빅뱅이 진행 중입니다. 포스퀘어(foursquare)는 모바일 서비스란 어떤 것인가를 보여주는 예시 입니다.

모바일 기기는
1. 어디든 함께한다. Every Where.
2. 언제든 . Any Time.
그리고, 3. PC 보다 3배가 많은 보급율이라는 장점을 가지고 있습니다.

작은 기기의 특성상
1. 잘 보이고, 터치하기 쉬운 큰 아이콘.
2. 컨텐트 크기의 제약을 가지고 있다. (트위터의 140자 제약은 미국의 SMS 용량 크리고 정해 진 것.)

이미 반영 되어 있는 '장소' 요소.
정보검색이라는 컨텍스트(context)는 여러개의 요소로 구성되어 집니다.
언제, 어디서, 무엇을,왜, 이 요소들의 한가지 의미 변화는 최종 원하는 결과를 변경 시킨다. GPS를 통한 모바일 기기는 '어디서'라는 '장소'요소가 반영 되어 있으며, '언제'라는 요소도 일정부분 포함하고 있다. 정보 검색에서 사용자가 입력해야 하는 요소가 PC 검색 보다 훨씬 줄어 들게 됩니다.

자! 모바일 환경은 위의 특성을 가지고 있고, 매우 큰 시장(market)이 될 것인데, 도대체 그것이 어떤 서비스 일까?

그 서비스의 예시가 바로 포스퀘어(foursquare.com) 입니다.
1. 위치, 인포메이션, SNS, 엔터테인먼트(포인트를 얻음으로써 '시장 mayor'이 되는 것은 game적 요소이며, 중독적이며, 지속적인 커뮤니케이션을 유발 ) 요소가 조화를 이룬 서비스 입니다.


포스퀘어에 대한 분석 및 소개는 이미 많은 포스트들이 있어 하나를 보태지 않고 , 몇개를 소개 합니다.

포스퀘어(foursquare) 지금까지의 모든 것 : 32장의 슬라이드쉐어 프리젠테이션 파일을 볼수 있습니다.
포스퀘어(foursquare), 가상 공간의 땅따먹기?! : 아이폰 앱스의 캡처 화면으로 설명합니다.
포스퀘어, 브라보 TV 협업. 새로운 모델을 만든다. : 벌써 이종교배 에 들어가고 있는 포스퀘어.
위치기반 땅따먹기 게임, 포스퀘어(foursqare)와 고왈라(gowalla) : 또 다른 서비스 고왈라와의 비교 테이블.


매일 매일이 놀랍고 흥미로운 시대에 살고 있음을 느낍니다.

저작자 표시
top

POST : 교양서

구글드 Googled - 대한민국이 알지 못하는 세상


구글드 Googled - 부제: 우리가 알던 세상의 종말  , 벌써 이책에 대한 수많은 블로그 포스트가 올라와 있군요. 확실히 구글이란 혁명적인 성공으로 무한한 호기심을 자극하는 회사임이 분명하네요.

뉴요커 수석 칼럼니스트 켄 올레타가 3년여에 걸쳐 구글의 핵심인사, 관련업계 인사들과 인터뷰 하고, 자료를 수집하여 구글의 시작과 현재, 그리고 인터넷과 미디어의 지형도를 그림 책 입니다.

구글의 등장과 함께 미디어 세상은 우리의 상상이상의 혁명을 맞았음을 이 책을 통해 느낄 수 있었습니다. 

세상에는 변화를 만들어 내는 사람들과 거기에 올라타는 사람, 그리고 휩쓸려서 사라지는 사람으로 나눌 수 있으며, 기존 미디어는 휩쓸려서 사라지는 사람의 분류에 속하고 있겠지요.


엔지니어에 의한 혁신의 회사 구글, 순진?(저자 자신도 구글을 순진 한건지 악마(Evil)인지 명확하게 정의하지 못하는 상황) 함이 혁명을 만들어내는 회사. 엔지니어에 의한 회사라는 것은 구글과 MS가 동일한 DNA를 가졌다고 말 할 수 있습니다.

MS를 '악'으로 규정한다면, 혁명적이고 순진했던 회사가 성공과 동시에 요구되는 '관료주의'를 어떻게 조화 시키느냐 이며, 이는 성공한 회사가 끊임 없이 극복해야 할 과제 입니다.

구글의 목표 라고 불리워 지는 '전 세계의 정보를 조직하여 누구나 접속해서 유용하게 사용할 수 있도록 한다.'는 모든 것이 변하는 세상에서 변하지 않는 유일한 진리 일 것입니다.

구글은 광고 회사이며, 최대의 강점은 전세계의 거대한 데이터 센터에 축적되고 있는 개인 행동 정보, 그리고 개인용 PC의 3배에 달하는 모바일 OS를 통한 모바일 세상의 진출. 구글은 과연 무서운 모습으로 세상의 모든 것을 추적하는 시스템으로 완성 되어 가고 있습니다.


구글의 놀라운 점은 기존의 세상과 부딪히며 불가능할 것 같은 것들을 기술을 통하여 헤쳐 나가며, 그들이 옳았음을 증명해 나가고 있는 것입니다.


불행하게도 대한민국의 인터넷은 '네이버' 와 '다음' 만이 존재하며, 인터넷 세상을 망치고 있다고 푸념하고 있는 것이 현실입니다.  이는 '구글' 이 세상을 망치고 있다고 푸념만 하다가 심각한 위기를 맞고 있는 기존 미디어의 상황과 비슷하며, 대한민국은 더욱 심각한 위기임을 느낄수 있습니다.

푸념만 하다가 사라지는 운명을 택할 것인가. 새로운 파도에 올라 탈 것인가. 이책이 시종일관 구글의 혁신적인 모습을 보여 주고 있음에도 불구하고, 구글이 난공불락의 성이 아니다 라는 것을 강변하고 있는 듯합니다.

네이버와 다음도 난공불락이 아님을 확신 시켜준 책입니다.


PS:
대한 민국에서의 기존 미디어의 위기를 잘 기술한 책 으로 '김동률 : 신문경영론' 을 함께 읽기를 추천합니다.
구글이 단순한 웹서비스가 아닌 '미디어' 임을 이해 시켜 주는 '마샬 맥루한 : 미디어의 이해' 를 추천합니다.
구글드와 같이 인텔의 혁명적인 성공을 파헤치는 책으로 '인사이드 인텔'를 추천합니다. (구글드 보다는 약간 떨어지는 듯)




구글드 Googled - 10점
켄 올레타 지음, 김우열 옮김/타임비즈
저작자 표시
top

tags

googled, 구글드, 인텔 인사이드

posted at

2010/03/22 09:53


POST : Human Information Interaction

아이폰, 안드로이드폰 은 모바일 미디어 빅뱅이다.

아이폰 과 안드로이드 폰은 모바일 미디어 빅뱅의 아이콘입니다.

2000년 초반의 인터넷 혁명이후 10년이 지난 지금, 우리는 모바일 기기 유비쿼터스 빅뱅의 시작점에 서 있습니다.

이 혁명의 시기는 "우리를" 초조하게 한다, 가슴 뛰게 한다.
저작자 표시
top

tags

모바일 미디어 빅뱅, 모바일 빅뱅, 아이폰

posted at

2010/03/01 21:26


CONTENTS

닷넷프레임워크 딥 다이브 - .NET Framework Deep Dive
BLOG main image
닷넷 프레임워크 .NET FRAMEWORK, C# .NET 과 프레임워크 디자인, 아키텍처 설계, ASP.NET 개발 - 인간과 정보의 상호작용에 통찰력을 얻기 위한 블로그 입니다. -성공률이 100%인 프로젝트가 있다고? 거기에는 혁신이 0%일 것이다. ,Google CEO 에릭슈미트
RSS 2.0
공지
아카이브
최근 글 최근 댓글 최근 트랙백
카테고리 태그 구름사이트 링크