천객만래 [千客萬來] (It has an interminable succession of visitors)

 

[IT/용어] MashUp (매시업)

 

 

 

매시업은 원래 여러 노래들의 견본 음악을 조합하는 것을 의미했다.

미국의 검색 엔진 회사인 구글사가 제공하는 구글 어스는 매시업 생성을 위해 가장 자주 이용되는 도구 중 하나이다. 이 소프트웨어 서비스는 구글 어스가 제공하는 지표면에 대한 상세한 위성 이미지들과 사용자들이 제공하는 인구밀도, 날씨, 식당 위치 및 그밖의 정보를 쉽게 결합할 수 있도록 해준다. 인터넷 문화에 매시업이 도입되면서 야후사, IBM사, 마이크로소프트사 같은 회사들도 사용자들이 매시업 소프트웨어를 더 쉽게 사용할 수 있도록 노력을 기울여왔다.

 

매시업이란 지도, 음악, 사진, 비디오, 애니메이션 같은 다양한 데이터 형식이나 소스들을 하나의 디지털 파일로 조합하는 방식을 말한다.(브리태니커)

 

요즘 IT에서 뜨고 있는 매시업이란 신종 웹 어플리케이션을 말한다. 대화형 어플리케이션의 한 장르, 외부 데이터 소스에서 가져온 컨텐츠를  이용하여 완전히 새롭고 혁신적인 서비스를 만들어 내는 기술이라고 한다. 비공식적으로는 웹 2.0이라고 하는 2세대 웹 어플리케이션을 의미하기도 한다.

 

구글 지도와 부동산 정보 사이트인 크레이그 리스트(www.craigslist.org)를 결합시킨 '하우징맵(www.housingmaps.com)'사이트로, 지도정보에서 특정 지역을 선택하면 지역의 부동산 매물정보를 보여주는 서비스를 제공하고 있다. 하우징맵은 폴 레이드매처라는 사람이 구글의 지도 API를 해킹하여 만든 것으로 당시 구글 지도를 활용한 확장성과 가능성을 본 구글은 폴 레이드매처를 고소하기 보다는 구글 직원으로 채용하였고, 그 때부터 공개적으로 구글의 지도 API를 제공하기 시작하였다.

 

매시업의 장점은 기존의 자원을 활용하여 만들기 때문에 새로운 서비스를 구축하기 위하여 투여되는 비용이 매우 적다는 점이다.

약점은 다른 서비스에 종속되어 있어 1차 자원이 되는 서비스가 중단될 때 매시업 역시 중단되며, 1차 자원의 제공형태가 변경될 때 그에 맞춰 서비스를 변경할 가능성이 생겨 관리상의 어려움이 있다는 것이다.

 

Posted by SB패밀리
[개발/API] 웹에 있는 파일크기 알아오기


DWORD GetHttpFileSize(LPCTSTR lpszUrl)
{
HINTERNET hInternet,hURL;
TCHAR buffer[32];
DWORD dwSize=32,dwFileSize;

// 인터넷 연결
hInternet=InternetOpen(TEXT(""), INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0);
if (hInternet == NULL) return -1; // 인터넷 연결이 되지 않았으면 에러 리턴

// URL 오픈
hURL=InternetOpenUrl(hInternet, lpszUrl, NULL, 0, INTERNET_FLAG_TRANSFER_BINARY, 0);

// 오픈에 실패했을 경우 에러 리턴
if (hURL == NULL) { InternetCloseHandle(hInternet); return -1; }

// 핵심 함수인 HttpQueryInfo
HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH, buffer, &dwSize, 0);
dwFileSize = _ttoi(buffer);

InternetCloseHandle(hInternet);
InternetCloseHandle(hURL);

return dwFileSize;
}


Posted by SB패밀리

 출처 : 델마당 http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?db=dmdqa&mode=read&num=22438&page=7&backdepth=1

 

안녕하세요? 조각달 황용호입니다.

결과적으로는 같겠지만 파일을 복사하고 복사할 파일이 사용 중일 때

리붓 후 실제 복사를 수행해 주는 API가 있습니다.

SetupInstallFile또는 SetupInstallFileEx라는 API입니다.

주로 윈도우 파일 설치를 담당하는 API군인데 SetupAPI.dll이라는 DLL이

제공해 주는 API입니다. 인스톨쉴드도 이 API를 사용합니다.

그런데 비주얼 C++은 이 API를 지원하는데 델파이는 SetyupAPI DLL은

전혀 지원을 하지 않더군요. JEDI 프로젝트에서는 진행하고 있을지

모르겠습니다만...

여튼 그래서 이 SetupInstallFile(Ex)를 사용하시기 위해서는

먼저 해당 API를 임포트하셔야 합니다.

다음은 제가 간이로 임포트 해놓은 유닛입니다.

FileCopyLater함수에 복사할 파일의 source와 destination을 지정해 주시면

파일이 사용중이 아닐 때는 그냥 복사하고 사용중일 때는 리부팅된 뒤에

복사되도록 해 주게 됩니다.

SetupInstallFileEx함수는 제가 구현해 놓은 기능 말고도 여러가지

서비스를 제공하며 또한 각종 상황을 콜백함수로 보내줄 수 있으므로

편리한 함수입니다. 자세한 내용은 MSDN이나 마이크로소프트 홈페이지에서

찾아 보시기 바랍니다.

그럼 이만...

unit LateCopy;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

const
 SP_COPY_DELETESOURCE        = $0000001;
 SP_COPY_REPLACEONLY         = $0000002;
 SP_COPY_NEWER               = $0000004;
 SP_COPY_NEWER_OR_SAME       = SP_COPY_NEWER;
 SP_COPY_NOOVERWRITE         = $0000008;
 SP_COPY_NODECOMP            = $0000010;
 SP_COPY_LANGUAGEAWARE       = $0000020;
 SP_COPY_SOURCE_ABSOLUTE     = $0000040;
 SP_COPY_SOURCEPATH_ABSOLUTE = $0000080;
 SP_COPY_IN_USE_NEEDS_REBOOT = $0000100;
 SP_COPY_FORCE_IN_USE        = $0000200;
 SP_COPY_NOSKIP              = $0000400;
 SP_FLAG_CABINETCONTINUATION = $0000800;
 SP_COPY_FORCE_NOOVERWRITE   = $0001000;
 SP_COPY_FORCE_NEWER         = $0002000;
 SP_COPY_WARNIFSKIP          = $0004000;
 SP_COPY_NOBROWSE            = $0008000;
 SP_COPY_NEWER_ONLY          = $0010000;

type
 PSP_FILE_CALLBACK = function(pContext: pointer; nNotification: UINT;
                                      nParam1, nParam2: UINT): UINT; stdcall;
 pInfContext = ^TInfContext;
 TInfContext = record
   Inc: THandle;
   CurrentInf: THandle;
   Section: UINT;
   Line: UINT;
 end;

 function FileCopyLater(strSrc, strDst: string): Boolean;
 function SetupInstallFileEx(InfHandle: THandle;
                             InfContext: pInfContext;
                             SourceFile: PChar;
                             SourcePathRoot: PChar;
                             DestinationName: PChar;
                             CopyStyle: DWORD;
                             CopyMsgHandler: PSP_FILE_CALLBACK;
                             Context: Pointer;
                             var FileWasInUse: Boolean): boolean; stdcall;
                          
implementation

function SetupInstallFileEx; external 'setupapi.dll'
                                               name 'SetupInstallFileExA';

function FileCopyLater(strSrc, strDst: string): Boolean;
begin
 SetupInstallFileEx(0, nil, PChar(strSrc), nil, PChar(strDst),
                    SP_COPY_SOURCE_ABSOLUTE, nil, nil, Result);
end;

end.

 

# 2007-04-05

보라커피님이 알려주셔서 파일을 첨부합니다.

Posted by SB패밀리