KR20170068737A - 오픈 api를 활용한 증권 서비스 제공시스템 및 그 방법 - Google Patents
오픈 api를 활용한 증권 서비스 제공시스템 및 그 방법 Download PDFInfo
- Publication number
- KR20170068737A KR20170068737A KR1020150175563A KR20150175563A KR20170068737A KR 20170068737 A KR20170068737 A KR 20170068737A KR 1020150175563 A KR1020150175563 A KR 1020150175563A KR 20150175563 A KR20150175563 A KR 20150175563A KR 20170068737 A KR20170068737 A KR 20170068737A
- Authority
- KR
- South Korea
- Prior art keywords
- api
- information
- user terminal
- application
- service
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 description 2
- 102100021677 Baculoviral IAP repeat-containing protein 2 Human genes 0.000 description 2
- 102100021662 Baculoviral IAP repeat-containing protein 3 Human genes 0.000 description 2
- 102100037024 E3 ubiquitin-protein ligase XIAP Human genes 0.000 description 2
- 101000896157 Homo sapiens Baculoviral IAP repeat-containing protein 2 Proteins 0.000 description 2
- 101000896224 Homo sapiens Baculoviral IAP repeat-containing protein 3 Proteins 0.000 description 2
- 101000804865 Homo sapiens E3 ubiquitin-protein ligase XIAP Proteins 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Stored Programmes (AREA)
Abstract
오픈 API를 활용한 증권 서비스 제공시스템 및 그 방법이 개시된다. 본 발명의 일 측면에 따른 증권 서비스 제공시스템은 상기 증권사의 HTS(Home Trading System) 또는 MTS(Mobile Trading System)에서 제공되는 서비스들 전부 또는 일부에 대응되는 적어도 하나의 API에 대한 정보를 포함하는 애플리케이션이 사용자 단말이 다운로드할 수 있도록 하는 다운로드 시스템에 업로드되고 상기 애플리케이션이 사용자 단말에 의해 설치되면, 상기 사용자 단말에 상응하는 사용자 정보와 상기 애플리케이션에 대한 정보가 대응되도록 저장된 컨트롤 정보를 생성하여 유지하는 컨트롤 모듈 및 상기 사용자 단말에 의해 소정의 API가 호출된 경우, 상기 컨트롤 정보에 기초하여 상기 사용자 단말이 상기 호출된 API를 이용할 수 있는 단말인지를 판단하기 위한 판단모듈 및 상기 판단모듈의 판단결과에 기초하여 선택적으로 상기 호출된 API에 상응하는 서비스를 상기 사용자 단말로 제공하기 위한 제어모듈을 포함한다.
Description
본 발명은 오픈 API(Application Programming Interface)를 활용한 증권 서비스 제공시스템 및 그 방법에 관한 것이다. 보다 상세하게는 투자를 수행하는 사용자가 오픈 API를 통해 자동화된 트레이딩을 수행할 수 있도록 하면서도 서비스 제공 측에서 선택적으로 호출된 API에 상응하는 서비스를 제공할 수 있는 시스템 및 그 방법에 관한 것이다.
종래에 전통적인 투자 방식은 투자에 필요한 정보를 사용자에게 제공하고 사용자로부터 출력되는 주문을 중개하는 증권사 시스템이 사용자에게 제공하는 프로그램(예컨대, HTS, MTS 등)이 제공하는 서비스 또는 기능을 사용자는 수동적으로 이용하는 방식이었다.
하지만 이처럼 수동적으로 미리 정의된 서비스 또는 기능만을 이용하는 것에 만족하지 못하는 사용자(예컨대, 개인 투자자 또는 기관(예컨대, 자문사 등))를 위해 증권사 시스템은 사용자에게 API를 제공하여 사용자가 자신이 원하는 트레이딩 알고리즘을 설계할 수 있도록 하기도 한다. 이처럼 상기 증권사 시스템의 기능을 타 주체가 이용할 수 있도록 제공되는 API를 오픈 API라 한다.
이러한 오픈 API를 이용하여 사용자가 정의하는 동작을 수행하는 일 예로는 한국등록특허 10-0605664호 "제작 프로그램을 이용한 증권정보 표시 시스템 및 방법과 이를 이용한 증권 거래 방법"에 개시된 바 있다.
이러한 종래의 기술은 사용자가 증권사 시스템에 의해 제공되는 오픈 API를 이용하여 자유롭게 자신이 원하는 응용 프로그램을 코딩하여 이용할 수 있는 방식이다.
일반적으로 사용자는 오픈된 API 즉 서비스 측(예컨대, 증권사)에서 제공하는 API를 이용해 자신이 원하는 동작을 수행할 수 있는 응용 프로그램 또는 문서 등을 생성할 수 있다. 그리고 상기 응용 프로그램이나 문서가 사용자 단말에서 실행되면, 상기 응용 프로그램 또는 문서는 상기 API를 호출하게 되며, 상기 API가 호출되면 상기 응용 프로그램은 증권사 시스템으로부터 상기 API에서 정의하는 정보(예컨대, 시세 등)를 수신하거나, 상기 API에서 정의하는 정보(예컨대, 주문 등)를 상기 증권사 시스템으로 출력할 수 있게 된다. 즉, API에 상응하는 서비스를 제공받게 된다.
하지만 이러한 종래의 방식의 문제점은 증권사 시스템이 제어할 수 없는 사용자 단말에서 상기 응용 프로그램이 정의되어 해당 API를 이용하는 서비스가 악용될 수 있다는 점, API가 한 번 공개되면 검증되지 않은 사용자 아무나에 의해 API가 호출될 수 있다는 문제점 등이 있다. 즉, 서비스 제공 측에서도 오픈 API를 허용하된 특정할 수 있는 사용자에 의해서만 해당 API를 이용할 수 있도록 하는 니즈가 필요할 수 있다. 또한 사용자에 의해 API를 활용한 응용 프로그램 또는 문서가 무제한으로 복제되거나 타 사용자에게 전달되는 경우, 서비스 제공측에서는 너무 많은 API 호출을 처리하여야 하므로 API 의 활용에 있어서도 어느 정도의 제어가 가능한 기술적 사상이 요구되고 있다.
따라서 본 발명은 사용자에게 API를 제공하여 사용자가 상기 API를 이용하여 자신이 원하는 방식의 트레이딩 또는 트레이딩을 위한 기능 및/또는 동작을 수행할 수 있도록 하여 사용자의 트레이딩의 자유도를 높임과 동시에 서비스가 제공하는 서비스 제공측에서는 소정의 앱(애플리케이션)을 사용자 단말이 다운로드 하도록 하고 다운로드된 앱을 통해 사용자 단말에서 제한적으로 API를 활용할 수 있도록 하는 기술적 사상을 제공하는 것이다.
본 발명의 일 측면에 따른 증권사가 제공하는 증권 서비스 제공시스템은 상기 증권사의 HTS(Home Trading System) 또는 MTS(Mobile Trading System)에서 제공되는 서비스들 전부 또는 일부에 대응되는 적어도 하나의 API에 대한 정보를 포함하는 애플리케이션이 사용자 단말이 다운로드할 수 있도록 하는 다운로드 시스템에 업로드되고 상기 애플리케이션이 사용자 단말에 의해 설치되면, 상기 사용자 단말에 상응하는 사용자 정보와 상기 애플리케이션에 대한 정보가 대응되도록 저장된 컨트롤 정보를 생성하여 유지하는 컨트롤 모듈 및 상기 사용자 단말에 의해 소정의 API가 호출된 경우, 상기 컨트롤 정보에 기초하여 상기 사용자 단말이 상기 호출된 API를 이용할 수 있는 단말인지를 판단하기 위한 판단모듈 및 상기 판단모듈의 판단결과에 기초하여 선택적으로 상기 호출된 API에 상응하는 서비스를 상기 사용자 단말로 제공하기 위한 제어모듈을 포함한다.
상기 오픈 API를 활용한 증권 서비스 제공시스템은 상기 애플리케이션을 생성하기 위한 애플리케이션 생성모듈을 더 포함하며, 상기 애플리케이션 생성모듈은 서로 다른 종류의 API에 대한 정보를 포함하는 복수의 애플리케이션을 생성하는 것을 특징으로 할 수 있다.
상기 제어모듈은 상기 사용자 단말에서 상기 애플리케이션이 활성화가 되어 있는지를 판단하고, 상기 애플리케이션이 활성화되어 있어야 상기 호출된 API에 상응하는 서비스를 제공하는 것을 특징으로 할 수 있다.
상기 적어도 하나의 API에 대한 정보는 상기 적어도 하나의 API 각각에 상응하는 코드 세트에 대한 정보를 포함하며, 상기 코드 세트에 포함된 오브젝트 식별정보는 상기 HTS 또는 상기 MTS 에서 사용되는 서비스 식별정보와 동일한 식별정보를 포함하는 것을 특징으로 할 수 있다.
상기 컨트롤 모듈은 상기 사용자 단말로부터 타단말에 대한 정보를 수신하고, 수신에 응답하여 상기 타단말에 대한 정보를 상기 컨트롤 정보에 포함시켜 저장하여 상기 타단말이 상기 애플리케이션에 상응하는 적어도 하나의 API 중 적어도 일부를 호출하는 경우 호출한 API에 상응하는 서비스를 제공받을 수 있는 단말로 설정되도록 하는 것을 특징으로 할 수 있다.
상기 적어도 하나의 API는 시세 제공 API, 주문 API, 계좌조회 API, 또는 보조지표 API를 포함하는 것을 특징으로 할 수 있다.
상기 기술적 과제를 해결하기 위한 증권사가 제공하는 증권 서비스 제공방법은 오픈 API를 활용한 증권 서비스 제공시스템이 상기 증권사의 HTS(Home Trading System) 또는 MTS(Mobile Trading System)에서 제공되는 서비스들 전부 또는 일부에 대응되는 적어도 하나의 API에 대한 정보를 포함하는 애플리케이션이 사용자 단말이 다운로드할 수 있도록 하는 다운로드 시스템에 업로드되고 상기 애플리케이션이 사용자 단말에 의해 설치되면, 상기 사용자 단말에 상응하는 사용자 정보와 상기 애플리케이션에 대한 정보가 대응되도록 저장된 컨트롤 정보를 생성하여 유지하는 단계, 상기 오픈 API를 활용한 증권 서비스 제공시스템이 상기 사용자 단말에 의해 소정의 API가 호출된 경우, 상기 컨트롤 정보에 기초하여 상기 사용자 단말이 호출된 API를 이용할 수 있는 단말인지를 판단하는 단계, 및 판단결과에 기초하여 상기 호출된 API에 상응하는 서비스를 상기 사용자 단말로 제공하는 단계를 포함한다.
상기 오픈 API를 활용한 증권 서비스 제공방법은 상기 오픈 API를 활용한 증권 서비스 제공시스템이 상기 애플리케이션을 생성하는 단계를 더 포함하며, 상기 오픈 API를 활용한 증권 서비스 제공시스템은 서로 다른 종류의 API에 대한 정보를 포함하는 복수의 애플리케이션들을 생성하고, 생성된 복수의 애플리케이션들이 상기 다운로드 시스템에 업로드되는 것을 특징으로 할 수 있다.
상기 오픈 API를 활용한 증권 서비스 제공방법은 상기 오픈 API를 활용한 증권 서비스 제공시스템이 상기 사용자 단말에서 상기 애플리케이션이 활성화가 되어 있는지를 판단하는 단계를 더 포함하고, 상기 판단결과에 기초하여 상기 호출된 API에 상응하는 서비스를 상기 사용자 단말로 제공하는 단계는 상기 애플리케이션이 활성화되어 있어야 상기 호출된 API에 상응하는 서비스를 제공하는 것을 특징으로 할 수 있다.
상기 적어도 하나의 API에 대한 정보는 상기 적어도 하나의 API 각각에 상응하는 코드 세트에 대한 정보를 포함하며, 상기 코드 세트에 포함된 오브젝트 식별정보는 상기 HTS 또는 상기 MTS 에서 사용되는 서비스 식별정보와 동일한 식별정보를 포함하는 것을 특징으로 할 수 있다.
상기 오픈 API를 활용한 증권 서비스 제공방법은 상기 사용자 단말로부터 타단말에 대한 정보를 수신하는 단계 및 수신에 응답하여 상기 타단말에 대한 정보를 상기 컨트롤 정보에 포함시켜 저장하여 상기 타단말이 상기 애플리케이션에 상응하는 적어도 하나의 API 중 적어도 일부를 호출하는 경우 호출한 API에 상응하는 서비스를 제공받을 수 있는 단말로 설정되도록 하는 단계를 더 포함할 수 있다.
상기 오픈 API를 활용한 증권 서비스 제공방법은 위한 프로그램을 기록한 컴퓨터 판독가능한 기록매체에 저장될 수 있다.
본 발명의 기술적 사상에 의하면, 다수의 사용자에게 API를 제공하되 API를 이용하여 증권사가 제공하는 서비스를 이용하고자 하는 사용자는 소정의 애플리케이션을 다운로드 받도록 하고, 이를 통해 오픈 API를 제공하면서도 무제한적인 API호출 및 이를 통한 무제한적인 서비스 제공이 아닌 일정 수준의 제어가 가능할 수 있는 효과가 있다. 즉, 애플리케이션을 다운로드 받은 사용자 단말 또는 사용자에게만 오픈 API를 통한 서비스 이용이 가능하도록 하는 효과가 있다.
또한, 오픈 API를 이용한 응용프로그램 또는 문서가 무제한적으로 복사되어 이용되는 경우, 증권사 측에서는 예측할 수 없을 정도의 많은 트래픽 및 서비스 제공이 수행되어야 하는 문제점이 있는데 이러한 경우에도 애플리케이션을 다운로드 받은 사용자 단말에 의해 요청된 즉, 한정된 타 단말에서 상기 응용프로그램 또는 문서에 포함된 오픈 API가 이용될 수 있도록 하는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 오픈 API를 활용한 증권 서비스 제공방법을 위한 시스템 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시 예에 따른 오픈 API를 활용한 증권 서비스 제공시스템의 개략적인 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시 예에 따라 사용자 단말에 설치되는 애플리케이션의 개략적인 구성을 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 컨트롤 정보의 일 예를 나타내는 도면이다.
도 5는 본 발명의 일 실시 예에 따른 오픈 API의 코드 세트의 일 예를 나타낸다.
도 6 및 도 7은 본 발명의 일 실시 예에 따라 오픈 API가 활용되는 일 예들을 나타내는 도면이다.
도 1은 본 발명의 일 실시예에 따른 오픈 API를 활용한 증권 서비스 제공방법을 위한 시스템 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시 예에 따른 오픈 API를 활용한 증권 서비스 제공시스템의 개략적인 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시 예에 따라 사용자 단말에 설치되는 애플리케이션의 개략적인 구성을 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 컨트롤 정보의 일 예를 나타내는 도면이다.
도 5는 본 발명의 일 실시 예에 따른 오픈 API의 코드 세트의 일 예를 나타낸다.
도 6 및 도 7은 본 발명의 일 실시 예에 따라 오픈 API가 활용되는 일 예들을 나타내는 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 아니 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 오픈 API를 활용한 증권 서비스 제공방법을 위한 시스템 구성을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 기술적 사상에 따른 오픈 API를 활용한 증권 서비스 제공방법을 구현하기 위해서는 오픈 API를 활용한 증권 서비스 제공시스템(이하, '서비스 제공시스템', 100)이 구비될 수 있다.
상기 서비스 제공시스템(100)은 소정의 다운로드 시스템(300)과 통신을 수행할 수 있다. 또한, 상기 서비스 제공시스템(100)은 사용자 단말(200)과 통신을 수행하면서 본 발명의 기술적 사상을 구현할 수 있다.
상기 서비스 제공시스템(100)은 증권사가 제공 및/또는 운용되는 데이터 처리시스템일 수 있다. 또한, 상기 서비스 제공시스템(100)은 상기 사용자 단말(200)에 의해 구현되는 응용프로그램 또는 문서(예컨대, 엑셀 문서 또는 기타 오픈 API를 활용한 코딩이 가능한 문서 등)가 실행되어 상기 서비스 제공시스템(100)의 주체가 오픈한 API가 상기 사용자 단말(200)에 의해 호출되는 경우, 호출된 API에 상응하는 서비스를 상기 사용자 단말(200)로 제공할 수 있다.
상기 응용 프로그램 또는 문서는 사용자가 소정의 프로그래밍 랭귀지(programming language)를 통해 코딩한 소프트웨어 코드 자체 또는 상기 소프트웨어 코드가 컴파일(compile) 등의 후처리 과정을 거친 후에 생성한 프로그램일 수도 있다. 또는 소정의 문서 또는 기타 상용의 다양한 애플리케이션(또는 문서, 웹 문서)이 증권사가 허용하는 API를 호출하는 코드를 포함하거나 연계(예컨대, Dynamic Data Exchange 등)될 수도 있다. 어떠한 경우든 사용자 단말은 증권사에 의해 이용이 허용된 API를 호출하는 소프트웨어(예컨대, 응용프로그램 또는 문서 등)를 실행할 수 있고, 이러한 상기 소프트웨어의 실행에 의해 상기 API가 호출될 수 있다.
그러면 상기 서비스 제공시스템(100)은 상기 API에 상응하는 서비스를 사용자 단말로 제공할 수 있다.
상기 API는 상기 증권사가 사용자들에게 제공하는 HTS(Home Trading System) 및/또는 MTS(Mobile Trading System)에서 사용자에게 제공되는 서비스를 사용자 단말(200)이 이용할 수 있도록 하는 API 일 수 있다. 예컨대, 상기 API는 특정 주식이나 금융상품의 시세를 조회하는 서비스, 증권사로 소정의 주문(예컨대, 매수, 매도, 정정/취소 등)을 출력하는 서비스, 특정 사용자의 계좌를 조회하는 서비스, 또는 다양한 보조지표(예컨대, 추세지표, 모멘텀 지표, 가격지표, 거래량 지표 등)를 확인하는 서비스 등이 상기 API 일 수 있다. 하지만, 이에 국한되지는 않으며 상기 API는 상기 증권사 시스템이 제공하는 다양한 서비스에 상응하기만 하면 어떠한 API도 본 발명의 기술적 사상에 적용될 수 있음은 물론이다.
일 예에 의하면, 상기 증권사는 상기 HTS 또는 MTS에서 제공하는 모든 서비스에 상응하는 API를 오픈할 수도 있다. 또는 이들 중 일부에 대해서만 API를 오픈할 수도 있다.
종래는 API를 오픈하는 경우, 어떠한 사용자도 오픈된 API를 이용하여 응용프로그램(이하, 설명의 편의를 위해 상술한 바와 같은 오픈 API를 이용하는 문서를 포함하는 의미로 정의함)을 생성할 수 있다. 그리고 상기 응용 프로그램이 실행되면 오픈 API에 상응하는 서비스를 상기 오픈 API를 호출한 단말에 제공하게 된다. 하지만 필요에 따라 오픈 API를 통해 허용된 API에 대해서 상응하는 서비스를 제공하면서도 특정의 사용자에게만 해당 오픈 API 의 이용을 허용하고자 할 필요가 존재할 수 있다.
이를 위해 본 발명의 기술적 사상에 의하면, 오픈 API를 이용할 수 있는 사용자 단말(또는 사용자)는 상기 다운로드 시스템(300)을 통해 소정의 애플리케이션을 다운로드받아 설치한 사용자 단말(또는 사용자)로 제한될 수 있다. 즉, 오픈 API를 이용할 수 있는 사용자 또는 사용자 단말을 상기 애플리케이션을 설치한 사용자 단말(200) 또는 사용자로 제한할 수 있다. 따라서 상기 증권사가 오픈한 오픈 API를 알고 있는 사용자가 자신의 단말을 통해 상기 오픈 API를 이용하는 응용 프로그램을 생성하여 실행한다고 하더라도 상기 애플리케이션을 다운로드 받아서 설치하지 않은 경우에는 상기 오픈 API를 이용하지 못하도록 하는 효과가 있다.
또한 상기 애플리케이션을 다운로드 받아서 설치하지 않은 단말에서는 상기 오픈 API에 상응하는 서비스가 제공되지 않으므로, 설령 상기 애플리케이션을 다운로드 받아서 설치한 사용자 단말(200)에 의해 상기 응용 프로그램이 생성되었다고 하더라도, 상기 응용 프로그램이 복제되어 타 단말에서 실행되는 경우에는 상기 서비스가 제공되지 않을 수도 있다. 따라서 오픈 API를 이용하여 생성되는 응용 프로그램이 무제한적으로 복제되어 서비스 제공시스템(100)이 무수히 많은 API 호출을 감당해야 하는 문제점도 해결될 수 있는 효과가 있다.
이를 위해 상기 서비스 제공시스템(100)은 상기 다운로드 시스템(300)과 통신을 수행하여 본 발명의 기술적 사상을 구현할 수도 있다. 예컨대, 상기 서비스 제공시스템(100)은 상기 다운로드 시스템(300)으로부터 어떠한 단말이 애플리케이션을 다운로드 받았는지 여부 또는 설치하였는지 여부 등에 대한 정보를 수신할 수 있다. 구현 예에 따라 상기 서비스 제공시스템(100)이 제공하는 애플리케이션이 복수개일 수 있는데 이러한 경우에는 어떠한 애플리케이션을 다운로드 및/또는 설치하였는지에 대한 정보를 수신할 수도 있다.
상기 애플리케이션은 상기 애플리케이션에 상응하는 API에 대한 정보를 포함할 수 있다. 즉, 소정의 사용자 단말(200)이 상기 애플리케이션을 다운로드 받는 경우, 상기 사용자 단말(200)은 상기 사용자 단말(200)이 다운로드 받은 애플리케이션에 상응하는 API를 이용할 수 있는 단말이 될 수 있다.
상기 API에 대한 정보는 API를 식별할 수 있는 정보만일 수도 있고, API를 정의하기 위한 일련의 코드 세트일 수도 있다. 전자의 경우에 사용자는 상기 애플리케이션과는 별도의 루트(예컨대, 웹 또는 상기 서비스 제공시스템(100)이 별도로 제공하는 정보 등)를 통해 API에 상응하는 코드 세트를 확인할 수 있음은 물론이다. 물론, 후자의 경우에는 상기 애플리케이션에 aPI의 코드세트가 포함되어 있으므로, 애플리케이션에 포함된 코드 세트를 확인함으로써 사용자는 API를 이용할 수 있게 된다.
또한, 상기 애플리케이션에는 본 발명의 기술적 사상에 따른 소정의 실행코드가 포함될 수 있다. 상기 실행코드는 상기 사용자 단말(200)에서 실행될 수 있는 일련의 소프트웨어 코드일 수 있고, 후술할 바와 같이 상기 실행코드는 상기 서비스 제공시스템(100)과 통신을 수행함으로써 본 발명의 기술적 사상을 구현할 수도 있다. 예컨대, 상기 서비스 제공시스템(100)은 상기 실행코드가 상기 사용자 단말(200)에서 실행되고 있어야 호출된 API에 상응하는 서비스를 제공하도록 구현될 수도 있다. 또한, 상기 실행코드를 통해 상기 서비스 제공시스템(100)은 상기 사용자 단말(200)과 관련된 다양한 정보들을 더 수집함으로써 수집된 정보들에 기초하여 적응적으로 상기 사용자 단말(200)에 호출된 API에 상응하는 서비스를 제공할지 여부를 결정할 수 있다. 즉, 단순히 다운로드 시스템(300)을 통한 다운로드 및/또는 설치만으로 사용자 단말(200)이 호출하는 API에 상응하는 서비스의 제공여부를 결정하는 것이 아니라, 다운로드 및/또는 설치 후의 사용환경을 고려하여 서비스의 제공여부를 결정할 수 있게 된다. 물론, 이러한 경우에는 상기 실행코드는 자신이 설치된 사용자 단말(200)의 사용환경(예컨대, 사용자 단말(200)에 설치된 소프트웨어의 종류, 버전, 기타 수집할 수 있도록 허용된 사용자의 개인정보 등)에 대한 정보를 수집하고 이를 상기 서비스 제공시스템(100)에 전송할 수 있음은 물론이다.
상기 다운로드 시스템(300)은 상기 증권사가 자체적으로 운용하는 시스템일 수도 있고, 상용의 다운로드 시스템(예컨대, 구글의 안드로이드 앱스토어 또는 애플의 앱스토어 등)일 수도 있다. 어떠한 경우든 상기 다운로드 시스템(300)은 사용자 단말(200)로 소정의 애플리케이션을 다운로드시킬 수 있는 시스템을 의미할 수 있다.
상기 사용자 단말(200)은 상기 서비스 제공시스템(100) 및/또는 상기 다운로드 시스템(300)과 통신을 수행하여, 본 발명의 기술적 사상을 구현하기 위한 어떠한 데이터 처리장치일 수도 있다. 상기 사용자 단말(200)은 상기 오픈 API를 이용하는 응용 프로그램을 실행할 수 있는 데이터 처리장치일 수 있다. 상기 사용자 단말(200)은 컴퓨터, 모바일 폰, 타블렛 PC 등 구현 예에 제약됨이 없이 상기 서비스 제공시스템(100) 및/또는 상기 다운로드 시스템(300)과 통신을 수행하면서 본 명세서에서 정의되는 기능을 수행할 수 있는 모든 형태의 장치를 포함하는 의미로 정의될 수 있음은 물론이다.
상술한 바와 같은 기능을 수행하기 위한 상기 서비스 제공시스템(100)의 구성은 도 2를 참조하여 구체적으로 설명하도록 한다.
도 2는 본 발명의 일 실시 예에 따른 오픈 API를 활용한 증권 서비스 제공시스템의 개략적인 구성을 나타내는 도면이다.
도 2를 참조하면, 상기 서비스 제공시스템(100)은 제어모듈(110), 컨트롤 모듈(120), 및 판단모듈(130)을 포함한다. 상기 서비스 제공시스템(100)은 애플리케이션 생성모듈(140)을 더 포함할 수 있다.
상기 서비스 제공시스템(100)은 도 2에서는 설명의 편의를 위해 하나의 물리적 장치로 구현되는 것처럼 도시하였지만, 반드시 하나의 물리적 장치로 구현될 필요는 없다. 일 예에 의하면, 상기 서비스 제공시스템(100)은 복수의 물리적 장치가 서로 유기적으로 결합되어 구현될 수도 있다.
또한 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것을 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
상기 제어모듈(110)은 본 발명의 일 실시예에 따른 서비스 제공시스템(100)에 포함된 다른 구성들(예컨대, 컨트롤 모듈(120), 판단모듈(130), 애플리케이션 생성모듈(140) 등)의 기능 및/또는 리소스를 제어할 수 있다.
상기 컨트롤 모듈(120)은 컨트롤 정보를 생성하고 유지관리할 수 있다.
상기 판단모듈(130)은 상기 컨트롤 정보에 기초하여 사용자 단말(200)에서 소정의 API가 호출되는 경우, 상기 사용자 단말(200)에 호출된 API에 상응하는 서비스를 제공할지 여부를 판단할 수 있다.
상기 제어모듈(110)은 상기 판단모듈(130)의 판단결과에 기초하여 상기 사용자 단말(200)로 호출된 API에 상응하는 서비스를 제공할 수 있다.
상기 애플리케이션 생성모듈(140)은 후술하는 바와 같은 애플리케이션을 생성할 수 있다. 생성된 애플리케이션은 자동으로 또는 상기 서비스 제공시스템(100)의 운영주체에 의해 수동으로 상기 다운로드 시스템(300)으로 업로드될 수 있다.
상기 컨트롤 정보는 어떤 단말(또는 사용자)이 애플리케이션을 다운로드 및/또는 설치하였는지에 대한 정보를 포함할 수 있다. 구현 예에 따라 상기 서비스 제공시스템(100)이 복수의 애플리케이션을 제공하는 경우, 어떤 단말(사용자)이 어떤 애플리케이션을 다운로드 및/또는 설치하였는지에 대한 정보가 포함될 수도 있다. 각각의 애플리케이션은 상응하는 적어도 하나의 API에 대한 정보를 포함할 수 있다.
따라서 소정의 사용자 단말(200)이 특정 애플리케이션을 다운로드 및/또는 설치한 경우, 상기 사용자 단말(200)은 상기 특정 애플리케이션에 포함된 API들을 이용할 수 있는 단말이 될 수 있다. 물론, 상기 다운로드 시스템(300) 및/또는 상기 서비스 제공시스템(100)이 사용자를 인지할 수 있는 경우에는 단말 단위가 아닌 사용자 단위로 해당 사용자가 다운로드 및/또는 설치한 애플리케이션에 따라 이용할 수 있는 API가 상기 컨트롤 정보에 포함되어 유지 및/또는 관리될 수 있다.
예컨대, 상기 컨트롤 모듈(120)이 생성하고 유지 및/또는 관리하는 컨트롤 정보의 일 예는 도 4에 도시된다.
도 4에 도시된 바와 같이 상기 컨트롤 모듈(120)은 사용자 정보 및 상기 사용자 정보에 상응하는 사용자(또는 사용자 단말(200))가 이용할 수 있는 API에 대한 정보(또는 다운로드 및/또는 설치한 애플리케이션에 대한 정보)를 생성하여 유지관리할 수 있다. 도 4에서는 상기 사용자 정보는 사용자가 소정의 애플리케이션을 다운로드 및/또는 설치한 단말의 식별정보(예컨대, MAC 어드레스, OS 시리얼넘버 등)일 수 있지만, 사용자가 로그인 등과 같이 사용자의 식별정보를 알 수 있는 환경에서 상기 애플리케이션을 다운로드 및/또는 설치한 경우에는 사용자 정보는 사용자를 식별할 수 있는 정보(예컨대, 사용자 ID, 메일 주소, 전화번호 등)일 수도 있다. 이러한 사용자 정보는 상기 다운로드 시스템(300)으로부터 상기 서비스 제공시스템(100)으로 제공될 수 있음은 물론이다. 또한, 상기 다운로드 시스템(300)은 사용자 단말(200)이 다운로드 및/또는 설치한 애플리케이션에 대한 정보를 상기 서비스 제공시스템(100)으로 더 제공할 수도 있다.
상기 컨트롤 모듈(120)은 사용자 정보(예컨대, 단말 1)과 상기 사용자 정보에 상응하는 애플리케이션의 식별정보(에컨대, App.1)를 컨트롤 정보로 유지관리할 수 있다. 즉, 단말 1은 애플리케이션(App.1)에 상응하는 API(예컨대, API1, API2, API3)을 이용할 수 있는 단말임이 상기 컨트롤 정보를 통해 알 수 있다. 특정 애플리케이션(예컨대, APP.1)에 상응하는 적어도 하나의 API(예컨대, API1, API2, API3)에 대한 정보는 상기 서비스 제공시스템(100)이 알고 있는 정보이므로, 상기 컨트롤 정보는 사용자 정보 및 사용자 정보에 상응하는 애플리케이션의 정보만을 포함할 수도 있고, 도 4에 도시된 바와 같이 애플리케이션에 상응하는 적어도 하나의 API에 대한 정보까지 서로 대응되도록 유지관리될 수도 있다.
도 4에 도시된 컨트롤 정보에 의하면 소정의 단말(단말 2)은 애플리케이션(APP.2)를 다운로드 및/또는 설치하였고, 상기 애플리케이션(APP.2)에 상응하는 API는 API 1 내지 API 10일 수 있다. 따라서 상기 서비스 제공시스템(100)은 복수의 애플리케이션들을 생성할 수 있고, 복수의 애플리케이션들 각각은 상응하는 API 가 서로 다를 수 있다. 즉, 해당 애플리케이션들을 다운로드 및/또는 설치한 단말별로 이용할 수 있는 API가 다를 수 있다.
이처럼 상기 컨트롤 정보가 상기 컨트롤 모듈(120)에 의해 생성, 유지관리되면, 상기 판단모듈(130)은 상기 컨트롤 정보를 확인하여 특정 단말에서 소정의 API가 호출되는 경우 호출된 API가 상기 특정 단말이 이용할 수 있는 API 인지 여부를 판단할 수 있다.
그러면 상기 제어모듈(110)은 판단모듈(130)의 판단결과에 따라 선택적으로 호출된 API에 상응하는 서비스를 제공할 수 있다.
각각의 API는 전술한 바와 같이 상기 서비스 제공시스템(100)에 상응하는 증권사의 HTS(Home Trading System) 또는 MTS(Mobile Trading System)에서 제공되는 서비스들 전부 또는 일부에 대응되는 API일 수 있다. 하지만 이에 국한되지는 않으며 상기 HTS 또는 MTS에서는 제공되지 않는 별개의 서비스를 위한 API가 오픈 API로 이용될 수도 있다.
결국, 종래의 오픈 API를 위해 특정 사용자에게 API를 공개한 경우에는, 상기 특정 사용자가 API를 다수의 사용자에게 공개하거나 또는 상기 특정 사용자가 오픈 API를 이용해 생성한 응용 프로그램이 서로 다른 데이터 처리장치에서 다수 실행되는 경우 이를 통제할 수 있는 방법이 없었지만, 본 발명에 의하면 적어도 특정 애플리케이션을 다운로드 및/또는 설치한 단말에서 호출되는 오픈 API에 대해서만 상응하는 서비스가 제공될 수 있는 효과가 있다.
한편, 이를 위해서는 상기 애플리케이션이 구현될 필요가 있다. 도 3에 도시된 바와 같이 다운로드 시스템(300)을 통해 다운로드 및/또는 설치할 수 있는 소정의 애플리케이션(10)은 전술한 바와 같이 적어도 상기 애플리케이션(10)에 상응하는 적어도 하나의 API(11)에 대한 정보를 포함할 수 있다. 또한, 구현 예에 따라서는 소정의 실행코드(12)가 더 포함될 수 있다.
상기 적어도 하나의 API(11)에 대한 정보는 코드 세트 즉, API를 정의하는 일련의 코드들이 포함될 수도 있고, API의 식별정보만이 포함될 수도 있다. 후자의 경우, 사용자는 자신(또는 자신의 단말)이 이용할 수 있는 API가 무엇인지를 인지할 수 있고, 실제 코드 세트는 지인 또는 웹 등과 같이 별도의 루트를 통해 파악할 수 있다.
또한, 상기 적어도 하나의 API(11)에 해당하는 코드세트가 포함된 경우에는 사용자는 상기 코드 세트를 통해 자신이 이용할 수 있는 API(11)의 코드세트를 확인할 수 있다. 그리고 이러한 경우 사용자별로(또는 사용자 그룹별로) 동일한 API에 대해서도 서로 다른 코드 세트를 설정할 수 있어서 특히 유리한 효과가 있다.
또는 상기 적어도 하나의 API(11)에 대한 정보는 도 6 및 도 7에 도시된 바와 같이 API에 대응되는 소정의 인터페이스(또는 컨트롤 메뉴 등)이 API에 대한 정보에 포함될 수도 있다. 이러한 경우에는 상기 인터페이스가 소정의 응용 프로그램에서 호출되는 경우, 상기 응용 프로그램에서 상기 인터페이스가 디스플레이될 수 있으며 상기 인터페이스가 제공하는 각각의 메뉴(선택 가능한 서비스)가 상기 적어도 하나의 API(11)가 될 수 있다. 이러한 경우에는 사용자는 API 각각의 코드 세트를 알지 못해도 해당 API를 이용할 수 있는 효과가 있다.
한편, 상기 애플리케이션(10)에 실행코드(12)가 포함될 경우, 상기 실행코드(12)는 사용자 단말(200)에서 실행될 수 있는 코드일 수 있다. 일 예에 의하면, 상기 실행코드(12)는 사용자가 실행을 시켜야 사용자 단말(200)에서 실행되는 코드일 수도 있고, 상기 사용자 단말(200)에 다운로드되어 설치되면 백그라운드로 실행되도록 구현될 수도 있다. 어떠한 경우든 상기 애플리케이션(10)에 상기 실행코드(12)가 포함되는 경우에는 상기 실행코드(120)를 이용하여 상기 서비스 제공시스템(100)은 보다 향상된 서비스 제어정책이 가능할 수 있다. 예컨대, 상기 애플리케이션(10)을 다운로드 및/또는 설치한 사용자 단말(200)이 해당 애플리케이션(10)을 삭제한 경우에는 더 이상 서비스 제공시스템(100)이 상기 사용자 단말(200)에 서비스를 제공하지 않는 것이 바람직할 수도 있다. 이외에도 애플리케이션(10)의 다운로드 및/또는 설치이후에 일어나는 다양한 이벤트에 따라 사용자 단말(200)에 호출되는 API에 상응하는 서비스를 제공할지 여부를 판단할 필요가 있을 수 있다. 예컨대, 상기 애플리케이션(10)의 위변조, 삭제 등과 같은 이벤트에 따라 선택적으로 서비스를 제공하고자 하는 경우에 상기 실행코드(12)를 이용하여 선택적인 서비스의 제공이 가능할 수 있다.
예컨대, 사용자 단말(200)이 특정 애플리케이션을 다운로드 및/또는 설치할 수 있고, 이러한 경우 상기 컨트롤 모듈(120)은 상기 사용자 단말(200)에 상응하는 사용자 정보 및 상기 특정 애플리케이션에 대한 정보를 유지관리할 수 있다.
상기 특정 애플리케이션에 상응하는 적어도 하나의 API에는 제1API가 포함될 수 있다. 이러한 경우 상기 사용자 단말(200)에서 소정의 응용프로그램이 실행되고 상기 제1API가 호출된 경우, 상기 판단모듈(130)은 상기 사용자 단말(200)이 상기 제1API를 이용할 수 있는 단말인지 여부를 상기 컨트롤 정보에 기초하여 판단할 수 있다. 판단결과 상기 사용자 단말(200)은 상기 제1API를 이용할 수 있는 단말이므로 상기 제어모듈(110)은 상기 제1API에 상응하는 서비스를 바로 제공할 수도 있다. 하지만, 상기 제어모듈(110)은 상기 실행코드(120)에 기초하여 추가적인 프로세스를 거친 후 상기 제1API에 상응하는 서비스를 제공할 수도 있다.
예컨대, 상기 제어모듈(110)은 단순히 상기 제1API를 호출한 상기 사용자 단말(200)에 상기 실행코드(12)가 실행되고 있는지(활성화되어 있는지) 여부에 기초하여 상기 제1API에 상응하는 서비스를 제공할지 여부를 판단할 수도 있다. 예컨대, 상기 제어모듈(110)은 상기 사용자 단말(200)에 설치되어 있어야 할 실행코드(12)와 통신을 시도하고, 통신이 성공하는 경우에 상기 실행코드(12)가 실행되고 있다고 판단할 수 있다. 또는 상기 실행코드(12)로부터 상기 사용자 단말(200)의 사용환경에 대한 정보를 수신하고, 수신된 사용환경에 대한 정보에 기초하여 상기 서비스를 제공할지 여부를 결정할 수도 있다. 상기 사용환경에 대한 정보는 구현 예에 따라 다양할 수 있으며, 상기 사용자 단말(200)로부터 수집할 수 있는 사용자에 대한 정보 및/또는 사용자 단말(200)과 관련된 다양한 정보 등일 수 있다. 어떠한 사용환경에 대한 정보를 확인하여 선택적으로 서비스를 제공할지 여부는 상기 증권사의 정책에 따라 다양해질 수 있음은 물론이다. 예컨대, 상기 증권사가 제공하는 HTS 또는 MTS의 설치여부가 상기 사용환경에 대한 정보일 수 있다.
결국 어떠한 경우든 상기 실행코드(12)가 실행되고 있어야만 상기 제어모듈(110)은 상기 사용자 단말(200)이 호출한 API에 상응하는 서비스를 제공할 수도 있다.
상기 애플리케이션(10)은 애플리케이션 생성모듈(140)에 의해 생성될 수 있다. 상기 애플리케이션 생성모듈(140)은 전술한 바와 같이 서로 다른 API에 상응하는 복수의 애플리케이션들을 생성할 수도 있다. 상기 애플리케이션 생성모듈(140)은 상기 API에 대한 정보(11)를 적어도 포함하고, 실시 예에 따라 상기 실행코드(12)를 더 포함하는 상기 애플리케이션(10)을 생성할 수 있다. 상기 애플리케이션 생성모듈(140)은 상기 다운로드 시스템(300)이 지원하는 파일 포맷(예컨대, 안드로이드 OS의 경우 apk 파일, iOS의 경우 ipa 등)으로 상기 애플리케이션(10)을 생성할 수 있다. 이를 위한 소정의 컴파일 도구를 상기 애플리케이션 생성모듈(140)이 이용할 수 있음은 물론이다. 상기 애플리케이션 생성모듈(140)은 상기 애플리케이션(10)에 포함될 API를 결정할 수도 있다.
한편, 각각의 API에 상응하는 코드세트는 상기 증권사의 운영주체에 의해 미리 결정되어 있을 수도 있고, 상기 애플리케이션 생성모듈(140)에 의해 자동으로 결정될 수도 있다. 즉, 구현 예에 따라 상기 애플리케이션 생성모듈(140)은 사용자 또는 사용자들별로 동일한 API에 대해서도 서로 다른 코드세트를 설정할 수도 있다.
어떠한 경우든 상기 API에 상응하는 코드세트는 일련의 코드들로 정의될 수 있으며, 본 발명의 기술적 사상에 의하면 상기 코드 세트에 포함되어 해당 API에 상응하는 서비스를 제공받기 위한 오브젝트(object)는 상기 서비스가 상기 HTS 또는 상기 MTS 에서 사용되는 서비스와 연관되도록 정의될 수 있다. 즉, 상기 API에 포함되는 오브젝트의 식별정보와 상기 HTS 또는 MTS에서 이용되는 서비스의 식별정보와 동일하도록 정의될 수 있다. 이를 통해 사용자가 HTS 또는 MTS에서의 익숙한 사용환경을 API를 이용할 때 그대로 이용해주도록 하는 효과가 있다.
이러한 일 예는 도 5에 도시된다.
도 5는 본 발명의 일 실시 예에 따른 오픈 API의 코드 세트의 일 예를 나타낸다.
도 5를 참조하면, 코드세트(30)는 특정 종목의 현재가 화면을 보여주는 서비스를 위한 API의 코드들일 수 있다. 한편, 상기 서비스 제공시스템(100)에 상응하는 증권사가 제공하는 HTS에서 상기 API에 상응하는 서비스(즉, 특정 종목의 현재가 화면을 보여주는 서비스)는 서비스 식별정보(예컨대, '0500')일 수 있다. 이러한 경우 상기 API의 코드 세트(30)에는 상기 API를 위한 오브젝트(예컨대, obj0500)가 정의되어야 할 수 있다. 그리고 상기 오브젝트(예컨대, obj0500)의 식별정보는 상기 HTS에서 상기 API와 동일한 서비스를 제공하는 서비스의 식별정보(예컨대, '0500')를 포함하도록 정의될 수 있다. 그리고 상기 오브젝트(예컨대, obj0500)는 도 5에 도시된 바와 같이 set obj0500 = objHTS.GetScreen(0500) 등으로 정의될 수 있다.
물론, 상기 코드 세트(30)에는 HTS에서 제공되는 오브젝트를 설정하기 위한 코드(예컨대, "Set objHTS = CreateObject("Samsung.HTS")")가 더 포함될 수 있다. 또한, obj0500.code = "A016360"는 "A016360"라는 코드에 상응하는 종목의 현재가 화면을 호출하기 위한 코드일 수 있고, call obj0500.Show()는 현재가 화면을 디스플레이하라는 코드일 수 있다.
결국, 현재가 화면을 호출하는 API를 정의하기 위한 오브젝트(obj0500)는 동일한 서비스를 제공하는 HTS의 서비스의 식별정보를 이용하여 정의됨으로써, 사용자는 자신이 사용하는 HTS 환경에 익숙한 코드를 이용하여 응용프로그램을 개발할 수 있게 되는 효과가 있다.
다른 일 예에 의하면, 코드세트(31)는 주문을 수행하기 위한 API일 수 있다. 또한, HTS에서 주문을 하기 위한 주문화면의 식별코드는 예컨대 2101일 수 있다. 이러한 경우 해당 API에 상응하는 오브젝트(예컨대, obj2101)는 도 5에 도시된 바와 같이 HTS에서의 서비스 식별정보인 2101을 포함하도록 정의될 수 있다.
그러면 도 5에 도시된 바와 같은 코드 세트는 결국, Set objHTS = CreateObject("Samsung.HTS")는 HTS에 상응하는 오브젝트의 설정을 의미하고, set obj2101 = objHTS.GetScreen(2101)는 주문 서비스에 상응하는 오브젝트를 설정함을 의미하며, obj2101.setOrderValue =("A016360", Buy, 10주, 시장가)는 "A016360"라는 종목코드에 해당하는 종목을 시장가로 10주 매수하는 주문화면을, call obj2101.Show() 디스플레이하고, call obj2101.OrderConfirm() 주문확인창을 디스플레이하라는 일련의 코드를 의미할 수 있다.
한편, 본 발명의 기술적 사상에 의하면, 특정 사용자 단말(200)이 오픈 API를 이용하여 생성한 응용 프로그램(또는 문서)를 타 단말에서도 활용할 수 있도록 할 필요가 있을 수 있다. 하지만 전술한 바와 같이 다운로드 시스템(300)으로부터 애플리케이션을 다운로드 및/또는 설치하지 않은 타 단말의 경우에는 상기 응용 프로그램(또는 문서)이 타 단말에 전송되고 타 단말에서 실행되어 상기 응용 프로그램의 실행에 의해 API가 호출되더라도 호출된 API에 상응하는 서비스가 제공되지 않게 된다. 따라서 필요한 경우에는 상기 특정 사용자 단말(200)의 요청에 의해, 비록 타 단말이 애플리케이션을 다운로드 및/또는 설치하지 않는 경우라도, 상기 타 단말에서 상기 API의 이용을 허용할 필요가 있을 수 있다.
이를 위해 상기 컨트롤 모듈(120)은 사용자 단말(200)로부터 타 단말의 식별정보를 수신할 수 있다. 상기 사용자 단말(200)은 소정의 애플리케이션을 다운로드 및/또는 설치한 단말일 수 있다. 또한, 상기 애플리케이션은 예컨대, 제1API 내지 제10API에 상응하는 애플리케이션일 수 있다. 상기 사용자 단말(200)은 제1API 내지 제10API 중 적어도 일부를 이용해 응용 프로그램을 생성할 수 있다. 그리고 사용자 단말(200)의 사용자는 생성한 응용 프로그램을 타인의 단말 또는 자신의 다른 단말인 타 단말에서도 정상적으로 이용하고자 할 수 있다.
이러한 경우, 상기 사용자 단말(200)의 사용자는 사용자 단말(200)을 이용해 상기 타 단말의 식별정보(예컨대, 전화번호 등)를 상기 컨트롤 모듈(120)로 전송할 수 있다. 그러면 상기 컨트롤 모듈(120)은 상기 타 단말의 식별정보를 상기 사용자 단말(200)에 대응되는 컨트롤 정보에 추가할 수 있다. 예컨대, 도 4에 도시된 바와 같은 예에서 상기 사용자 단말(200)이 단말 2인 경우, 단말 2에 상응하는 컨트롤 정보의 사용자 정보 항목에 상기 타단말의 식별정보를 추가할 수 있다. 이러한 경우에는 상기 타 단말 역시 상기 제1API 내지 제10API를 이용할 수 있는 단말이 될 수 있다. 그러면 상기 타단말 역시 사용자 단말(200)이 이용할 수 있는 API를 이용할 수 있는 단말이 될 수 있다.
따라서 특정 사용자 단말(200)에서 생성되며 오픈 API를 활용하는 응용 프로그램이 원칙적으로는 타 단말에서는 정상적으로 작동하지 않되(즉, 상기 오픈 API에 상응하는 서비스가 제공되지 않되), 상기 특정 사용자 단말(200)이 요청에 의해 상기 타 단말에서도 상기 응용 프로그램이 정상적으로 작동될 수 있도록 할 수도 있게 된다.
도 6 및 도 7은 본 발명의 일 실시 예에 따라 오픈 API가 활용되는 일 예들을 나타내는 도면이다.
도 6 및 도 7은 예시적으로 엑셀 문서에서 API가 호출되는 일 예를 도시하고 있으며, 도 6에서는 미리 정해진 종목(예컨대, 삼성증권)의 주식 현재가 화면이 호출되는 경우를 도시하고 있다. 또한, 도 7에서는 DDE(Dynamic Data Exchnage)를 이용해 실시간으로 상기 엑셀 문서에서 소정의 DDE 항목(예컨대, 현재가)가 실시간으로 반영될 수 있음을 나타내고 있다. 또한, 도 6 및 도 7에서는 서비스 제공시스템(100)에서 제공되는 서비스의 오픈 API가 소정의 인터페이스(예컨대, 도 6 및 도 7의 상단에 도시된 컨트롤 메뉴 등)로 제공될 수도 있음을 나타내고 있다. 이러한 인터페이스가 전술한 애플리케이션으로 제공되는 경우에는 사용자는 API의 코드 세트를 인지할 필요없이 용이하게 도 6 또는 도 7에 도시된 바와 같은 응용 프로그램(또는 문서)을 생성할 수도 있음은 물론이다.
한편, 본 발명의 실시 예에 따른 오픈 API를 활용한 증권 서비스 제공방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명의 실시예에 따른 제어 프로그램 및 대상 프로그램도 컴퓨터로 판독 가능한 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
Claims (12)
- 증권사가 제공하는 증권 서비스 제공시스템에 있어서,
상기 증권사의 HTS(Home Trading System) 또는 MTS(Mobile Trading System)에서 제공되는 서비스들 전부 또는 일부에 대응되는 적어도 하나의 API에 대한 정보를 포함하는 애플리케이션이 사용자 단말이 다운로드할 수 있도록 하는 다운로드 시스템에 업로드되고 상기 애플리케이션이 사용자 단말에 의해 설치되면, 상기 사용자 단말에 상응하는 사용자 정보와 상기 애플리케이션에 대한 정보가 대응되도록 저장된 컨트롤 정보를 생성하여 유지하는 컨트롤 모듈; 및
상기 사용자 단말에 의해 소정의 API가 호출된 경우, 상기 컨트롤 정보에 기초하여 상기 사용자 단말이 상기 호출된 API를 이용할 수 있는 단말인지를 판단하기 위한 판단모듈; 및
상기 판단모듈의 판단결과에 기초하여 선택적으로 상기 호출된 API에 상응하는 서비스를 상기 사용자 단말로 제공하기 위한 제어모듈을 포함하는 오픈 API를 활용한 증권 서비스 제공시스템.
- 제1항에 있어서, 상기 오픈 API를 활용한 증권 서비스 제공시스템은,
상기 애플리케이션을 생성하기 위한 애플리케이션 생성모듈을 더 포함하며,
상기 애플리케이션 생성모듈은 서로 다른 종류의 API에 대한 정보를 포함하는 복수의 애플리케이션을 생성하는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공시스템.
- 제1항에 있어서, 상기 제어모듈은,
상기 사용자 단말에서 상기 애플리케이션이 활성화가 되어 있는지를 판단하고, 상기 애플리케이션이 활성화되어 있어야 상기 호출된 API에 상응하는 서비스를 제공하는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공시스템.
- 제1항에 있어서, 상기 적어도 하나의 API에 대한 정보는,
상기 적어도 하나의 API 각각에 상응하는 코드 세트에 대한 정보를 포함하며,
상기 코드 세트에 포함된 오브젝트 식별정보는,
상기 HTS 또는 상기 MTS 에서 사용되는 서비스 식별정보와 동일한 식별정보를 포함하는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공시스템.
- 제1항에 있어서, 상기 컨트롤 모듈은,
상기 사용자 단말로부터 타단말에 대한 정보를 수신하고,
수신에 응답하여 상기 타단말에 대한 정보를 상기 컨트롤 정보에 포함시켜 저장하여 상기 타단말이 상기 애플리케이션에 상응하는 적어도 하나의 API 중 적어도 일부를 호출하는 경우 호출한 API에 상응하는 서비스를 제공받을 수 있는 단말로 설정되도록 하는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공시스템.
- 제1항에 있어서, 상기 적어도 하나의 API는,
시세 제공 API, 주문 API, 계좌조회 API, 또는 보조지표 API를 포함하는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공시스템.
- 증권사가 제공하는 증권 서비스 제공방법에 있어서,
오픈 API를 활용한 증권 서비스 제공시스템이 상기 증권사의 HTS(Home Trading System) 또는 MTS(Mobile Trading System)에서 제공되는 서비스들 전부 또는 일부에 대응되는 적어도 하나의 API에 대한 정보를 포함하는 애플리케이션이 사용자 단말이 다운로드할 수 있도록 하는 다운로드 시스템에 업로드되고 상기 애플리케이션이 사용자 단말에 의해 설치되면, 상기 사용자 단말에 상응하는 사용자 정보와 상기 애플리케이션에 대한 정보가 대응되도록 저장된 컨트롤 정보를 생성하여 유지하는 단계;
상기 오픈 API를 활용한 증권 서비스 제공시스템이 상기 사용자 단말에 의해 소정의 API가 호출된 경우, 상기 컨트롤 정보에 기초하여 상기 사용자 단말이 호출된 API를 이용할 수 있는 단말인지를 판단하는 단계; 및
판단결과에 기초하여 상기 호출된 API에 상응하는 서비스를 상기 사용자 단말로 제공하는 단계를 포함하는 오픈 API를 활용한 증권 서비스 제공방법.
- 제7항에 있어서, 상기 오픈 API를 활용한 증권 서비스 제공방법은,
상기 오픈 API를 활용한 증권 서비스 제공시스템이 상기 애플리케이션을 생성하는 단계를 더 포함하며,
상기 오픈 API를 활용한 증권 서비스 제공시스템은,
서로 다른 종류의 API에 대한 정보를 포함하는 복수의 애플리케이션들을 생성하고, 생성된 복수의 애플리케이션들이 상기 다운로드 시스템에 업로드되는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공방법.
- 제7항에 있어서, 상기 오픈 API를 활용한 증권 서비스 제공방법은,
상기 오픈 API를 활용한 증권 서비스 제공시스템이 상기 사용자 단말에서 상기 애플리케이션이 활성화가 되어 있는지를 판단하는 단계를 더 포함하고,
상기 판단결과에 기초하여 상기 호출된 API에 상응하는 서비스를 상기 사용자 단말로 제공하는 단계는,
상기 애플리케이션이 활성화되어 있어야 상기 호출된 API에 상응하는 서비스를 제공하는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공방법.
- 제7항에 있어서, 상기 적어도 하나의 API에 대한 정보는,
상기 적어도 하나의 API 각각에 상응하는 코드 세트에 대한 정보를 포함하며,
상기 코드 세트에 포함된 오브젝트 식별정보는,
상기 HTS 또는 상기 MTS 에서 사용되는 서비스 식별정보와 동일한 식별정보를 포함하는 것을 특징으로 하는 오픈 API를 활용한 증권 서비스 제공방법.
- 제7항에 있어서, 상기 오픈 API를 활용한 증권 서비스 제공방법은,
상기 사용자 단말로부터 타단말에 대한 정보를 수신하는 단계; 및
수신에 응답하여 상기 타단말에 대한 정보를 상기 컨트롤 정보에 포함시켜 저장하여 상기 타단말이 상기 애플리케이션에 상응하는 적어도 하나의 API 중 적어도 일부를 호출하는 경우 호출한 API에 상응하는 서비스를 제공받을 수 있는 단말로 설정되도록 하는 단계를 더 포함하는 오픈 API를 활용한 증권 서비스 제공방법.
- 데이터 처리장치에 설치되며 제7항 내지 제11항 중 어느 한 항에 기재된 방법을 수행하기 위한 기록된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150175563A KR20170068737A (ko) | 2015-12-10 | 2015-12-10 | 오픈 api를 활용한 증권 서비스 제공시스템 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150175563A KR20170068737A (ko) | 2015-12-10 | 2015-12-10 | 오픈 api를 활용한 증권 서비스 제공시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170068737A true KR20170068737A (ko) | 2017-06-20 |
Family
ID=59281564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150175563A KR20170068737A (ko) | 2015-12-10 | 2015-12-10 | 오픈 api를 활용한 증권 서비스 제공시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20170068737A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190142518A (ko) * | 2018-06-18 | 2019-12-27 | 이학랑 | Hts 인터페이스 시스템 및 방법 |
-
2015
- 2015-12-10 KR KR1020150175563A patent/KR20170068737A/ko unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190142518A (ko) * | 2018-06-18 | 2019-12-27 | 이학랑 | Hts 인터페이스 시스템 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9843933B2 (en) | Method of accessing applications in a secure mobile environment | |
US8943494B2 (en) | Method for installing and managing NFC applications with pictures | |
EP3255909A1 (en) | Messaging application interacting with one or more extension applications | |
CN102090044B (zh) | 调节从服务器到客户端设备的数据文件的下载的系统和方法 | |
US9497563B2 (en) | Mobile device activation | |
CN103294338A (zh) | 用于共享应用程序的无线终端设备和方法 | |
CN105335132B (zh) | 一种自定义应用程序功能的方法、装置以及系统 | |
TW202044019A (zh) | 基於h5接入方式的接入方法及其接入元件和移動終端 | |
CN103049320A (zh) | 在浏览器中启动外部应用程序的方法和装置 | |
CN102063316A (zh) | 信息处理设备、通信系统和信息处理方法 | |
US20050160038A1 (en) | Prompted automatic online payments | |
US11107067B2 (en) | Systems and methods for real-time application configuration for NFC transactions | |
WO2014160636A1 (en) | Systems, methods, and computer program products for managing service installation | |
CN113961463A (zh) | 应用环境切换方法及系统、存储介质和电子设备 | |
KR20170068737A (ko) | 오픈 api를 활용한 증권 서비스 제공시스템 및 그 방법 | |
JP2013531846A (ja) | ホストデバイス上のブラウザ拡張機能が可能なブラウザからリモートサーバへと接続するための方法 | |
KR101734306B1 (ko) | 멀티 프로그램 코드 자동 개발 시스템 | |
MX2012010195A (es) | Metodo y sistema de gestion de operaciones en un terminal de telecomunicaciones. | |
KR20100006497A (ko) | 웹 데스크 탑 프레임워크 구성 방법 및 그 시스템 | |
KR101972898B1 (ko) | 장치 모듈의 제어 호환성을 제공하는 결제 단말 장치 | |
KR102394694B1 (ko) | 결제 서버, 결제 시스템 및 그 카드 등록 방법 | |
CN109032684B (zh) | 一种基于安卓系统广播插件的实现方法及终端 | |
CN117062038A (zh) | 一种基于近场通信技术的设备自动绑定方法和装置 | |
KR20140114983A (ko) | 애플리케이션 개발 환경 제공 방법 | |
WO2009077768A2 (en) | System and method for configuration of an application for a communication device |