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

API, 라이브러리, SDK, 프레임워크, 플랫폼


 용 어

 개 념

API

 Application Program Interface로 인터페이스를 의미하며, 서로 다른 목적으로 개발된 software의 특정 기능을 호출하기 위해서 software나 library 기능을 사용할 수 있도록 기능 호출을 하도록 하는 것이다.

대표적인 예로 MS runtime API, java API, google API, facebook API 등이 있다.

SDK

 Android SDK, iOS SDK, Windows SDK, 특정 제품의 SDK 등의 서비스를 제공하기 위한 것이며, 모두 대상이 되는 운영체제나 서비스 기반이 있다.

Library 

필요한 특정 모듈을 호출하여 사용하는 개념이다. 

대표적인 예로 Rad Studio 컨포넌트 라이브러리 등이 있다. 

Framework 

 프레임워크는 소프트웨어를 개발할 때 사용할 수 있는 인터페이스 기반 패키지로 말할 수 있다. 인터페이스란 개발의 basement가 되는 구조와 코드/알고리즘/암호화/데이터베이스 연동 방식의 집합체라고 할 수 있다.

대표적인 프레임워크는 마이크로소프트 사의 MFC, 닷넷(.NET) 프레임워크와 자바의 스프링, 전자정부, 앵귤라 프레임워크, TMSSoftware TMS Package 등이 있다.

 Platform

 특정 장치나 시스템, 서비스 등에서 이를 구성하는 기반이 되는 하드웨어나 소프트웨어 환경, 더 크게는 틀이나 골결을 지칭한다. 또, 서드파티에 의해 개발된 것이 사용자들에 의해 사용/유통될 수 있는 환경/기술 등을 의미한다.

대표적인 플랫폼으로는 Windows, MacOS, Linux와 같은 운영체제, 모바일 안드로이드나 iOS, 엠바카데로 사의 파이어몽키(FireMonkey), 인터넷 포털 서비스의 소셜네트워크 서비스 또는 카카오톡, 라인 등이 있다.

 Docker

 


컴포넌트란 인터페이스를 기본적으로 구현하고 응용 프로그램간의 개체 공유를 가능하게 하는 독립적인 기능을 수행하는 소프트웨어 모듈이다.

컴포넌트(Component, VCL)는 CBD(Component based Development) 개발방법론. 

기업들은 쇼핑바구니, 사용자 인증, 검색엔진, 카탈로그 등 상업적으로 이용 가능한 컴포넌트를 결합하여 그들의 전자상거래 응용프로그램을 개발하는 컴포넌트 기반 개발을 사용한다.



Posted by SB패밀리

댓글을 달아 주세요

 

[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패밀리

댓글을 달아 주세요