KR20240045838A - 스프레드시트 기반 보고서 생성 장치, 시스템 및 방법 - Google Patents

스프레드시트 기반 보고서 생성 장치, 시스템 및 방법 Download PDF

Info

Publication number
KR20240045838A
KR20240045838A KR1020220125657A KR20220125657A KR20240045838A KR 20240045838 A KR20240045838 A KR 20240045838A KR 1020220125657 A KR1020220125657 A KR 1020220125657A KR 20220125657 A KR20220125657 A KR 20220125657A KR 20240045838 A KR20240045838 A KR 20240045838A
Authority
KR
South Korea
Prior art keywords
data
cell
command
statement
template
Prior art date
Application number
KR1020220125657A
Other languages
English (en)
Inventor
김동욱
Original Assignee
주식회사 위브랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 위브랩 filed Critical 주식회사 위브랩
Priority to KR1020220125657A priority Critical patent/KR20240045838A/ko
Publication of KR20240045838A publication Critical patent/KR20240045838A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0242Determining effectiveness of advertisements

Abstract

스프레드시트 기반 보고서 생성 장치 및 스프레드시트 기반 보고서 생성 방법에 관한 것으로, 스프레드시트 기반 보고서 생성 장치는 스프레드시트 기반의 템플릿을 저장하는 저장부 및 원시 데이터 또는 상기 원시 데이터에 대응하는 변환 데이터를 상기 템플릿에 적용하여 상기 원시 데이터 또는 상기 변환 데이터에 대응하는 보고서를 생성하는 프로세서를 포함하되, 상기 템플릿은, 셀 명령문을 포함하는 복수의 셀 및 상기 복수의 셀 중 적어도 하나에 부가되고 부가 명령문을 갖는 명령 기록부를 포함하고, 상기 부가 명령문은, 수행될 명령을 나타내는 부가 명령어와, 상기 원시 데이터 및 상기 변환 데이터 중 상기 부가 명령어에 의해 처리될 데이터를 독출할 데이터를 나타내는 데이터 독출 대상과, 상기 데이터 독출 대상에서 획득된 데이터가 입력될 적어도 하나의 셀을 나타내는 데이터 범위를 포함할 수 있다.

Description

스프레드시트 기반 보고서 생성 장치, 시스템 및 방법{APPARATUS, SYSTEM AND METHOD FOR GENERATING SPREADSHEET-BASED REPORT}
스프레드시트 기반 보고서 생성 장치, 스프레드시트 기반 보고서 생성 방법 및 스프레드시트 기반 보고서 생성 시스템에 관한 것이다.
정보통신기술의 발달에 따라 누구나 언제 어디서든지 웹 사이트에 접속하거나, 게임 또는 인스턴스 메신저 등과 같은 다양한 애플리케이션을 이용하고 있고, 이에 대응하여 이들을 기반으로 하는 온라인 광고 시장 역시 급속도로 성장하고 있다. 특히 온라인 광고비 규모는 2012년에는 약 2조원 정도였으나, 2021년에는 약 8조 5천억원 정도로 4배 이상 급속히 성장하고 있다. 따라서, 현 시점에서는 마케팅에 있어 웹사이트나 앱 등의 광고 매체를 통한 온라인 광고는 필수적으로 고려해야할 사항이 되었다.
이러한 온라인 광고는 다양한 유형으로 수행될 수 있다. 예를 들어, 검색 사이트가 입력된 키워드에 대응하는 광고를 출력하거나, 앱의 그래픽 사용자 인터페이스나 웹 페이지의 전부 또는 일부에 광고를 표시하거나, 스트리밍 동영상 등의 재생 전후 또는 동영상의 재생 도중에 동영상 또는 정지영상의 형태의 광고를 출력하는 등의 방법을 통해 온라인 광고는 수행될 수 있다. 그런데, 포털 사이트, 뉴스 사이트, 소셜 네트워크 서비스 사이트나 앱 등과 같은 광고 매체는 그 종류나 수가 매우 많을 뿐만 아니라, 이들 매체가 제공하는 광고의 유형도 각양각색이고, 매체나 광고 유형에 따라 과금 방식도 상이하여, 광고주들은 매출 및 이익 증대에 최적인 매체나 유형을 선택하는데 상당한 어려움과 불편함을 느끼고 있었다.
상술한 이유로 광고주들은 광고와 관련된 여러 업무를 마케팅 대행사 등에게 위임하는 것이 일반적이었다. 마케팅 대행사들은 광고주의 의뢰를 받고, 자신 또는 광고주의 의사에 따라 매체나 방식 등을 결정하고 광고를 집행하였다. 또한, 마케팅 대행사들은 필요에 따라 광고 집행 결과나 광고 집행에 따른 마케팅 효율 등을 보고서 형식으로 매일, 매주 또는 매월 광고주에게 보고하여, 광고주가 현재의 마케팅 전략을 평가하고, 또 다른 전략을 구상할 수 있도록 하기도 하였다.
그런데, 광고주마다 필요하거나 중시하는 정보나 보고서 양식이 항상 동일한 것만은 아니다. 특히 보고서 양식은 광고주의 내부 관리 시스템이나 마케팅 담당자의 취향 등에 따라 천차만별일 수도 있다. 이런 이류로 마케팅 대행사는 광고주가 요청하는 내용이나 양식에 따라 광고주마다 별도로 광고주 맞춤 보고서를 제작하였는데, 이는 통상 수작업으로 이뤄졌다. 그러나, 광고주, 매체, 보고 빈도 또는 광고 관련 데이터의 양적 증가에 따라 수작업으로 작성할 보고서의 양도 증가할 수 밖에 없었고, 이는 보고서 작성을 위한 노동력의 대량 투입을 요구하여, 비용 상승 및 업무 비효율성의 원인이 되고 있다. 따라서, 다양한 광고주의 취향이나 의도에 부합하면서도 다수의 보고서를 보다 효율적으로 작성할 수 있는 방법에 대한 연구 개발의 필요성이 더욱 더 높아지고 있었다.
대한민국 등록특허공보 제10-0969656호, "엑셀기반 분석보고서 작성 시스템 및 방법", 공고일자: 2010.07.14 유럽 공개 공보 EP 1 256 890 A2, "Systems and methods providing dynamic spreadsheet functionality", 공개일자: 2002.11.13
더욱 용이하면서도 간단하게 다양한 종류, 형식, 항목 또는 내용 등의 스프레드시트 기반 보고서를 작성할 수 있게 하는 스프레드시트 기반 보고서 생성 장치, 스프레드시트 기반 보고서 생성 방법 및 스프레드시트 기반 보고서 생성 시스템을 제공하는 것을 해결하고자 하는 과제로 한다.
상술한 과제를 해결하기 위하여 스프레드시트 기반 보고서 생성 장치, 스프레드시트 기반 보고서 생성 방법 및 스프레드시트 기반 보고서 생성 시스템이 제공된다.
스프레드시트 기반 보고서 생성 장치는, 스프레드시트 기반의 템플릿을 저장하는 저장부 및 원시 데이터 또는 상기 원시 데이터에 대응하는 변환 데이터를 상기 템플릿에 적용하여 상기 원시 데이터 또는 상기 변환 데이터에 대응하는 보고서를 생성하는 프로세서를 포함하되, 상기 템플릿은, 셀 명령문을 포함하는 복수의 셀 및 상기 복수의 셀 중 적어도 하나에 부가되고 부가 명령문을 갖는 명령 기록부를 포함하고, 상기 부가 명령문은, 수행될 명령을 나타내는 부가 명령어와, 상기 원시 데이터 및 상기 변환 데이터 중 상기 부가 명령어에 의해 처리될 데이터를 독출할 데이터를 나타내는 데이터 독출 대상과, 상기 데이터 독출 대상에서 획득된 데이터가 입력될 적어도 하나의 셀을 나타내는 데이터 범위를 포함할 수 있다.
상기 부가 명령문은, 상기 원시 데이터 또는 상기 변환 데이터에 적용된 스타일을 상기 적어도 하나의 셀에 적용할지 여부를 결정하기 위한 스타일 조건을 더 포함할 수도 있다.
상기 부가 명령어는, 상기 데이터 범위의 셀에 다건 값을 목록으로 출력할 것을 지시하는 제1 부가 명령어, 다건 값을 목록으로 출력하되, 각각의 목록을 수평 방향으로 이어 출력할 것을 지시하는 제2 부가 명령어 및 복제 대상의 전부 또는 일부를 상기 데이터 범위에 복제할 것을 지시하되, 상기 복제 대상은 다른 셀 또는 다른 셀을 갖는 다른 시티를 포함하는 제3 부가 명령어 중 적어도 하나를 포함하는 것도 가능하다.
상기 셀 명령문은, 상기 데이터 독출 대상으로부터 획득된 데이터를, 상기 셀 명령문을 갖는 셀 내에 그대로 출력하기 위한 셀 명령문을 하나 이상 포함하고, 상기 프로세서는, 상기 셀 명령문에 따라서 상기 데이터 독출 대상에서 획득된 데이터를 상기 셀 명령문을 갖는 셀에 기록하도록 마련될 수도 있다.
상기 셀 명령문은, 수행될 처리를 나타내는 셀 명령어, 상기 셀 명령어에 의해 처리될 대상 데이터를 독출할 데이터 독출 대상 및 상기 데이터 독출 대상으로부터 획득된 대상 데이터에 대한 정보를 포함할 수도 있다.
상기 템플릿은, 적어도 하나의 학습 모델을 이용하여 생성되되, 상기 적어도 하나의 학습 모델은, 관심 분야, 업종, 사업 실적, 사업 규모, 예산, 투자 금액, 물품이나 서비스에 대한 정보, 광고 매체에 대한 정보, 원시 데이터의 종류, 원시 데이터 제공 장치를 운영하는 매체, 보고서의 보고 목적, 보고서의 유형 및 보고서의 보고 주기 중 적어도 하나를 입력 값으로 하고, 적어도 하나의 셀, 적어도 하나의 셀 주변의 적어도 하나의 선분이나 도형, 적어도 하나의 셀에 기재된 정보, 적어도 하나의 셀에 기재된 셀 명령문 및 적어도 하나의 셀에 부가된 명령 기록부 중 적어도 하나를 출력 값으로 하는 것일 수 있다.
상기 프로세서는, 상기 템플릿의 각각의 셀을 미리 정의되거나 임의적인 순서로 확인하고, 상기 각각의 셀에 상기 명령 기록부 및 상기 셀 명령문 중 적어도 하나가 존재하는지 여부를 확인하고, 적어도 하나의 셀에 상기 명령 기록부가 존재하면, 상기 명령 기록부에 상기 부가 명령문이 존재하는지 판단하고, 상기 부가 명령문이 존재하면, 상기 부가 명령문에 대한 해석을 수행하고, 적어도 하나의 셀에 상기 셀 명령문이 존재하면, 상기 셀 명령문에 대한 해석을 수행하고, 상기 부가 명령문에 대한 해석 및 상기 명령문에 대한 해석 결과에 따라서, 상기 원시 데이터 또는 상기 변환 데이터를 상기 템플릿에 적용하도록 마련될 것일 수도 있다.
상기 프로세서는, 적어도 하나의 파싱 알고리즘을 이용하여 상기 부가 명령문 및 상기 셀 명령문 중 적어도 하나를 해석할 수도 있다.
스프레드시트 기반 보고서 생성 방법은, 스프레드시트 기반의 템플릿을 생성하는 단계, 원시 데이터를 수신하는 단계, 상기 원시 데이터에 대응하는 변환 데이터를 생성하는 단계 및 상기 변환 데이터를 상기 템플릿에 적용하여 상기 변환 데이터에 대응하는 보고서를 생성하는 단계를 포함하되, 상기 템플릿은, 셀 명령문을 포함하는 복수의 셀 및 상기 복수의 셀 중 적어도 하나에 부가되고 부가 명령문을 갖는 명령 기록부를 포함하고, 상기 부가 명령문은, 수행될 명령을 나타내는 부가 명령어와, 상기 원시 데이터 및 상기 변환 데이터 중 상기 부가 명령어에 의해 처리될 데이터를 독출할 데이터를 나타내는 데이터 독출 대상과, 상기 데이터 독출 대상에서 획득된 데이터가 입력될 적어도 하나의 셀을 나타내는 데이터 범위를 포함할 수도 있다.
스프레드시트 기반 보고서 생성 시스템은, 원시 데이터를 제공하는 원시 데이터 제공 장치, 상기 원시 데이터에 대응하는 보고서 작성을 위한 템플릿을 획득하고, 상기 원시 데이터 또는 상기 원시 데이터에 대응하는 변환 데이터를 상기 템플릿에 적용하여 보고서를 생성하는 보고서 생성 장치 및 상기 보고서를 수신하는 피보고자 단말 장치를 포함하고, 상기 템플릿은, 셀 명령문을 포함하는 복수의 셀 및 상기 복수의 셀 중 적어도 하나에 부가되고 부가 명령문을 갖는 명령 기록부를 포함하고, 상기 부가 명령문은, 수행될 명령을 나타내는 부가 명령어와, 상기 원시 데이터 및 상기 변환 데이터 중 상기 부가 명령어에 의해 처리될 데이터를 독출할 데이터를 나타내는 데이터 독출 대상과, 상기 데이터 독출 대상에서 획득된 데이터가 입력될 적어도 하나의 셀을 나타내는 데이터 범위를 포함할 수 있다.
상술한 스프레드시트 기반 보고서 생성 장치 및 방법에 의하면, 종래보다 더욱 용이하면서도 간단하게 다양한 종류, 형식, 항목 또는 내용 등을 갖는 스프레드시트 기반 보고서를 작성할 수 있게 된다.
상술한 스프레드시트 기반 보고서 생성 장치 및 방법에 의하면, 분석가, 마케터 또는 에이전시 등이 의뢰인이 요구하는 내용이나 형식에 부합하는 보고서를 보다 정확하고, 신속하며, 편리하게 작성할 수 있게 되는 장점도 얻을 수 있다.
상술한 스프레드시트 기반 보고서 생성 장치 및 방법에 의하면, 광고 집행 결과, 마케팅 조사 결과, 판매량, 사이트 방문자수, 페이지 뷰, 스케줄, 투자 상황, 투자 결과 또는 자산 현황 등과 같은 다양한 보고 대상에 대한 보고서를 복잡한 수작업 없이도 자동으로 생성할 수 있게 되고, 이에 따라 분석 및 보고서 작성에 투입되는 노동력 및 시간을 절감할 수 있는 경제적 장점도 얻을 수 있다.
상술한 스프레드시트 기반 보고서 생성 장치 및 방법에 의하면, 다수의 매체로부터 자료가 전달된다고 하더라도, 이들 자료를 적절하게 취합 및 가공하여 원하는 형식으로 보고서를 작성할 수 있게 된다.
도 1은 보고서 생성 시스템의 일 실시예에 대한 개요도이다.
도 2는 스프레드시트 기반 보고서 생성 장치의 일 실시예에 대한 블록도이다.
도 3은 데이터 가공부의 동작의 일례를 설명하기 위한 도면이다.
도 4는 템플릿의 일 실시예를 설명하기 위한 제1 도이다.
도 5는 템플릿의 일 실시예를 설명하기 위한 제2 도이다.
도 6은 다건 값 출력 명령의 일례를 설명하기 위한 도면이다.
도 7은 다건 값 출력 명령의 다른 일례를 설명하기 위한 도면이다.
도 8은 복사 명령의 일 실시예를 설명하기 위한 도면이다.
도 9는 다수의 매체에 대한 정보를 포함하는 템플릿의 일 실시예를 설명하기 위한 도면이다.
도 10은 스프레드시트 기반 보고서 생성 방법의 적어도 일 실시예에 대한 흐름도이다.
이하 명세서 전체에서 동일 참조 부호는 특별한 사정이 없는 한 동일 구성요소를 지칭한다. 이하에서 사용되는 '부'가 부가된 용어는, 소프트웨어 및/또는 하드웨어로 구현될 수 있으며, 실시예에 따라 하나의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 복수의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 하나의 '부'가 복수의 물리적 또는 논리적 부품들로 구현되는 것도 가능하다. 명세서 전체에서 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 어떤 부분과 다른 부분이 상호 간에 물리적으로 연결되었음을 의미할 수도 있고, 및/또는 전기적으로 연결되었음을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다. 제1 내지 제N(N은 1 이상의 자연수) 등의 표현은, 적어도 하나의 부분(들)을 다른 부분(들)으로부터 구분하기 위한 것으로, 특별한 기재가 없는 이상 이들이 순차적임을 반드시 의미하지는 않는다. 또한 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.
이하 도 1 내지 도 9를 참조하여 스프레드시트 기반 보고서 생성 장치 및 이를 포함하는 스프레드시트 기반 보고서 생성 시스템의 적어도 일 실시예에 대해서 설명하도록 한다.
도 1은 보고서 생성 시스템의 일 실시예에 대한 개요도이다.
도 1에 도시된 바를 참조하면, 스프레드시트 기반 보고서 생성 시스템(1)은 일 실시예에 있어서, 스프레드시트 기반 보고서 생성 장치(100, 이하 보고서 생성 장치)와, 적어도 하나의 피보고자 단말 장치(20: 20-1 내지 20-A, A는 1 이상의 자연수)를 포함할 수 있다. 또한, 스프레드시트 기반 보고서 생성 시스템(1)은, 적어도 하나의 원시 데이터 제공 장치(10: 10-1 내지 10-B, B는 1 이상의 자연수)와, 적어도 하나의 피보고자 서버 장치(21: 21-A)와, 관리자 단말 장치(30) 중 적어도 하나를 더 포함할 수 있다.
보고서 생성 장치(100), 원시 데이터 제공 장치(10: 10-1 내지 10-B), 피보고자 단말 장치(20: 20-1 내지 20-A), 피보고자 서버 장치(21: 21-A) 및 관리자 단말 장치(30) 중 적어도 둘은 소정의 통신 네트워크를 통해 일방으로 또는 쌍방으로 데이터나 명령/지시 등을 전달할 수 있게 마련된다. 여기서, 통신 네트워크는 유선 통신 네트워크, 무선 통신 네트워크 또는 이들의 조합을 기반으로 구축된 것일 수 있다. 무선 통신 네트워크는 근거리 통신 네트워크 및 원거리 통신 네트워크 중 적어도 하나를 포함할 수 있되, 예를 들어, 와이파이(Wi-Fi), 와이파이 다이렉트(Wi-Fi Direct), 블루투스(Bluetooth), 저전력 블루투스(Bluetooth Low Energy), 지그비(zigbee) 통신, 캔(CAN) 통신 또는 초광대역(UWB: Ultra-WideBand) 통신 등의 통신 기술을 기반으로 구현 가능하고, 원거리 통신 네트워크는, 예를 들어, 3GPP, 3GPP2, 와이브로 또는 와이맥스 계열 등의 이동 통신 표준을 기반으로 구현 가능하다. 피보고자 단말 장치(20: 20-1 내지 20-A) 및 피보고자 서버 장치(21: 21-A)도. 필요에 따라. 통신 네트워크를 통해 상호 통신 가능하게 연결될 수 있다.
보고서 생성 장치(100)는, 외부에서 직접 전달되거나 및/또는 상술한 통신 네트워크를 통해 전달되는 데이터(121, 이하 원시 데이터)와 생성할 보고서(200)에 관한 적어도 하나의 템플릿(50)을 이용하여 하나 이상의 보고서(200)를 생성할 수 있도록 마련된다.
템플릿(50)은, 보고서(200) 내에 포함될 데이터(일례로 항목, 값, 명령, 함수, 링크, 참조(코멘트 등), 외부 파일, 이미지 및 동영상 등) 중 적어도 하나가 소정 위치(일례로 특정한 셀)에 배치되거나, 배치된 정보 주변에 적어도 하나의 선분이나 도형(원, 정사각형, 직사각형 등)이 표현되거나, 이들 데이터나 선분 등을 조합하여 적어도 하나의 테이블을 형성하거나, 및/또는 소정의 스타일(폰트, 글자 크기 또는 장평 등)을 데이터 내(일례로 셀 내의 데이터)의 문자나 숫자 등에 적용함으로써, 이들 데이터가 소정의 형식으로 표현될 수 있도록 마련된 양식을 포함한다. 템플릿(50)은 적어도 하나의 파일 형식으로 마련될 수 있다. 템플릿(50)이 후술하는 것처럼 소정의 스프레드시트를 기반으로 작성되었다면, 템플릿(50)은 스프레드시트에 상응하는 파일 형식(예를 들어, .xls, .xlsx, .cell 또는 .Gsheet 파일 등)을 가질 수도 있다. 실시예에 따라, 템플릿(50)은 문서 파일 형식(.doc 또는 .hwp 등), 프레젠테이션 파일 형식(.ppt 등) 또는 데이터베이스 파일 형식 등을 갖는 것도 가능하다.
템플릿(50)은, 보고서 생성 장치(100)가 보고서(200)를 생성하기 전에, 데이터에 대한 보고받을 자(이하 피보고자)나, 스프레드시트 기반 보고서 생성 시스템(1)이나 보고서 생성 장치(100)를 관리하는 자(이하 관리자) 등에 의해 미리 작성되어 마련된 것일 수도 있다. 또한, 템플릿(50)은 보고서(200) 작성 과정에서 수동으로 또는 자동으로 생성 또는 수정된 것일 수도 있다. 실시예에 따라서, 템플릿(50)은 템플릿(50)의 생성을 위해 사전에 훈련된 적어도 하나의 학습 모델에 의해 자동으로 생성된 것일 수도 있다. 여기서, 피보고자는, 예를 들어, 광고주, 투자자, 회계 분석가, 마케팅 분석가, 빅데이터 분석가, 광고 대행사, 컨설턴트 또는 원시 데이터 제공 장치(10)의 관리자(예를 들어, 포털 사이트 관리자 등) 등을 포함할 수 있다.
원시 데이터 제공 장치(10: 10-1 내지 10-B)는, 일 실시예에 있어서, 보고서(200)에 포함될 내용의 기초가 되는 적어도 하나의 데이터를 수집, 생성, 정리, 가공 또는 조합하고, 이를 보고서 생성 장치(100)로 유무선 통신 네트워크를 통해 전달할 수 있다. 각각의 원시 데이터 제공 장치(10: 10-1 내지 10-B)로부터 전달되는 데이터는, 보고서 생성 장치(100)에 의해 원시 데이터(121)로 이용된다. 실시예에 따라서, 원시 데이터 제공 장치(10: 10-1 내지 10-B) 중 적어도 하나는, 응용 프로그램 프로그래밍 인터페이스(API: Application Programming Interface)를 보고서 생성 장치(100)에 제공하거나, 및/또는 주기적 또는 비주기적으로 획득한 데이터를 보고서 생성 장치(100)로 전송함으로써, 보고서 생성 장치(100)가 원시 데이터(121)를 임의적으로, 주기적으로 또는 비주기적으로 획득할 수 있게 할 수 있다.
일 실시예에 의하면, 각각의 원시 데이터 제공 장치(10: 10-1 내지 10-B)는, 광고의 집행이나 관련 자료의 수집을 위해 마련된 서버 장치(들)을 포함할 수 있다. 예를 들어, 원시 데이터 제공 장치(10: 10-1 내지 10-B)는, 원시 데이터 제공 장치(10: 10-1 내지 10-B)에 접속한 단말 장치(11)에 콘텐츠(예를 들어, 웹 페이지, 이미지, 동영상 또는 게임 클라이언트 프로그램 등)를 제공함과 더불어 광고(텍스트, 이미지 및/또는 동영상 등의 형식으로 제작 가능함)를 제공하거나, 제공된 광고에 대한 필요한 통계적 자료(예를 들어, 노출 수(페이지 뷰), 클릭 수 또는 광고 집행 금액 등)를 수집하거나, 및/또는 수집한 통계적 자료를 기반으로 연산을 수행하여 광고 집행과 관련된 데이터를 생성할 수도 있다. 스프레드시트 기반 보고서 생성 시스템(1)은 다수의 원시 데이터 제공 장치(10: 10-1 내지 10-B)를 포함할 수 있으며, 이 경우, 다수의 원시 데이터 제공 장치(10: 10-1 내지 10-B)는 하나 또는 둘 이상의 광고 매체(검색 서비스 제공자, 뉴스 서비스 제공자, 소셜 네트워크 서비스 제공자 또는 게임제작사 등)에 의해 운영되는 것일 수도 있다.
피보고자 단말 장치(20: 20-1 내지 20-A)는, 피보고자에 의해 이용, 소지, 운영 또는 관리되는 적어도 하나의 장치를 포함할 수 있다. 피보고자 단말 장치(20: 20-1 내지 20-A)는 피보고자 등의 조작에 따라 또는 미리 정의된 설정에 따라 자동으로 보고서(200)의 작성을 위해 이용될 템플릿(50)을 생성 또는 결정하거나, 생성된 적어도 하나의 보고서(200)를 수신하거나, 및/또는 수신한 보고서(200)를 외부에 출력할 수도 있다. 다수의 피보고자가 존재하는 경우, 각각의 피보고자는 각각 하나 이상의 피보고자 단말 장치(20: 20-1 내지 20-A)를 이용할 수도 있다.
피보고자 서버 장치(21: 21-A)는, 피보고자에 의해 관리되는 서버 장치로, 피보고자가 단말 장치(11) 등에 제공하고자 하는 서비스를 제공하기 위해 마련된다. 피보고자 서버 장치(21: 21-A)는, 예를 들어, 제품이나 서비스 등의 판매, 제품 또는 서비스의 홍보, 뉴스의 제공, 소셜 네트워크 서비스의 제공 및/또는 게임 프로그램의 제공 등과 같은 적어도 하나의 기능을 수행하기 위한 웹 서버(웹 호스팅 서버를 포함 가능함)나, 데이터 전송을 위한 FTP 서버, 또는 이의 관리를 위한 다른 서버 장치(일례로 데이터베이스 서버 등) 등을 포함할 수 있다. 실시예에 따라서, 피보고자 서버 장치(21: 21-A)도 원시 데이터(121)를 생성 또는 획득하고 이를 보고서 생성 장치(100)로 전달할 수도 있다. 예를 들어, 피보고자 서버 장치(21: 21-A)는, 원시 데이터 제공 장치(10: 10-1 내지 10-B)를 통한 접속 회수나 접속자에 대한 구매 전환 여부를 계수하거나, 및/또는 전체 판매액, 특정 제품이나 특정 시기에서의 판매액 등을 연산하여 데이터를 획득하고, 이를 보고서 생성 장치(100)로 전달할 수 있다. 보고서 생성 장치(100)는 이들 데이터를 원시 데이터(121)로 이용한다.
관리자 단말 장치(30)는 보고서 생성 장치(100)를 관리하거나 동작을 제어하기 위해 마련된다. 관리자 단말 장치(30)는 보고서(200)의 작성을 위해 이용될 템플릿(50)을 생성 또는 결정하고 이를 보고서 생성 장치(100)로 전달할 수도 있고, 보고서 생성 장치(100)에 저장된 기존의 템플릿(50)의 내용의 전부 또는 일부를 변경하거나 또는 기존의 템플릿(50)에 새로운 내용을 추가하여 수정할 수도 있다. 또한, 관리자 단말 장치(30)는 보고서 생성 장치(100)로부터 적어도 하나의 보고서(200)를 전달 받고, 전달 받은 보고서(200)에 대한 수정 또는 보충 등을 수행하여, 피보고자 단말 장치(20) 또는 보고서 생성 장치(100)로 전달할 수도 있다. 관리자 단말 장치(30)는, 예를 들어, 마케팅 대행사 등에 의해 운영되는 것일 수도 있다.
상술한 보고서 생성 장치(100), 원시 데이터 제공 장치(10), 피보고자 단말 장치(20), 피보고자 서버 장치(21) 및 관리자 단말 장치(30) 중 적어도 하나는, 실시예에 따라서, 상술한 처리 및/또는 제어 등을 수행할 수 있도록 특별히 고안된 장치를 이용하여 구현되거나 또는 하나 이상의 정보처리장치를 단독으로 또는 조합하여 이용함으로써 구현될 수도 있다. 하나 이상의 정보처리장치는, 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 서버용 하드웨어 장치, 스마트 폰, 태블릿 피씨, 스마트 시계, 스마트 밴드, 휴대용 게임기, 내비게이션 장치, 두부 장착형 디스플레이(HMD: Head Mounted Display) 장치, 원격 제어 장치, 디지털 텔레비전, 셋 톱 박스, 디지털 미디어 플레이어, 미디어 스트리밍 장치, 인공 지능 스피커, 가전 기기, 유인 이동체, 무인 이동체, 유인 비행체, 무인 비행체, 건설기계, 가정용 로봇, 산업용 로봇, 산업용 기계 또는 군사용 기계 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 설계자나 사용자 등은 상황이나 조건에 따라서 상술한 바 이외에도 데이터 연산 처리 및 제어가 다양한 장치 중 적어도 하나를 상술한 어느 하나의 장치(10 내지 30, 100)로 채용할 수 있다.
실시예에 따라, 보고서 생성 장치(100), 원시 데이터 제공 장치(10), 피보고자 단말 장치(20), 피보고자 서버 장치(21) 및 관리자 단말 장치(30)는, 모두 서로 이종의 정보처리장치를 이용하여 구현될 수도 있고, 모두 동종의 정보처리장치를 이용하여 구현될 수도 있으며, 일부는 서로 동종이고 다른 일부는 서로 이종인 정보처리장치를 이용하여 구현될 수도 있다.
이하 보고서 생성 장치(100)의 동작에 대해 보다 구체적으로 설명한다.
도 2는 스프레드시트 기반 보고서 생성 장치의 일 실시예에 대한 블록도이다.
도 2에 도시된 바에 의하면, 보고서 생성 장치(100)는, 일 실시예에 있어, 통신 모듈(101), 데이터 입출력 모듈(102), 입력부(103), 저장부(105), 출력부(109) 및 프로세서(110)를 포함할 수 있다. 여기서, 통신 모듈(101), 데이터 입출력 모듈(102), 입력부(103) 및 출력부(109) 중 적어도 하나는 실시예에 따라 생략 가능하다.
통신 모듈(101)은 유선 또는 무선 통신 네트워크에 접속하여 외부의 다른 장치(10, 11, 20, 21, 30) 중 적어도 하나와 통신을 수행하고, 이들 장치(10, 11, 20, 21, 30) 중 적어도 하나로부터 명령을 수신하거나 필요한 데이터(일례로 원시 데이터(121)나 템플릿(50) 등)를 획득하거나, 및/또는 이들 장치(10 내지 30) 중 적어도 하나로 요청된 데이터(일례로 보고서(200)) 등을 전달할 수도 있다. 예를 들어, 통신 모듈(101)은 데이터 수집부(120)의 제어에 의하여 원시 데이터(121)를 주기적으로 또는 비주기적으로 전달받아 획득하고, 획득한 데이터를 저장부(105)나 프로세서(110)로 전달할 수도 있다. 실시예에 따라, 통신 모듈(101)은 랜 카드나 무선 통신 모듈 등을 이용하여 구현 가능하다.
데이터 입출력 모듈(102)은 데이터 입출력 단자 및 관련 회로를 포함할 수 있으며, 데이터 입출력 단자 등에 장착된 외부의 저장 장치(일례로 범용 직렬 시리얼 버스(USB: Universal Serial Bus) 메모리 장치 등과 같은 휴대용 메모리 장치)로부터 원시 데이터(121)나 템플릿(50) 등을 직접 전달 받고, 이를 저장부(105)나 프로세서(110)로 전달할 수 있다. 또한 생성된 보고서(200)를 데이터 입출력 모듈(102)에 연결된 외부의 저장 장치로 전달할 수도 있다. 데이터 입출력 모듈(102)이 획득한 원시 데이터(121)나 템플릿(50) 등은 저장부(105)나 프로세서(110)로 전달될 수도 있다.
입력부(103)는 보고서 생성 장치(100)의 사용자의 조작에 의해 명령 또는 데이터 등을 입력 받을 수 있다. 예를 들어, 관리자 등은 입력부(103)를 조작하여 하나 이상의 원시 데이터(121)를 입력하거나, 새로운 템플릿(50)을 제작하거나 및/또는 기존에 저장부(105)에 저장된 템플릿(50)을 수정할 수도 있다. 입력부(103)는, 예를 들어, 키보드, 마우스, 태블릿, 터치 스크린, 스캐너 장치, 영상 촬영 모듈, 동작 감지 센서, 감압 센서, 근접 센서 및/또는 마이크로 폰 등을 포함할 수 있다.
저장부(105)는 보고서 생성 장치(100)의 동작에 필요한 데이터(일례로 원시 데이터(121)나 템플릿(50))나 또는 보고서 생성 장치(100)의 동작 결과 획득된 데이터(예를 들어, 보고서(200))를 일시적 또는 비일시적으로 저장할 수 있다.
일 실시예에 의하면, 저장부(105)는 다수의 템플릿(50), 일례로 제1 템플릿 내지 제K 템플릿(50-1 내지 50-K, K는 2 이상의 자연수)을 저장할 수도 있다. 이 경우, 각각의 템플릿(50-1 내지 50-K)은 모두 서로 상이한 피보고자에 의해 작성된 것일 수도 있고, 일부는 동일한 피보고자에 의해 작성되고 다른 일부는 적어도 하나의 상이한 피보고자에 의해 작성된 것일 수도 있으며, 모두 동일한 피보고자에 의해 제작 또는 수정된 것일 수도 있다. 또한, 적어도 하나의 템플릿(50-1 내지 50-K)은 프로세서(110)의 동작에 의해 자동으로 제작된 것일 수도 있다. 실시예에 따라 템플릿(50-1 내지 50-K) 중 적어도 하나는, 관리자에 의해 작성 또는 수정된 것일 수도 있다.
또한, 저장부(105)는 다수의 보고서(200-11 내지 200-MN, M 및 N 각각은 1 이상의 자연수)를 저장할 수도 있다. 다수의 보고서(200-11 내지 200-MN)는, 다수의 템플릿(50-1 내지 50-K) 중 적어도 하나에 원시 데이터(121)의 전부 또는 일부를 적용하여 생성된 것일 수 있다. 여기서, 특정한 보고서(200-11 내지 200-MN)는, 해당 보고서(200-11 내지 200-MN)를 요청한 특정 피보고자에 대한 원시 데이터(121)를 기반으로 작성될 수 있으며, 해당 원시 데이터(121)를 특정 피보고자에 대응하는 템플릿(50-1 내지 50-K)에 적용하여 작성된 것일 수 있다. 예를 들어, 제M1 보고서 내지 제MN 보고서(200-M1 내지 200-MN) 역시 제M 템플릿(50-M)을 적용하여 제작된 것일 수 있다. 또한, 동일한 템플릿(50-1 내지 50-K)을 적용하여 작성된 보고서(200-11 내지 200-MN)라고 하더라도 그 내용은 작성 주기(일, 주, 월 또는 년 등)나 원시 데이터(121)의 내용이나 출처 등에 따라 그 내용이 상이할 수 있다. 예를 들어, 제11 보고서 내지 제1N 보고서(200-11 내지 200-1N)은 제1 템플릿(50-1)을 기반으로 생성되되, 분석 또는 보고 주기에 맞춰 시간(일, 주, 월 또는 년 등) 순으로 순차 작성되어 그 내용이 서로 상이할 수도 있다.
또한, 저장부(105)는 프로세서(110)의 동작을 위한 적어도 하나의 프로그램(앱, 애플리케이션 또는 소프트웨어 등으로 지칭 가능)을 저장할 수 있다. 저장부(105)에 저장된 프로그램은, 프로그래머 등의 설계자에 의해 직접 작성 또는 수정된 것일 수도 있고, 다른 물리적 기록 매체(외장 메모리 장치나 콤팩트 디스크(CD) 등)으로부터 전달받아 저장된 것일 수도 있으며, 및/또는 유무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망을 통하여 획득 또는 갱신된 것일 수도 있다. 저장부(105)에 저장된 프로그램은 프로세서(110)의 호출에 응하여 프로세서(110)에 제공될 수 있다.
저장부(105)는, 예를 들어, 주기억장치 및 보조기억장치 중 적어도 하나를 포함할 수 있다. 주기억장치는 롬(ROM)이나 램(RAM)과 같은 반도체 저장 매체를 이용하여 구현될 수 있고, 보조기억장치는 플래시 메모리 장치(일례로, SD(Secure Digital) 카드나 솔리드 스테이트 드라이브(SSD: Solid State Drive) 등), 하드 디스크 드라이브(HDD) 또는 광 기록 매체(optical media, 일례로 콤팩트 디스크, 디브이디(DVD) 또는 레이저 디스크 등) 등과 같이 데이터를 영구적 또는 반영구적으로 저장 가능한 적어도 하나의 저장 매체를 이용하여 구현될 수 있다.
출력부(109)는 프로세서(110)의 처리 결과나, 저장부(105)에 저장된 템플릿(50)이나 보고서(200) 등을 시각적 또는 청각적으로 외부에 출력할 수 있다. 출력부(109)는, 예를 들어, 디스플레이, 프린터 장치, 스피커 장치 또는 영상 출력 단자 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
프로세서(110)는 템플릿(50: 50-1 내지 50-K) 중 적어도 하나와, 수집한 원시 데이터(121)를 이용하여, 대응하는 적어도 하나의 보고서(200: 200-11 내지 200-MN)을 생성할 수 있다. 프로세서(110)는, 예를 들어, 중앙 처리 장치(CPU: Central Processing Unit), 그래픽 처리 장치(GPU: Graphic Processing Unit), 마이크로 컨트롤러 유닛(MCU: Micro Controller Unit), 애플리케이션 프로세서(AP: Application Processor) 또는 전자 제어 유닛(ECU: Electronic Controlling Unit) 등과 같이 연산 및 제어 처리를 수행할 수 있는 적어도 하나의 정보 처리 장치 등을 포함할 수 있다.
도 2에 도시된 바에 따르면, 일 실시예에 있어서, 프로세서(110)는 데이터 수집부(120), 데이터 가공부(130) 및 템플릿 처리부(140)를 포함할 수 있고, 필요에 따라 템플릿 생성부(141)를 더 포함할 수 있다. 여기서, 데이터 가공부(130)는 생략되는 것도 가능하다. 데이터 수집부(120), 데이터 가공부(130), 템플릿 처리부(140) 및 템플릿 생성부(141)는 논리적으로 구분되는 것일 수도 있고 및/또는 물리적으로 구분되는 것일 수도 있다. 모두 논리적으로 구분되는 경우, 데이터 수집부(120), 데이터 가공부(130), 템플릿 처리부(140) 및 템플릿 생성부(141)는 하나의 물리적 정보 처리 장치를 이용하여 구현될 수도 있다.
데이터 수집부(120)는 원시 데이터 제공 장치(10: 10-1 내지 10-B 중 적어도 하나)로부터 전달된 원시 데이터(121)를 수집할 수 있다. 예를 들어, 데이터 수집부(120)는 원시 데이터 제공 장치(10)가 제공하는 응용 프로그램 프로그래밍 인터페이스를 이용하여 원시 데이터(121)를 수집할 수도 있다. 보다 구체적으로 데이터 수집부(120)는 통신 모듈(101)을 제어하여 원시 데이터 제공 장치(10)에 접근하고, 소정의 인증키 등을 이용하여 인증을 수행한 후(생략 가능함), 원시 데이터 제공 장치(10)가 가진 데이터의 전부 또는 일부에 대해 전송 요청을 전달한다. 여기서, 원시 데이터 제공 장치(10)가 가진 데이터는 광고와 관련된 데이터를 포함할 수도 있으며, 광고와 관련된 데이터는, 일례로, 업체 명, 캠페인 명, 광고 노출 상태, 접속 인터넷 주소, 입찰 가격, 노출 수, 클릭 수, 클릭률 또는 집행 비용 등을 포함할 수 있다. 상술한 전송 요청에 응하여 원시 데이터 제공 장치(10)는 데이터(들)(121)를 전송하고, 데이터 수집부(120)는 이들 데이터(121)를 모두 또는 선별하여 획득함으로써 원시 데이터(121)를 수집할 수 있게 된다. 데이터 수집부(120)가 획득한 원시 데이터(121)는 데이터 가공부(130)로 전달될 수도 있고, 또는 실시예에 따라 템플릿 처리부(140)로 직접 전달될 수도 있다.
도 3은 데이터 가공부의 동작의 일례를 설명하기 위한 도면이다.
데이터 가공부(130)는 도 3에 도시된 바와 같이 원시 데이터(121)를 템플릿에 적용하기 적당한 형태의 데이터(131, 이하 변환 데이터)로 변환하여 획득할 수 있다. 여기서, 변환 데이터(131)는 제이슨(json: JavaScript Object Notation) 형식으로 작성된 것일 수 있다. 예를 들어, 원시 데이터(121)가 업체명, 캠페인 명, 상태, 인터넷 주소(URL: Uniform Resource Locator), 기본 입찰가, 날짜, 노출수, 클릭 수, 클릭률 및 텍스트 등에 적용된 스타일 등과 같이 다수의 항목과, 해당 항목 각각에 대응하는 다수의 데이터를 갖는 경우, 데이터 가공부(130)는 적어도 하나의 항목과 해당 항목에 대응하는 데이터를 각각 추출하고, 추출된 항목을 키(key, 이름(name) 등으로 지칭 가능)로 결정하고, 추출된 항목에 대응하는 데이터를 키에 대한 값(value)로 결정한 후, 서로 대응하는 키와 값을 콜론(:)으로 연결 및 조합하여 키와 값의 조합인 제이슨 데이터(들)(일례로 "name": "xx")을 획득한다. 이 경우, 키나 값이 문자(예를 들어 업체 명 등)인 경우에는 구분을 위해 키나 값의 전후에 큰 따옴표("")가 더 부가될 수도 있다. 이어서, 데이터 가공부(130)는 획득한 제이슨 데이터(들)을 임의적으로 또는 미리 정의된 바에 따라 나열하여 하나 이상의 객체(들)(일례로 {"name : "xx", "campmate": "ccc" 등})을 획득할 수 있다. 이 경우, 서로 상이한 제이슨 데이터(들) 각각은 쉼표(,)를 통해 구분될 수 있다. 객체(들)이 획득되면, 데이터 가공부(130)는 객체(들)을 배열하여 조합한다. 이에 따라 원시 데이터(121)에 대응하는 제이슨 파일 형식의 변환 데이터(131)가 획득된다. 실시예에 따라서, 데이터 가공부(130)는 원시 데이터(121) 내의 모든 항목을 이용하여 변환 데이터(131)를 획득할 수도 있고, 또는 모든 항목 중 불필요한 항목을 제외한 나머지 일부 항목만을 이용하여 변환 데이터(131)를 획득할 수도 있다. 또한, 데이터 가공부(130)는 원시 데이터(121) 내의 문자나 숫자에 대한 스타일(예를 들어, 폰트, 글자 크기, 자간 또는 장평 등)에 대한 데이터(일례로 "style": "새스타일3" 등)를 포함하여 변환 데이터(131)를 생성할 수도 있다. 획득된 변환 데이터(131)는 템플릿 처리부(140)로 전달될 수 있다.
템플릿 처리부(140)는 변환 데이터(131)를 적어도 하나의 템플릿(50: 50-1 내지 50-K 중 적어도 하나)에 적용하여 적어도 하나의 보고서(200: 200-11 내지 200-MN 중 적어도 하나)를 생성할 수 있다. 보다 구체적으로 템플릿 처리부(140)는, 변환 데이터(131) 기반의 보고서(200)를 전달받을 하나 이상의 피보고자를 결정하고, 해당 피보고자에 대응하는 하나 이상의 템플릿(50), 일례로 제1 템플릿(50-1)을 저장부(105)로부터 호출하고, 변환 데이터(131) 내의 데이터 모든 또는 일부의 데이터 각각을 호출된 제1 템플릿(50-1)의 대응 부분에 기록함으로써 하나 이상의 보고서(200), 일례로 제11 보고서(200-11)를 획득할 수 있다. 제1 템플릿(50-1)이 스프레드시트 형식으로 마련되고 변환 데이터(121)가 제이슨 파일 형식으로 생성되었다면, 데이터가 기록될 제1 템플릿(50-1)의 대응 부분은 스프레드시트 내의 적어도 하나의 셀을 포함할 수 있다. 여기서, 셀은 변환 데이터(131)의 키(key)를 이용하여 결정될 수 있다. 해당 셀(즉, 대응 부분)에 입력될 데이터는 해당 키에 대응하는 값(value)일 수 있다.
이하 템플릿에 대해 보다 구체적인 예를 설명하고, 이들 템플릿(50)을 이용하여 템플릿 처리부(140)가 보고서(200)를 생성하는 과정을 더욱 상세히 설명하도록 한다.
도 4는 템플릿의 일 실시예를 설명하기 위한 제1 도이고, 도 5는 템플릿의 일 실시예를 설명하기 위한 제2 도이다.
도 4 및 도 5에 도시된 바를 참조하면, 템플릿(50)은 테이블 형식으로 마련된 시트(51, 워크시트로도 지칭 가능함)를 포함할 수 있다. 시트(51)는 다수의 열과 다수의 행으로 배열되는 다수의 셀을 가질 수 있으며, 각 열과 행은 각 열과 행마다 알파벳 및/또는 숫자 등과 같이 식별할 수 있는 기호가 지정되어 있다. 이에 따라 각각의 셀은 이들 알파벳 및/또는 숫자의 단독 사용 또는 조합에 의해 할당되는 셀 주소를 가지게 된다. 실시예에 따라 템플릿(50)은 둘 이상의 시트(51)를 포함하여 마련되는 것도 가능하다. 이 경우, 둘 이상의 시트(51)의 내용은 모두 상이할 수도 있고, 일부는 상이하고 일부는 동일할 수도 있으며, 모두 동일할 수도 있다. 또한, 둘 이상의 시트(51) 중 적어도 하나는, 예를 들어, 상세한 내용을 포함하고, 다른 하나는 이들 적어도 하나의 시트의 내용을 요약한 내용을 포함할 수도 있다. 하나 또는 둘 이상의 시트(51)는 하나의 스프레드시트 파일에 포함되어 생성될 수도 있고, 다수의 스프레드시트 파일로 분리되어 생성될 수도 있다.
템플릿(50)에는 하나 이상의 구역, 일례로 제1 구역(52) 및 제2 구역(53)이 마련될 수 있으며, 각각의 구역(52, 53)은 인접한 하나 이상의 셀(들)의 조합으로 이루어진다. 이들 구역(52, 53)은 각각 소정의 정보를 표시하기 위해 마련된 것일 수 있다. 예를 들어, 제1 구역(52)에는 생성될 리포트(200)에 대한 기본적인 정보(일례로 광고주, 캠페인 명칭, 광고 기간, 총 광고비 및/또는 광고 집행 매체 등)가 기록 및 표시될 수 있으며, 피보고자가 정보의 파악을 용이하게 할 수 있도록 항목 부분(52A, 기본 정보 내의 각각의 항목의 명칭이 입력되는 셀)과 데이터 부분(52B, 해당 항목에 대한 문자 또는 숫자 등의 값이 입력되는 부분)을 포함할 수 있다. 또한, 제2 구역(53)에는, 예를 들어, 광고 등과 같이 보고 대상이 되는 세부적인 항목(예를 들어, 매체, 집행 금액, 예상 노출량, 집행 노출수, 클릭 수 또는 조회수 등) 및 원시 데이터 제공 장치(10)로부터 획득되고 이들 세부적인 항목에 대응하는 구체적인 데이터들이 기록 및 표시될 수 있다.
일 실시예에 있어, 데이터 부분(52B)이나 제2 구역(53)의 적어도 하나의 셀(52B1, 53A, 53B)에는 해당 셀에서 기록 및 출력될 값을 결정하기 위한 명령문(52B2, 53A1, 53A2, 53B1, 이하 셀 명령문)이 존재할 수 있다. 셀 명령문(52B2, 53A1, 53A2, 53B1)은 특정한 동작을 수행하기 위해 템플릿 처리부(140) 등에 의해 처리될 명령, 지시 또는 함수 등을 포함한다. 셀 명령문(52B2, 53A1, 53A2, 53B1)은, 해당 셀에 기록된 문자나 숫자가 셀 명령문임을 식별할 수 있도록, 해당 문자나 숫자의 전단 또는 후단에 부착되는 식별 기호(예를 들어, $, $. 또는 ! 등, 이하 셀 명령문 식별 기호)를 더 포함할 수도 있다. 셀 명령문(52B2, 53A1, 53A2, 53B1)의 전부 또는 일부는, 피보고자 또는 관리자 등에 의해 입력된 것일 수도 있고, 또는 미리 정의된 학습 모델에 의해 결정되어 생성된 것일 수도 있다.
일 실시예에 따르면, 셀 명령문(52B2)은, 원시 데이터(121) 또는 변환 데이터(131) 내의 다수의 값 중에서 선택된 적어도 하나의 값을 해당 셀 내에 그대로 출력하기 위한 것일 수 있다. 이 경우, 셀 명령문(52B2)은, 일 실시예에 있어서, 도 4에 도시된 바와 같이, 셀 명령문 식별 기호에, 셀 내에서 출력될 값에 대한 구체적 명칭(항목 등)을 부가하여 마련될 수도 있다. 예를 들어, 제1 구역(52)의 데이터 부분(52B, 즉 셀 B2 내지 B6)에는, 적어도 하나의 셀 명령문(52B2)이 존재할 수 있으며, 보다 상세하게 예를 들어, 좌측의 항목 부분(52A, 즉 셀 A2 내지 A6)의 내용에 대응하여, 광고주 명칭 출력에 대한 셀 명령문(52B2, $.advertiser), 캠페인 명칭 출력에 대한 셀 명령문($.campaign_name), 광고기간 출력에 대한 셀 명령문($.time_range), 총광고비 출력에 대한 셀 명령문($.total_spend) 및 집행 매체 출력에 대한 셀 명령문($.media)이 최상단에 위치한 셀(52B2)로부터 순차적으로 존재할 수 있다. 여기서, 광고주 명칭 출력에 대한 셀 명령문(52B2, $.advertiser)은, 광고주 명칭 출력에 대한 셀 명령문(52B2, $.advertiser)이 기재된 셀(52B1)에 광고주의 명칭에 대한 값(문자 및/또는 숫자 등을 포함 가능함)의 기록 및 출력을 지시한다. 이에 따라 해당 셀(52B1)에는 변환 데이터(131)인 media로부터 추출된 광고주의 명칭이 그대로 입력, 기록 및 표시된다. 캠페인 명칭 출력에 대한 셀 명령문($.campaign_name)은 변환 데이터(131)로부터 획득된 캠페인 명칭이 해당 셀에 그대로 기록 및 출력되도록 하고, 광고기간 출력에 대한 셀 명령문($.time_range)은 획득된 광고 기간에 대한 값이 기록 및 출력되도록 한다. 또한, 총광고비 출력에 대한 셀 명령문($.total_spend)은 변환 데이터(131)로부터 획득된 총광고비가 기록 및 출력되도록 하며, 집행 매체 출력에 대한 셀 명령문($.media)은 해당 광고가 집행된 매체의 명칭이 기록 및 출력되도록 할 수 있다.
또한, 도 5에 도시된 바와 같이, 셀 명령문(53B1)은 원시 데이터(121) 또는 변환 데이터(131) 내의 하나 이상의 값에 대해 미리 정의된 연산 처리를 수행하고 그 결과를 출력하기 위한 것일 수도 있다. 여기서, 연산 처리는, 예를 들어, 원시 데이터(121) 또는 변환 데이터(131) 내의 둘 이상의 값에 대한 합 연산이나 차 연산 또는 이들 값들에 대한 평균 값 연산 등을 포함할 수 있다. 일 실시예에 의하면, 셀 명령문(53B1)는, 소정 명령어(53B1a, 이하 셀 명령어)와, 셀 명령어(53B1a)에 대응하는 적어도 하나의 파라미터(53B1b, 53B1c)를 더 포함할 수 있다. 이 경우, 셀 명령문 식별 기호는 셀 명령어(53B1a)의 전단에 부가되어 있을 수 있다.
셀 명령어(53B1a)는, 수행될 연산 처리를 지시하는 함수 등을 포함할 수 있으며, 예를 들어, 합산 함수($.sum), 값 출력 함수($.out), 링크 출력 함수($.link), 평균 연산 함수($.sum_div), 이미지 출력 함수($.image) 또는 병합 함수($.merge_each) 등을 포함 가능하다. 여기서, 합산 함수($.sum)는 주어진 데이터의 값의 합 연산을 수행하여 출력하도록 정의되고, 값 출력 함수($.out)는 데이터의 값(일례로 숫자)이 그대로 출력하도록 정의되며, 링크 출력 함수($.link)는 주어진 데이터에 대한 링크(link, 하이퍼링크를 포함함)를 출력하도록 정의되고, 평균 연산 함수($.sum_div)는 주어진 데이터들에 대한 합 연산을 수행한 후 이에 대한 나누기 연산을 수행하도록 정의되고, 이미지 출력 함수($.image)는 데이터를 이미지 형식으로 출력하도록 정의되며, 병합 함수($.merge_each)는 특정 방향(예를 들어, 하단 방향)의 하나 이상의 셀을 병합하고 병합 결과를 출력하도록 정의된 것일 수 있다.
적어도 하나의 파라미터는, 대상 데이터를 독출할 대상(53B1b, 이하 데이터 독출 대상)과, 데이터 독출 대상(53B1b)로부터 획득할 대상 데이터에 대한 정보(53B1c)를 포함할 수도 있다. 여기서, 대상 데이터는 셀 명령어(53B1a)에 의해 처리될 구체적인 데이터를 의미한다. 실시예에 따라서, 파라미터(53B1b, 53B1c)를 셀 명령어(53B1a)와 구분하기 위해 적어도 하나의 기호(일례로 소괄호 등)가 파라미터(53B1b, 53B1c)의 전단 및 후단 중 적어도 하나에 배치될 수도 있다. 이에 따라 셀 명령문(53B1)은, 셀 명령문 식별 기호, 셀 명령어(53B1a), 소정의 기호, 파라미터(즉, 데이터 독출 대상(53B1b) 및 대상 데이터(53B1c)) 및 소정의 기호를 순차적으로 포함하게 된다. 예를 들어, 도 5의 셀(53B)에 기재된 바와 같이, 셀 명령문(53B1)는 $.sum('insta_total', 'views')의 형태로 주어질 수 있다.
데이터 독출 대상(53B1b)은, 대상 데이터를 독출할 원시 데이터(121) 또는 변환 데이터(131)를 포함할 수 있다. 예를 들어, 도 5에 도시된 셀 명령문(53B1)의 $.sum('insta_total', 'views')에서 'insta_total'은 데이터 독출 대상(53B1b)를 의미한다. 따라서, 대상 데이터는 'insta_total'라는 원시 데이터(121) 또는 변환 데이터(131)로부터 추출되게 된다. 대상 데이터에 대한 정보(53B1c)는 원시 데이터(121) 또는 변환 데이터(131) 내의 다양한 종류의 데이터 중에서 대상 데이터가 무엇인지 구체적으로 지정하는 것으로, 대상 데이터에 대한 변수명이나 항목 등으로 표현될 수 있다. 예를 들어, 도 5의 셀 명령문(53B1)의 $.sum('insta_total', 'views')에서 'view'는 대상 데이터에 대한 정보(53B1)로, 대상 데이터가 페이지 뷰라는 항목에 해당하는 데이터임을 의미한다. 다시 말해서, 이는 원시 데이터(121) 또는 변환 데이터(131)인 'insta_total)로부터 페이지 뷰에 대한 계수 결과를 대상 데이터로 이용하라는 것을 나타낸다.
이외에도 셀 명령문(52B2, 53A1, 53A2, 53B1)은, 필요에 따라 링크가 지시하는 값 호출 등과 같은 다양한 종류의 명령어를 포함할 수도 있다.
또한, 실시예에 따라서, 하나의 셀에는 둘 이상의 셀 명령문이 존재할 수도 있다. 이 경우, 둘 이상의 셀 명령문은 소정의 구분자(예를 들어, 수직선 기호(|)를 이용하여 구분될 수도 있다. 둘 이상의 셀 명령문(예를 들어, $.merge_each('data', 'url')|$.image('data','url'))이 존재하는 셀에는, 둘 이상의 셀 명령문에 의해 처리된 결과(예를 들어, 데이터로부터 추출된 링크의 병합 결과 및 데이터로부터 추출된 링크의 이미지(들))가 동시에, 부분적으로 또는 순차적으로 출력될 수 있다.
프로세서(110)의 템플릿 처리부(140)는, 일 실시예에 의하면, 상술한 시트(51) 내의 적어도 하나의 셀 명령문(52B2, 53A1, 53A2, 53B1)을 기반으로 해당 템플릿(50)에 대응하는 보고서(200)를 획득할 수 있다. 이 경우, 실시예에 따라서, 후술하는 명령 기록부(60: 61, 62, 63)가 더 이용될 수도 있다.
구체적으로 예를 들어, 템플릿 처리부(140)는 먼저 시트(51)의 각 셀(52B1, 53A, 53B 등)을 임의적으로 또는 미리 정의된 순서로 열람하면서, 특정한 셀(52B1, 53A, 53B)에 셀 명령문(52B2, 53A1, 53A2, 53B1)이 존재하는지 확인한다. 셀 명령문(52B2, 53A1, 53A2, 53B1)의 존재 확인은, 후술하는 명령 기록부(60: 61, 62, 63)의 존재 여부 확인과 함께 수행될 수도 있다. 셀 명령문(52B2, 53A1, 53A2, 53B1)의 존재 확인은 상술한 셀 명령문 식별 기호를 이용하여 수행될 수 있다. 구체적으로 템플릿 처리부(140)는 각 셀(52B1, 53A, 53B)에 기재된 문자나 기호에 대해 해석을 수행하고, 해석 결과 셀 명령문 식별 기호가 존재하면, 해당 셀(52B1, 53A, 53B)에 셀 명령문(52B2, 53A1, 53A2, 53B1)이 존재한다고 판단할 수 있다. 만약 적어도 하나의 셀(52B1, 53A, 53B 등)에 적어도 하나의 셀 명령문(52B2, 53A1, 53A2, 53B1)이 존재하면, 템플릿 처리부(140)는 셀 명령문(52B2, 53A1, 53A2, 53B1)에 대한 해석을 수행한다.
템플릿 처리부(140)는 셀 명령문(52B2, 53A1, 53A2, 53B1) 중 적어도 하나를 해석하고, 만약 셀 명령문이 미리 정의된 연산 처리를 수행하기 위한 셀 명령문(53B1)라면, 해석된 셀 명령문(53B1) 내의 함수(53B1a), 데이터 독출 대상(53B1B) 및 대상 데이터 대한 정보(53B1C)를 기반으로, 데이터 독출 대상(53B1B)으로부터 소정의 대상 데이터를 획득하고, 대상 데이터를 함수(53B1a)에 적용하여 연산 결과를 획득한 후, 이를 해당 셀에 기록 및 표시하도록 한다. 예를 들어, 도 5의 셀(53B)에 기재된 바와 같이, 셀 명령문(53B1)가 $.sum('insta_total', 'views')의 형태로 주어진 경우, 템플릿 처리부(140)는 이를 분석하여 'inst_total'로부터, 'inst_total' 내의 여러 값 중 노출수(view)를 나타내는 값(들)을 하나 이상 추출하여 획득한 후, 이들 노출 수를 나타내는 값(들)에 대한 합 연산을 수행하고, 연산 결과를 해당 셀(53B)에 기록 및 출력한다.
한편, 셀 명령문이 원시 데이터(121) 또는 변환 데이터(131) 내의 값을 그대로 출력하기 위한 셀 명령문(52B2)라면, 템플릿 처리부(140)는 후술하는 바와 같이 명령 기록부(60: 61, 62, 63)에 대한 해석 결과를 기반으로 해당 셀에 대응하는 값을 해당 셀에 그대로 기록 및 출력할 수 있다.
셀 명령문(52B2, 53A1, 53A2, 53B1)의 존재 판단을 위한 문자 등의 해석이나, 또는 구체적인 셀 명령문(52B2, 53A1, 53A2, 53B1)의 해석은, 예를 들어, 파싱 알고리즘을 통해 수행될 수도 있다. 파싱 알고리즘은 소정의 학습 모델을 기반으로 구현된 것일 수도 있다. 여기서, 소정의 학습 모델은, 예를 들어, 심층 신경망(DNN: Deep Neural Network)이나 콘볼루션 신경망(CNN: Convolutional Neural Network) 등을 기반으로 구현된 것일 수 있으나, 이에 한정되지는 않는다.
일 실시예에 따르면, 각 구역(52, 53) 중 적어도 하나에는, 적어도 하나의 명령 기록부(60: 61, 62, 63)가 부가되어 있을 수 있다. 명령 기록부(60: 61, 62, 63)는, 각 구역(52, 53) 내의 특정한 적어도 하나의 셀(52B1, 53A1, 53A2 등)에 연결되어 각 구역(52, 53)에 첨부될 수 있다. 이 경우, 명령 기록부(60: 61, 62, 63)의 위치는 첨부된 해당 셀(52B1, 53A1, 53A2 등)의 셀 주소를 이용하여 정의될 수도 있다.
명령 기록부(60: 61, 62, 63)가 첨부된 셀(52B1, 53A1, 53A2 등)에는 명령 기록부(60: 61, 62, 63)의 첨부를 나타내기 위한 적어도 하나의 표식(61-1, 62-1, 63-1)이 추가되어 있을 수도 있다. 이 경우, 표식(61-1, 62-1, 63-1)은 각각의 명령 기록부(61, 62, 63)에 대응하여 마련된다. 실시예에 따라 표식(61-1, 62-1, 63-1)은 시각적으로 외부에 표현될 수도 있으며, 예를 들어, 특정한 색상을 갖는 특정 모양(일례로 직삼각형, 원 또는 마름모 등을 포함 가능하며, 실시예에 따라 그 형태는 고정적일 수도 있고 가변적일 수도 있다)으로 표시될 수도 있다. 명령 기록부(60: 61, 62, 63)는, 예를 들어, 외부에 표시되는 경우, 정사각형, 직사각형, 둥근 모서리의 사각형, 원 또는 구름 등 소정의 형상으로 표현될 수 있다. 이 경우, 특정 모양의 내측 공간에는 후술하는 바와 같이 템플릿 처리부(140)에 의해 처리될 명령 또는 지시(80: 81, 82, 83, 이하 부가 명령문)가 기재 및 표시될 수도 있다. 또한, 실시예에 따라, 특정 표식(61-1, 62-1, 63-1)과 해당 표식(61-1, 62-1, 63-1)에 대응하는 명령 기록부(60: 61, 62, 63) 사이의 연결을 표현하는 소정의 도형(예를 들어, 선분 또는 삼각형 등)이 명령 기록부(60: 61, 62, 63)의 외측에 더 마련되는 것도 가능하다. 이는 특정한 셀(52B1, 53A1, 53A2 등)에 부가된 명령 기록부(60: 61, 62, 63)를 시각적으로 명확하게 표현한다. 이에 따라 관리자나 피보고자는 각각의 구역(52, 53)에 대해 처리될 명령(80: 81, 82, 83)을 쉽게 확인하고, 필요에 따라 수정하거나 새로운 조건이나 범위 등을 쉽게 추가할 수 있게 된다.
일 실시예에 의하면, 각각의 명령 기록부(60: 61, 62, 63)는 수행될 부가 명령문(80: 81, 82, 83)을 하나 이상 포함할 수 있다. 부가 명령문(80: 81, 82, 83)은 해당 명령 기록부(60: 61, 62, 63)가 추가된 셀(52B1, 53A1, 53A2)에 대해서만 수행될 수도 있고, 및/또는 해당 셀(52B1, 53A1, 53A2)을 포함하는 구역(52, 53)의 전부나 일부에 대해 수행될 수도 있다.
부가 명령문(80: 81, 82, 83)은 해당 문자나 기호가 부가 명령문임을 식별할 수 있도록 전단에 부가되는 소정의 기호(이하 부가 명령문 식별 기호)를 포함하거나 및/또는 후단에 부가 명령문 식별 기호와 동일하거나 상이한 다른 부가 명령문 식별 기호를 더 포함할 수도 있다. 부가 명령문 식별 기호는, 예를 들어, 중괄호({})를 포함할 수 있다. 이 경우, 부가 명령문(80: 81, 82, 83)의 앞에는 왼쪽 중괄호({)가 배치되고, 부가 명령문(80: 81, 82, 83)의 뒤에는 우측 중괄호(})가 배치될 수 있다. 다시 말해서, 부가 명령문(80: 81, 82, 83)은 두 개의 중괄호({}) 사이에 배치될 수 있다. 이에 따라 명령 기록부(60: 61, 62, 63) 내에서 부가 명령문(80: 81, 82, 83)이 식별 가능하게 된다.
부가 명령문(80: 81, 82, 83)은, 일 실시예에 있어서, 도 4 및 도 5에 도시된 것처럼, 수행될 동작이나 기능을 나타내기 위한 명령어(81A, 82A, 83A, 이하 부가 명령어) 및 파라미터(81B, 82B, 82C, 81C, 82C, 83C) 등을 포함할 수 있다. 파라미터(81B, 82B, 82C, 81C, 82C, 83C)는, 예를 들어, 부가 명령어의 처리 대상, 일례로 데이터를 독출할 데이터 독출 대상(81B, 82B, 82C)이나, 부가 명령어에 관한 조건, 일례로 독출한 데이터를 기록할 범위(81C, 82C, 83C, 이하 데이터 기록 범위) 등을 포함할 수 있다.
부가 명령어(81A, 82A, 83A)는 데이터 등에 대해 수행될 명령의 구체적인 내용을 정의한다. 예를 들어, 도 4 및 도 5의 부가 명령어(81A, 82A, 83A) area는 데이터 기록 범위(81C, 82C, 83C)에 데이터 독출 대상(81B, 82B, 83B)으로부터 획득한 데이터(일례로 하나의 건(단건)에 대한 값)을 기록하라는 단건 값 출력 명령을 의미한다.
데이터 독출 대상(81B, 82B, 83B) 및 데이터 범위(81C, 82C, 83C)는 부가 명령어(81A, 82A, 83A)의 후단에 순차적으로 또는 이와 상이한 순서로 배치될 수 있다. 데이터 독출 대상(81B, 82B, 82C)과 데이터 기록 범위(81C, 82C, 83C)에는, 부가 명령어(81A, 82A, 83A)와 구분될 수 있도록, 적어도 하나의 기호(일례로 소괄호)가 이들의 앞 및 뒤 중 적어도 하나에 배치될 수도 있다. 데이터 독출 대상(81B, 82B, 82C)과 데이터 기록 범위(81C, 82C, 83C) 사이에는 이들 각각을 구분하기 위한 구분자(일례로 쉼표, 마침표, 느낌표, 콜론 또는 세미콜론 등)가 더 존재할 수도 있다. 데이터 독출 대상(81B, 82B, 82C) 또는 데이터 기록 범위(81C, 82C, 83C)는, 문자(문자열) 및 숫자 중 적어도 하나를 포함하여 형성될 수도 있으며, 이 경우, 문자와 숫자 간의 구분을 위해 문자(일례로 media)의 양쪽에는 적어도 하나의 기호 구분자(일례로 홑따옴표나 쌍따옴표 등)가 더 부가될 수도 있다(일례로, 'media').
데이터 독출 대상(81B, 82B, 82C)은 상술한 셀 명령문(52B2, 53A1, 53A2, 53B1)와 동일하게 템플릿 처리부(140)가 구체적인 값(들)을 읽어 드릴 원시 데이터(121) 또는 변환 데이터(131)를 지시할 수 있다. 예를 들어, 도 4 및 도 5의 'media'(81A), 'media_A'(81B) 및 'media_B'(81C)는 해당 명칭을 갖는 원시 또는 변환 데이터(121, 131)를 나타내며, 처리될 데이터는 이들 각각으로부터 획득된다. 여기서, 'media'라는 명칭의 원시 또는 변환 데이터(121, 131)는, 예를 들어, 피보고자나 매체 등에 대한 포괄적인 정보를 갖는 데이터일 수도 있다. 'media_A'라는 명칭의 원시 또는 변환 데이터(121, 131)는 광고 매체 A로부터 획득한 정보를 갖는 데이터일 수 있으며, 'media_B'(81C)라는 명칭의 원시 또는 변환 데이터(121, 131)는 광고 매체 B로부터 획득한 정보를 갖는 데이터일 수 있다.
데이터 기록 범위(81C, 82C, 83C)는 시트(51) 내에서 값이 기록될 셀(들)을 나타낸다. 보다 구체적으로 예를 들어, 도 4 및 도 5의 데이터 기록 범위(81C, 82C, 83C)의 end_cell은 기록이 종료될 셀을 의미한다. 다시 말해서, end_cell='B6'는 명령 기록부(61)가 부가된 셀(B2, 즉 52B1)부터 셀 B6까지 독출된 값(들)(문자, 기호, 도형 및/또는 숫자 등을 포함 가능함)을 기록하라는 것을 나타낸다. 마찬가지로 end_cell='B9' 및 end_cell='B10'은 각각 명령 기록부(62, 63)가 부가된 셀로부터 셀 B9 및 셀 B10까지 독출한 값을 기록하라는 것을 의미한다. 후자의 경우, 명령 기록부(62, 63) 각각이 부가된 셀이 셀 B9 및 셀 B10이므로, 오직 셀 B9 및 셀 B10에만 값이 기록되게 된다.
상술한 명령 기록부(60: 61, 62, 63)는 스프레드시트가 제공하는 메모나 코멘트 기능 등을 이용하여 구현되는 것도 가능하다.
프로세서(110)의 템플릿 처리부(140)는 적어도 하나의 시트(51)를 갖는 템플릿(50) 내의 각각의 명령 기록부(60: 61, 62, 63)를 이용하여, 해당 템플릿(50)에 대응하는 보고서(200)를 획득한다. 이 경우, 필요에 따라 템플릿 처리부(140)는 적어도 하나의 셀 명령문(52B2)를 더 이용하는 것도 가능하다.
상세하게 예를 들어, 템플릿 처리부(140)는 먼저 시트(51)의 각 셀을 열람하면서, 해당 시트(51) 내에 명령 기록부(60: 61, 62, 63)가 존재하는지 여부를 판단하고, 명령 기록부(60: 61, 62, 63)가 존재하는 특정한 셀(52B1, 53A1, 53A2 등)이 검출되면, 그 명령 기록부(60: 61, 62, 63)에 적어도 하나의 부가 명령문(80: 81, 82, 83)이 존재하는지를 판단한다. 부가 명령문(80: 81, 82, 83)의 존부 판단은 상술한 부가 명령문 식별 기호(일례로 중괄호 등)를 이용하여 수행될 수 있다.
만약 부가 명령문(80: 81, 82, 83)이 명령 기록부(60: 61, 62, 63)에 존재하면, 템플릿 처리부(140)는 부가 명령문(80: 81, 82, 83)에 대한 해석을 수행한다. 부가 명령문(80: 81, 82, 83)의 해석은, 실시예에 따라, 기 학습된 파싱 알고리즘을 통해 수행될 수도 있다.
템플릿 처리부(140)는 각 부가 명령문(80: 81, 82, 83)의 해석 결과에 따라 부가 명령어(81A, 82A, 83A)와, 데이터 독출 대상(81B, 82B, 82C)과, 데이터 기록 범위(81C, 82C, 83C)를 결정하고, 이에 응하여 보고서(200) 생성 동작을 수행한다. 예를 들어, 제1 명령 기록부(61)로부터 부가 명령문(80) area('media',end_cell='B6')}이 추출되면, 템플릿 처리부(140)는 해석 결과에 따라 데이터 기록 범위(81C)를 결정하고, 데이터 기록 범위(81C)에 속하는 각각의 셀(들)(예를 들어, 셀 B2 및 셀 B6 사이의 모든 셀들)을 결정하고, 결정된 각각의 셀(들)의 셀 명령문(52B2 등)을 기반으로 데이터 독출 대상(81B)인 데이터(즉, 변환 데이터(131)인 media)에서 해당 셀에 기록될 단건의 값(이하 단건 값, 일례로 대상 데이터)들을 획득한다. 도 4에 도시된 것처럼, 범위(81C) 내의 셀들에 광고주의 명칭 출력에 대한 셀 명령문($.advertiser), 캠페인 명칭 출력에 대한 셀 명령문($.campaign_name), 광고기간 셀 출력에 대한 명령어($.time_range), 총광고비 출력에 대한 셀 명령문($.total_spend) 및 집행 매체 출력에 대한 셀 명령문($.media)이 순차 존재한다면, 템플릿 처리부(140)는 변환 데이터(131) media로부터 광고주의 명칭, 캠페인 명칭, 광고기간, 총광고비 및 집행 매체 각각에 대응하는 값(예를 들어, 도 3에 도시된 변환 데이터(131)의 콜론(:) 우측에 위치하는 값(들))을 획득하고, 이어서 각 셀의 셀 명령문을 참조하여, 획득한 값을 해당 값에 대응하는 셀에 기록한다. 이 경우, 템플릿 처리부(140)는, 추출된 각각의 값이 원시 데이터(121) 또는 변환 데이터(131) 내에서 기록된 순서와 무관하게, 셀 명령문에 따라서 각각의 값들을 대응하는 각각의 셀에 입력할 수도 있다. 이에 따라 제1 구역(52)의 데이터 부분(52B)에, 항목 부분(52A)의 각각의 항목(일례로 광고주, 캠페인명, 광고기간, 총광고비 및 집행매체)에 대응하는 값이 적절한 위치에 입력 및 기록될 수 있게 된다.
이하 상술한 부가 명령문(80)의 다양한 일례를 더 설명하도록 한다.
도 6은 다건 값 출력 명령의 일례를 설명하기 위한 도면이다.
도 6에 도시된 바에 의하면, 템플릿(51)은, 명령 기록부(64, 이하 제1 명령 기록부)와, 제1 명령 기록부(64)가 첨부된 셀(54A)을 포함하는 시트(54)일 수 있다. 상술한 것처럼 셀(54A)에는 해당 셀(54A)에 제1 명령 기록부(64)가 첨부되었음을 나타내는 표식(64-1)이 표시될 수 있다.
제1 명령 기록부(64)에는 부가 명령문(84, 이하 제1 부가 명령문)이 존재하되, 제1 부가 명령문(84)은 부가 명령어(84A, 이하 제1 부가 명령어)와 조건(84B, 84C, 84D)을 포함할 수 있다. 제1 부가 명령어(84A)는 소정의 범위(54B)에 다수의 건(다건)의 값을 목록으로 출력하라는 것을 의미하는 명령어(each, 이하 제1 다건 값 출력 명령어)일 수 있다. 조건(84B, 84C, 84D)은, 제1 다건 값 출력 명령어(84A)에 관한 데이터 독출 대상(84B) 및 데이터 범위(84C)를 포함하고, 실시예에 따라서 스타일 유지 여부에 대한 조건(84D, 이하 스타일 조건)을 더 포함할 수도 있다. 예를 들어, 데이터 독출 대상(84B)은, 모든 광고 매체에 대한 정보의 합산 결과를 포함하고, 'media_total'의 명칭을 갖는 원시 또는 변환 데이터(121, 131)일 수도 있다. 데이터 범위(84C)는, 제1 다건 값 출력 명령어 each(84A)에 의해 다건 값이 목록으로 출력될 범위(54B)를 지시할 수 있으며, 예를 들어, 값들이 각각 기록될 범위가 명령 기록부(64)가 추가된 셀(54A)로부터 end_cell 및 등호(=) 뒤의 따옴표 내의 셀(M53)까지라는 것을 나타낸다. 스타일 조건(84D)은 원시 또는 변환 데이터(121, 131)에 적용되었거나 또는 이들 데이터(121, 131) 내에 기록된 스타일을 범위(54B) 내의 각 셀(또는 각 셀의 데이터)에도 적용할지 여부를 의미한다. 스타일 조건(84D)은, 예를 들어, row_copy, 등호 및 값의 형식으로 표현될 수 있으며, 값에 TRUE가 표기되면, 원시 데이터(121) 또는 변환 데이터(131)에 적용되었던 스타일을 그대로 적용하도록 지시하고, 해당 값에 FALSE가 기재되면 원시 또는 변환 데이터(121, 131)의 스타일을 적용하지 않도록 지시하도록 정의된 것일 수 있다. 후자의 경우, 해당 셀 또는 범위(54B)의 값에는, 피보고자의 선택이나 미리 정의된 설정 등에 따라서 템플릿(52)의 전부에 설정되거나 또는 해당 셀이나 범위(54B)에 별도로 설정된 스타일이 적용될 수 있다.
도 7은 다건 값 출력 명령의 다른 일례를 설명하기 위한 도면이다.
도 7에 도시된 바에 의하면, 템플릿(52)은, 복수의 셀로 이루어져 있되, 복수의 셀 중 어느 하나의 셀(55A, 이하 제1 셀)에는 어느 하나의 명령 기록부(65, 이하 제2 명령 기록부)가 부가되고, 다른 하나의 셀(55B, 이하 제2 셀)에는 다른 하나의 명령 기록부(66, 이하 제3 명령 기록부)가 부가된 시트(55)일 수 있다. 즉, 하나의 시트(55) 내에 복수의 명령 기록부(65, 66)가 첨부되어 있을 수 있다. 상술한 것처럼 제2 및 제3 명령 기록부(65, 66)가 부가된 셀(55A, 56A)은, 해당 셀(55A, 56A) 각각에 제2 및 제3 명령 기록부(65, 66)가 첨부되었음을 나타내는 표식(65-1, 66-1)을 포함할 수 있다.
제2 명령 기록부(65)는 부가 명령문(85, 이하 제2 부가 명령문)을 포함하되, 제2 부가 명령문(85)은, 부가 명령어(85A, 이하 제2 부가 명령어)와, 제2 부가 명령어(85A)에 의해 처리될 각각의 데이터 값이 획득될 데이터 독출 대상(85A)과, 획득된 값들이 기록될 데이터 범위(85C)를 포함할 수 있다. 여기서, 제2 부가 명령어(85A)는 다건 목록 값을 목록으로 출력하되, 각각의 목록을 수평 방향(우측 또는 좌측 방향)으로 이어 붙이며 출력하기 위한 명령어(v_each, 이하 제2 다건 값 출력 명령)를 포함할 수 있다. 즉, 제2 다건 값 출력 명령어 v_each(85A)는, 복수의 목록이 존재하고, 각각의 목록마다 하나 이상의 값이 존재하는 경우, 각각의 목록은 수평 방향(우측 또는 좌측 방향)으로 출력하고, 각각의 목록 내의 데이터는 수직 방향(아래 또는 위쪽 방향)으로 출력하도록 한다. 예를 들어, 노출 수, 클릭 수 및 조회수 등에 대해 다수의 시점마다 획득된 값이 존재하는 경우, 제2 다건 값 출력 명령어(85A)의 적용 결과, 각 시점의 노출 수에 해당하는 값은 수직 방향으로 출력되고, 각 시점의 클릭 수에 해당하는 값은 수직 방향으로 출력되되, 동 시점의 노출 수에 해당하는 값의 우측 또는 좌측에 출력되고, 각 시점의 조회수도 수직 방향으로 출력되되, 동 시점의 클릭 수에 해당하는 값의 우측 또는 좌측에 출력된다. 출력될 목록은 데이터 독출 대상(85A)으로부터 획득 가능하며, 구체적인 목록은 상술한 것처럼 데이터 범위(85C) 내의 셀 명령문에 의해 결정될 수 있다.
제3 명령 기록부(66)는, 또 다른 부가 명령문(86, 이하 제3 부가 명령문)을 포함할 수 있다. 여기서, 제3 부가 명령문(86)은 부가 명령어(86A, 일례로 제1 다건 값 출력 명령어)와, 데이터 독출 대상(86B, 일례로 media1_broad_campaigns)과, 데이터 범위(86C)를 포함하여 구성될 수도 있다. 데이터 범위(86C)에 상응하는 적어도 하나의 셀은 일례로 제1 셀(55A)부터 제i 셀(55B, 즉 셀 주소가 Z92인 셀)을 포함할 수 있다. 이들 각각의 셀(55A 내지 55B)에는 상술한 바와 같이 데이터 독출 대상(86B), 즉 media1_broad_campaigns 데이터(121, 131)로부터 추출된 값(들) 중에서, 각각의 셀(55A 내지 55B)에 기재된 셀 명령어($.intent, $.campaign_name, $.adset_name, $.date 및 $.spend)에 대응하는 값들이 입력된다.
도 8은 복사 명령의 일 실시예를 설명하기 위한 도면이다.
도 8에 도시된 바와 같이, 일 실시예에 따르면, 적어도 하나의 시트(56, 이하 피복제시트)에 대해서 소정의 부가 명령문(87, 이하 제4 부가 명령문)을 갖는 명령 기록부(67, 이하 제4 명령 기록부)가 존재한다. 제4 부가 명령문(87)은, 부가 명령어(87A, 이하 제3 부가 명령어)와, 제4부가 명령어(87A)에 의해 처리될 각 데이터 값을 독출할 데이터 독출 대상(87A)과, 독출될 값들이 기록될 데이터 범위(87C)를 포함할 수 있다. 데이터 범위(87C)는 시작 셀(56A)과 종료 셀(56B)을 각각 포함할 수 있다. 시작 셀(56A)은 부가 명령어(87A)에 따라서 데이터의 입력이 개시될 최초의 셀을 의미하고, 종료 셀(56B)는 데이터의 입력이 종료될 마지막 셀을 의미한다. 시작 셀(56A)이 지정되면, 처리는, 예를 들어, 시작 셀(56A)을 기준으로 하여 우측 방향 및 그의 아래 방향 중 적어도 하나의 방향으로 순차적으로 또는 동시에 수행될 수 있다. 실시예에 따라, 시작 셀(56A)로부터 좌측 방향이나 상 방향으로 부가 명령어(87A)에 따른 처리가 수행되는 것도 가능하다.
일 실시예에 의하면, 제3 부가 명령어(87A)는 적어도 하나의 셀이나, 이들을 포함하는 시트(56-1, 이하 복제 대상)의 전부 또는 일부를 데이터 범위(87C)에 복제하라는 명령어(86A, copy, 이하 복제 명령어)를 포함할 수 있다. 여기서, 복제 대상(56-1)은 제4 부가 명령문(87)의 데이터 독출 대상(87A)에 의해 지정될 수 있다. 복제 명령어 copy(86A)가 인식되면, 템플릿 처리부(140)는 데이터 독출 대상(87A)을 확인하여 복제 대상(56-1)을 결정하고, 데이터 범위(87C)를 참조하여 복제 대상(56-1) 내의 각각의 셀의 값이 복제될 적어도 하나의 셀(56A 내지 56B)을 피복제시트(56) 내에서 결정한 후, 복제 대상(56-1)의 적어도 하나의 셀의 값을 획득하고, 피복제시트(56)의 셀 중에서 복제 대상(56-1)의 적어도 하나의 셀에 대응하는 셀(56A 내지 56B)에 해당 셀로부터 획득한 값을 그대로 복제한다. 복제 대상(56-1)의 내용을 소정의 범위(56A 내지 56B)에 그대로 복제 및 반영하여 획득되는 복제된 시트(56-2)가 생성되게 된다. 즉, 피복제시트(56)는 그 전부 또는 일부에 복제 대상(56-1)의 내용을 그대로 가지게 된다.
도 9는 다수의 매체에 대한 정보를 포함하는 템플릿의 일 실시예를 설명하기 위한 도면이다.
보고서 생성 장치(100)는 다수의 원시 데이터 제공 장차(10: 10-1 내지 10-B)로부터 원시 데이터(121)를 제공받을 수도 있고, 다수의 원시 데이터 제공 장치(10: 10-1 내지 10-B)는 서로 상이한 자에 의해 운영되는 것일 수도 있다. 예를 들어, 원시 데이터 제공 장치(10: 10-1 내지 10-B) 중 적어도 하나는 동종(일례로 포탈 사이트 등)의 광고매체에 의해 운영되고, 다른 적어도 하나는 동종의 다른 광고매체에 의해 운영되며, 또 다른 적어도 하나는 이종(일례로 동영상 스트리밍 사이트)의 다른 광고매체에 의해 운영되는 것일 수도 있다. 이 경우에 있어서, 템플릿 처리부(140)는 서로 상이한 다수의 원시 데이터 제공 장치(10: 10-1 내지 10-B)로부터 제공된 원시 데이터(121) 또는 이를 가공하여 획득한 변환 데이터(131)를 하나의 템플릿(53)에 적용하여 하나의 보고서(200)를 생성할 수도 있다. 여기서, 하나의 템플릿(53)은 다수의 원시 데이터 제공 장치(10: 10-1 내지 10-B)로부터 제공된 데이터가 각각 별도로 기록될 다수의 구역(56A, 56B)을 포함하여 형성됨으로써 하나의 보고서(200) 작성이 가능하게 할 수 있다.
구체적으로 예를 들어, 도 9에 도시된 바에 의하면, 템플릿(53)은 적어도 하나의 시트(56)를 포함하되, 서로 상이한 적어도 두 개의 매체에 대한 구역들, 일례로 제1 매체에 대한 대응 구역(56A)과 제2 매체에 대한 대응 구역(56B)을 포함할 수 있다. 이중 제1 매체에 대한 대응 구역(56A)는 제1 매체에 운영되는 제1 원시 데이터 제공 장치(10-1)로부터 전달 받은 원시 데이터(121) 또는 이를 기반으로 한 변환 데이터(131)를 이용하여 각각의 셀(들)에 값(들)이 채워지고, 제2 매체에 대한 대응 구역(56B)는 제1 매체에 운영되는 제1 원시 데이터 제공 장치(10-1)로부터 전달 받은 원시 데이터(121) 또는 이를 기반으로 한 변환 데이터(131)를 이용하여 그 값이 채워진다.
제1 매체에 대응하는 구역(56A)에는, 실시예에 따라, 하나 또는 복수의 명령 기록부(68, 69, 이하 각각 제5 명령 기록부 및 제6 명령 기록부)가 존재할 수 있다. 제5 명령 기록부(68)는 최 상단의 셀에 부가되며, 단건 값을 소정 범위에 기록하라는 단건 값 출력 명령(area)과, 데이터 독출 대상(media1_meta)과, 데이터 범위(셀 Y44)의 명령문을 포함한다. 따라서, 보고서(200) 생성 시, 데이터 범위에 해당하는 셀, 일례로 최상단의 셀(셀 주소 Y44)에는, 해당 셀의 셀 명령어에 따라서 정해진 데이터 독출 대상(media1_meta)으로부터 획득한 제1 매체의 명칭이 기록 및 출력된다. 제6 명령 기록부(69)는 최상단의 셀 바로 밑에 셀 중 가장 좌측의 셀에 부가되고, 제6 명령 기록부(69)에는 다건 값을 목록으로 출력하라는 다건 값 출력 명령(each)과, 데이터 독출 대상(media1_total)과, 데이터 범위(표식이 존재하는 셀부터 셀 Y53까지)와, 스타일 조건을 갖는 명령문이 존재할 수 있다. 이 경우, 해당 데이터 범위 내의 각각의 셀(들)에는 데이터 독출 대상(media1_total)에서 획득된 다건 값이 해당 셀의 셀 명령어에 맞춰 기록 및 출력된다.
한편, 제2 매체에 대응하는 구역(56B)에도, 실시예에 따라, 하나 또는 둘 이상의 명령 기록부(70, 71, 이하 각각 제7 명령 기록부 및 제8 명령 기록부)가 존재할 수 있다. 제7 명령 기록부(70)는 최 상단의 셀에 부가되어 있을 수 있으며, 단건 값을 소정 범위에 기록하라는 단건 값 출력 명령(area)과, 데이터 독출 대상(media2_meta)과, 데이터 범위(셀 Y54)를 갖는 명령문을 포함할 수 있다. 이 경우, 명령은, 제5 명령 기록부(68)와 동일할 수 있으나, 데이터 독출 대상(media2_meta)과, 데이터 범위(셀 Y45)는 제5 명령 기록부(68)와는 상이할 수 있다. 보고서(200) 생성 시에는, 상술한 바와 동일하게 데이터 범위에 해당하는 셀, 일례로 최상단의 셀(셀 주소 Y54)에, 데이터 독출 대상(media2_meta)으로부터 획득한 제1 매체의 명칭이 해당 셀의 셀 명령어에 따라 기록된다. 제8 명령 기록부(71)는 최상단의 셀(셀 주소 Y54) 바로 밑에 셀 중 가장 좌측의 셀에 부가될 수 있다. 이 경우, 가장 좌측의 셀은 제1 매체에 대응하는 구역(56A)의 가장 우측의 셀에 인접하거나 근접한 셀일 수도 있다. 제8 명령 기록부(71)는 다건 값 출력 명령(each), 데이터 독출 대상(media2_total), 데이터 범위(표식이 존재하는 셀부터 셀 AI53까지) 및 스타일 조건을 갖는 명령문을 포함할 수 있다. 이 경우, 해당 데이터 범위에 해당하는 셀(표식이 존재하는 셀부터 셀 주소 AI53까지의 셀)에는, 해당 셀의 셀 명령어에 맞춰 데이터 독출 대상(media2_total)에서 획득된 다건 값이 기록될 수 있다.
이에 따라 하나의 템플릿(53)을 이용하여 다수의 원시 데이터 제공 장치(10: 10-1 내지 10-B)의 데이터를 반영한 보고서(200)가 작성 가능하게 된다.
도 2에 도시된 바를 참조하면, 프로세서(110)의 템플릿 생성부(141)는 상술한 템플릿(50) 중 적어도 하나를 자동으로 또는 부분적 수동으로 생성할 수 있다. 일 실시예에 의하면, 템플릿 생성부(141)는 적어도 하나의 학습 모델을 이용하여 구현될 수 있다. 여기서, 학습 모델은, 예를 들어, 피보고자의 관심 분야, 피보고자의 업종이나 업태, 피보고자의 사업 실적이나 사업 규모, 피보고자의 예산이나 투자 금액, 피보고자에 의해 판매나 제공되는 물품(또는 서비스)에 대한 정보, 피보고자가 주로 또는 대체로 사용하는 광고 매체에 대한 정보, 원시 데이터 제공 장치(10)가 제공하는 데이터의 종류, 원시 데이터 제공 장치(10)를 운영하는 매체의 종류나 성격, 보고서의 보고 목적, 보고서의 유형 및/또는 보고서의 보고 주기(시기) 등을 입력 값으로 하고, 템플릿이나 보고서 등의 구체적인 내용이나 형식을 출력 값으로 하여 훈련된 것일 수 있다. 여기서, 템플릿이나 보고서 등의 구체적인 내용이나 형식은, 적어도 하나의 셀, 적어도 하나의 셀 주변의 적어도 하나의 선분이나 도형, 적어도 하나의 셀에 기재된 정보, 적어도 하나의 셀에 기재된 셀 명령문 및/또는 적어도 하나의 셀에 부가된 명령 기록부 등을 포함할 수 있다. 학습 모델은, 예를 들어, 심층 신경망, 콘볼루션 신경망, 순환 신경망(RNN: Recurrent Neural Network), 콘볼루션 순환 신경망(CRNN: Convolutional Recurrent Neural Network), 심층 신뢰 신경망(DBN: Deep Belief Network), 심층 Q-네트워크(Deep Q-Networks), 장단기 메모리(LSTM: Long short term memory), 다층 퍼셉트론(Multi-layer Perceptron), 서포트 벡터 머신(SVM: support vector machine), 생성적 적대 신경망(GAN: Generative Adversarial Network) 및/또는 조건적 생성적 적대 신경망(cGAN: Conditional GAN) 등의 적어도 하나의 학습 모델을 포함할 수도 있다. 또한, 학습 모델은 훈련을 통해 학습을 수행하고 학습 결과를 기반으로 데이터 처리를 수행할 수 있도록 설계자가 고려 가능한 적어도 하나의 알고리즘, 이를 이용 또는 포함하여 작성된 적어도 하나의 프로그램 코드 또는 이(들)의 전부 또는 일부를 기반으로 또는 이들을 전체적으로 또는 부분적으로 조합하여 구현된 적어도 하나의 애플리케이션이나 프로그램 패키지를 포함하는 것도 가능하다.
이하 도 10을 참조하여 스프레드시트 기반 보고서 생성 방법의 적어도 일 실시예에 대해서 설명하도록 한다.
도 10은 스프레드시트 기반 보고서 생성 방법의 적어도 일 실시예에 대한 흐름도이다.
도 10에 도시된 스프레드시트 기반 보고서 생성 방법의 일 실시예에 따르면, 먼저 보고서 작성에 이용될 적어도 하나의 템플릿이 작성, 생성 및 저장될 수 있다(400). 실시예에 따라서, 적어도 하나의 템플릿은 보고서 작성 과정(402 내지 422)에서 생성되거나, 수정되는 것도 가능하다. 템플릿은, 예를 들어, 보고서(200) 내에 포함될 정보가 소정의 형식으로 표현될 수 있게 마련된 것으로, 예를 들어, 스프레드시트를 기반으로 작성된 것일 수 있다. 스프레드시트 기반 템플릿은 적어도 하나의 시트를 포함할 수 있고, 이들 시트는 다수의 셀로 이루어질 수 있다.
적어도 하나의 시트 내의 셀 중 적어도 하나의 셀에는 셀 명령문이 존재할 수 있다. 또한, 특정한 하나 이상의 셀에는 명령 기록부가 첨부되어 있을 수도 있다. 상황에 따라, 다수의 셀 중 적어도 하나는 셀 명령문 및 명령 기록부를 모두 가질 수도 있다.
셀 명령문은 적어도 하나의 셀에 존재할 수 있으며, 실시예에 따라 두 개의 셀 명령문이 하나의 셀에 존재하는 것도 가능하다. 후자의 경우, 소정의 구분자(| 등)을 이용하여 한 셀 내의 두 개의 셀 명령문이 상호 구분된다.
셀 명령문은 선택된 값을 해당 셀 내에 그대로 출력하기 위한 것일 수도 있다. 이 경우, 셀 명령문은 셀 명령문 식별 기호에 출력될 데이터(값)에 대한 포괄적 명칭(항목) 등을 부가하여 마련될 수도 있다. 또한, 셀 명령문은 원시 또는 변환 데이터의 하나 이상의 값에 대해 소정 연산을 수행한 후 그 결과를 출력하기 위한 것일 수도 있다. 이 경우, 셀 명령문은, 셀 명령어와, 셀 명령어에 대응하는 파라미터(구체적인 데이터를 획득할 데이터 독출 대상 및 구체적인 대상 데이터에 대한 정보)를 포함할 수 있다. 셀 명령어로는, 예를 들어, 합산 함수($.sum), 값 출력 함수($.out), 링크 출력 함수($.link), 평균 연산 함수($.sum_div), 이미지 출력 함수($.image) 또는 병합 함수($.merge_each) 등이 존재하나, 이에 한정되는 것은 아니다. 대상 데이터는 셀 명령어에 의해 처리될 구체적인 값 등으로, 데이터 독출 대상인 파일(원시 또는 변환 데이터)로부터 획득될 수 있다.
명령 기록부는 적어도 하나의 부가 명령문을 포함할 수 있으며, 부가 명령문은, 수행될 동작이나 기능을 나타내기 위한 부가 명령어 및 파라미터를 포함할 수 있다. 부가 명령어는, 예를 들어, 단건 값을 소정 범위에 기록하기 위한 단건 값 출력 명령어(area), 다건 값을 소정 범위에 출력하기 위한 제1 다건 값 출력 명령어(each), 다건 값을 목록을 수평 방향으로 이어 붙이며 출력하기 위한 제2 다건 값 출력 명령어(v_each) 및 복제 대상의 전부 또는 일부를 특정 범위에 복제하기 위한 복제 명령어(copy) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 파라미터는, 부가 명령어에 따라 마련될 수 있으며, 예를 들어, 기록될 값을 획득할 데이터 독출 대상과, 값이 기록될 셀을 지시하는 데이터 범위와, 원시 또는 변환 데이터의 스타일 유지 여부에 대한 정보인 스타일 조건 중 적어도 하나를 포함할 수 있으며, 이들 외에도 부가 명령어에 따라 필요한 다양한 파라미터를 더 포함할 수도 있다.
템플릿은 피보고자 또는 관리자 등이 작성할 수 있으며, 이의 작성을 위해 피보고자 단말 장치, 관리자 단말 장치, 피보고자 서버 장치 또는 보고서 생성 장치 등이 이용될 수 있다. 또한, 템플릿은 실시예에 따라서 소정의 학습 알고리즘을 기반으로 자동으로 작성된 것일 수도 있다. 자동으로 작성된 템플릿은 그래도 보고서 작성에 이용될 수도 있고, 또는 피보고자나 관리자 등에 의해 일부 수정된 후 보고서 작성에 이용될 수도 있다.
미리 정의된 설정에 따라서 또는 피보고자나 관리자 등의 수동 조작에 따라서 원시 데이터가 원시 데이터 제공 장치로부터 획득될 수 있다(402). 원시 데이터 제공 장치는, 보고서에 포함될 내용의 기초가 되는 원시 데이터를 수집, 생성, 정리, 가공 및/또는 조합하고, 원시 데이터를 보고서 생성 장치로 전달하기 위한 장치를 포함한다. 원시 데이터의 획득은, 원시 데이터 제공 장치로부터 주기적으로 또는 비주기적으로 전달 받거나, 원시 데이터 제공 장치에 마련된 소정의 응용프로그램 프로그래밍 인터페이스를 이용함으로써 수행될 수도 있다. 원시 데이터는, 실시예에 따라 광고 관련 데이터를 포함할 수 있다. 광고 관련 데이터는, 업체 명, 캠페인 명, 광고 노출 상태, 접속 인터넷 주소, 입찰 가격, 노출 수, 클릭 수, 클릭률 및/또는 집행 비용 등을 포함할 수도 있다.
원시 데이터가 획득되면, 원시 데이터에 대응하는 변환 데이터가 획득될 수 있다(404). 변환 데이터는 템플릿에 적용하기 적당한 형태의 데이터로, 예를 들어, 제이슨 형식으로 작성된 것일 수 있다. 변환 데이터는 필요에 따라 원시 데이터에 적용된 스타일에 대한 정보도 더 포함할 수도 있다. 변환 데이터의 획득 과정(404)은 필요에 따라 생략 가능하다.
원시 데이터나 변환 데이터가 적용될 템플릿이 하나 이상 호출되고, 호출된 템플릿의 각각의 셀이 미리 정의된 순서 또는 임의적 순서로 스캐닝될 수 있다(406). 이 경우, 적어도 하나의 셀에 명령 기록부가 부가되어 있는지 여부나(408), 및/또는 적어도 하나의 셀에 셀 명령어가 존재하는지 여부가 판단될 수 있다(416). 명령 기록부 부가 판단(408) 및 셀 명령어의 존재 판단(416)은, 실시예에 따라 동시에 수행될 수도 있고, 순차적으로 수행될 수도 있다.
만약 각각의 셀을 확인하는 과정에서 적어도 하나의 셀에 명령 기록부가 존재한다면, 해당 명령 기록부에 대한 분석이 수행되고, 부가 명령문이 존재하는지 여부가 판단된다(408).
만약 명령 기록부가 존재하고, 해당 명령 기록부에 부가 명령문이 존재한다면(408의 예), 부가 명령문이 해석된다(410). 부가 명령문의 해석은 소정의 파싱 알고리즘을 이용하여 수행될 수도 있다. 부가 명령문의 해석에 따라서, 명령어, 데이터 독출 대상 및 데이터 기록 범위가 획득될 수 있다. 필요에 따라서, 스타일 조건이 더 획득될 수도 있다. 획득된 명령어에 의해 수행될 처리가 결정되고, 데이터 독출 대상에 의해 기록할 데이터(값)를 획득할 대상이 결정되며, 데이터 기록 범위를 통해 데이터(값)을 기록할 위치(셀)가 결정된다.
데이터 기록 범위에 해당하는 셀 내의 셀 명령문이 해석된다(412). 여기서, 셀 명령문은 해당 셀 내에 값을 연산 없이 그대로 출력하기 위한 셀 명령문을 포함할 수 있다. 셀 명령문의 해석에 따라서 데이터 범위의 셀에 출력될 데이터가 무엇인지 구체적으로 확인될 수 있다. 확인된 데이터는 원시 또는 변환 데이터 중에서 어느 하나(즉, 데이터 독출 대상)으로부터 추출되어 획득된다.
데이터 독출 대상으로부터 데이터(값)이 획득되면, 획득된 데이터는 셀 명령문에 따라서 적절한 셀에 입력될 수 있다(414). 구체적으로 예를 들어, 데이터가 광고주 명칭이면, 해당 데이터는 광고주 명칭 출력에 대한 셀 명령문이 기재된 셀에 명령문을 대체하여 기록되게 된다.
한편, 적어도 하나의 셀에 셀 명령어가 존재하면(416의 예), 해당 셀 명령어가 파싱 알고리즘 등을 이용하여 해석 및 분석될 수 있다(418). 이 경우, 셀 명령문은 소정 연산 결과를 출력하기 위한 셀 명령문인 경우를 포함할 수 있다. 실시예에 따라, 분석되는 셀 명령문은 데이터를 그대로 출력하기 위한 셀 명령문을 포함할 수도 있다. 상술한 바와 같이 셀 명령문은, 셀 명령어와, 데이터 독출 대상과, 대상 데이터에 대한 정보(대상 데이터의 항목 등)를 포함하므로, 셀 명령문에 대한 해석의 수행에 의해, 어떠한 처리가 수행될지(셀 명령어), 어떤 원시 또는 변환 데이터로부터 구체적인 대상 데이터를 획득할지(데이터 독출 대상) 및 데이터 독출 대상으로부터 어떤 데이터를 획득할지(대상 데이터에 대한 정보)가 결정될 수 있다.
셀 명령문의 해석 결과, 대상 데이터가 데이터 독출 대상으로부터 획득되고, 대상 데이터에 대해 셀 명령어에 대응하는 처리가 수행된다(420). 처리 결과는 해당 셀에 입력되어 기록될 수 있다.
셀 명령문의 존재 판단 내지 셀 명령어에 따른 처리 결과 입력(416 내지 420)은, 실시예에 따라서, 도 10에 도시된 바와 상이하게, 상술한 명령 기록부 존재 판단 내지 각 셀에 대한 데이터의 입력(408 내지 414)에 선행하여 수행될 수도 있고, 이들 과정(408 내지 414) 중 적어도 하나와 동시에 수행될 수도 있다.
상술한 과정(404 내지 420)은, 실시예에 따라서, 반복될 수 있다(422). 반복은 주기적으로 수행될 수도 있고, 또는 비주기적으로 수행될 수도 있다. 원시 데이터의 획득 내지 셀 명령어에 따른 처리 결과 입력(402 내지 420)은, 상술한 하나 또는 둘 이상의 보고서 생성 장치에 의해 수행될 수도 있다. 또한, 일부 과정은 보고서 생성 장치 이외의 다른 장치에 의해 수행되는 것도 가능하다.
상술한 실시예에 따른 스프레드시트 기반 보고서 생성 방법은, 컴퓨터 장치에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다. 프로그램은, 부가 명령문, 라이브러리, 데이터 파일 및/또는 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며, 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 또한, 여기서, 컴퓨터 장치는, 프로그램의 기능을 실현 가능하게 하는 프로세서나 메모리 등을 포함하여 구현된 것일 수 있으며, 필요에 따라 통신 장치를 더 포함할 수도 있다.
또한, 상술한 스프레드시트 기반 보고서 생성 방법을 구현하기 위한 프로그램은, 컴퓨터 등의 장치에 의해 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터에 의해 판독 가능한 기록 매체는, 예를 들어, 롬, 램, SD카드 또는 플래시 메모리 기반 장치(일례로 솔리드 스테이트 드라이브(SSD) 등) 등과 같은 반도체 저장 매체나, 하드 디스크 또는 플로피 디스크 등과 같은 자기 디스크 저장 매체나, 콤팩트 디스크 또는 디브이디 등과 같은 광 기록 매체나, 및/또는 플롭티컬 디스크 등과 같은 자기-광 기록 매체 등과 같이 컴퓨터 등의 장치의 호출에 따라 실행되는 하나 이상의 프로그램을 일시적 또는 비일시적으로 저장 가능한 적어도 한 종류의 물리적 저장 매체를 포함할 수 있다.
이상 스프레드시트 기반 보고서 생성 시스템, 스프레드시트 기반 보고서 생성 장치 및 스프레드시트 기반 보고서 생성 방법의 여러 실시예에 대해 설명하였으나, 스프레드시트 기반 보고서 생성 시스템, 스프레드시트 기반 보고서 생성 장치 또는 스프레드시트 기반 보고서 생성 방법은, 오직 상술한 실시예에 한정되는 것은 아니다. 해당 기술 분야에서 통상의 지식을 가진 자가 상술한 실시예를 기초로 수정 및 변형하여 구현할 수 있는 다른 다양한 시스템, 장치나 방법 역시 상술한 스프레드시트 기반 보고서 생성 스프레드시트 기반 보고서 생성 시스템, 스프레드시트 기반 보고서 생성 장치 또는 스프레드시트 기반 보고서 생성 방법의 일 실시예가 될 수 있다. 예를 들어, 설명된 방법(들)이 설명된 바와 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소(들)가 설명된 바와 다른 형태로 결합, 연결 또는 조합되거나 다른 구성 요소 또는 균등물 등에 의하여 대치 또는 치환되더라도, 상술한 스프레드시트 기반 보고서 생성 시스템, 스프레드시트 기반 보고서 생성 장치 및/또는 스프레드시트 기반 보고서 생성 방법의 일 실시예가 될 수 있다.
1: 스프레드시트 기반 보고서 생성 시스템
10: 원시 데이터 제공 장치 20: 피보고자 단말 장치
21: 피보고자 서버 장치 30: 관리자 단말 장치
50: 템플릿
100: 스프레드시트 기반 보고서 생성 장치
101: 통신 모듈 102: 데이터 입출력 모듈
103: 입력부 109: 출력부
110: 프로세서 120: 데이터 수집부
130: 데이터 가공부 140: 템플릿 처리부
141: 템플릿 생성부 200: 보고서

Claims (10)

  1. 스프레드시트 기반의 템플릿을 저장하는 저장부; 및
    원시 데이터 또는 상기 원시 데이터에 대응하는 변환 데이터를 상기 템플릿에 적용하여 상기 원시 데이터 또는 상기 변환 데이터에 대응하는 보고서를 생성하는 프로세서;를 포함하되,
    상기 템플릿은,
    셀 명령문을 포함하는 복수의 셀; 및
    상기 복수의 셀 중 적어도 하나에 부가되고 부가 명령문을 갖는 명령 기록부;를 포함하고,
    상기 부가 명령문은,
    수행될 명령을 나타내는 부가 명령어와, 상기 원시 데이터 및 상기 변환 데이터 중 상기 부가 명령어에 의해 처리될 데이터를 독출할 데이터를 나타내는 데이터 독출 대상과, 상기 데이터 독출 대상에서 획득된 데이터가 입력될 적어도 하나의 셀을 나타내는 데이터 범위를 포함하는 스프레드시트 기반 보고서 생성 장치.
  2. 제1항에 있어서,
    상기 부가 명령문은, 상기 원시 데이터 또는 상기 변환 데이터에 적용된 스타일을 상기 적어도 하나의 셀에 적용할지 여부를 결정하기 위한 스타일 조건을 더 포함하는 스프레드시트 기반 보고서 생성 장치.
  3. 제1항에 있어서,
    상기 부가 명령어는,
    상기 데이터 범위의 셀에 다건 값을 목록으로 출력할 것을 지시하는 제1 부가 명령어;
    다건 값을 목록으로 출력하되, 각각의 목록을 수평 방향으로 이어 출력할 것을 지시하는 제2 부가 명령어; 및
    복제 대상의 전부 또는 일부를 상기 데이터 범위에 복제할 것을 지시하되, 상기 복제 대상은 다른 셀 또는 다른 셀을 갖는 다른 시티를 포함하는 제3 부가 명령어; 중 적어도 하나를 포함하는 스프레드시트 기반 보고서 생성 장치.
  4. 제1항에 있어서,
    상기 셀 명령문은, 상기 데이터 독출 대상으로부터 획득된 데이터를, 상기 셀 명령문을 갖는 셀 내에 그대로 출력하기 위한 셀 명령문을 하나 이상 포함하고,
    상기 프로세서는,
    상기 셀 명령문에 따라서 상기 데이터 독출 대상에서 획득된 데이터를 상기 셀 명령문을 갖는 셀에 기록하는 스프레드시트 기반 보고서 생성 장치.
  5. 제1항에 있어서,
    상기 셀 명령문은, 수행될 처리를 나타내는 셀 명령어, 상기 셀 명령어에 의해 처리될 대상 데이터를 독출할 데이터 독출 대상 및 상기 데이터 독출 대상으로부터 획득된 대상 데이터에 대한 정보를 포함하는 스프레드시트 기반 보고서 생성 장치.
  6. 제1항에 있어서,
    상기 템플릿은, 적어도 하나의 학습 모델을 이용하여 생성되되,
    상기 적어도 하나의 학습 모델은,
    관심 분야, 업종, 사업 실적, 사업 규모, 예산, 투자 금액, 물품이나 서비스에 대한 정보, 광고 매체에 대한 정보, 원시 데이터의 종류, 원시 데이터 제공 장치를 운영하는 매체, 보고서의 보고 목적, 보고서의 유형 및 보고서의 보고 주기 중 적어도 하나를 입력 값으로 하고,
    적어도 하나의 셀, 적어도 하나의 셀 주변의 적어도 하나의 선분이나 도형, 적어도 하나의 셀에 기재된 정보, 적어도 하나의 셀에 기재된 셀 명령문 및 적어도 하나의 셀에 부가된 명령 기록부 중 적어도 하나를 출력 값으로 하는 스프레드 시트 기반 보고서 생성 장치.
  7. 제1항에 있어서,
    상기 프로세서는, 상기 템플릿의 각각의 셀을 미리 정의되거나 임의적인 순서로 확인하고, 상기 각각의 셀에 상기 명령 기록부 및 상기 셀 명령문 중 적어도 하나가 존재하는지 여부를 확인하고,
    적어도 하나의 셀에 상기 명령 기록부가 존재하면, 상기 명령 기록부에 상기 부가 명령문이 존재하는지 판단하고, 상기 부가 명령문이 존재하면, 상기 부가 명령문에 대한 해석을 수행하고,
    적어도 하나의 셀에 상기 셀 명령문이 존재하면, 상기 셀 명령문에 대한 해석을 수행하고,
    상기 부가 명령문에 대한 해석 및 상기 명령문에 대한 해석 결과에 따라서, 상기 원시 데이터 또는 상기 변환 데이터를 상기 템플릿에 적용하는 스프레드시트 기반 보고서 생성 장치.
  8. 제6항에 있어서,
    상기 프로세서는, 적어도 하나의 파싱 알고리즘을 이용하여 상기 부가 명령문 및 상기 셀 명령문 중 적어도 하나를 해석하는 스프레드시트 기반 보고서 생성 장치.
  9. 스프레드시트 기반의 템플릿을 생성하는 단계;
    원시 데이터를 수신하는 단계;
    상기 원시 데이터에 대응하는 변환 데이터를 생성하는 단계; 및
    상기 변환 데이터를 상기 템플릿에 적용하여 상기 변환 데이터에 대응하는 보고서를 생성하는 단계;를 포함하되,
    상기 템플릿은,
    셀 명령문을 포함하는 복수의 셀; 및
    상기 복수의 셀 중 적어도 하나에 부가되고 부가 명령문을 갖는 명령 기록부;를 포함하고,
    상기 부가 명령문은,
    수행될 명령을 나타내는 부가 명령어와, 상기 원시 데이터 및 상기 변환 데이터 중 상기 부가 명령어에 의해 처리될 데이터를 독출할 데이터를 나타내는 데이터 독출 대상과, 상기 데이터 독출 대상에서 획득된 데이터가 입력될 적어도 하나의 셀을 나타내는 데이터 범위를 포함하는 스프레드시트 기반 보고서 생성 방법.
  10. 원시 데이터를 제공하는 원시 데이터 제공 장치;
    상기 원시 데이터에 대응하는 보고서 작성을 위한 템플릿을 획득하고, 상기 원시 데이터 또는 상기 원시 데이터에 대응하는 변환 데이터를 상기 템플릿에 적용하여 보고서를 생성하는 보고서 생성 장치; 및
    상기 보고서를 수신하는 피보고자 단말 장치;를 포함하고,
    상기 템플릿은,
    셀 명령문을 포함하는 복수의 셀; 및
    상기 복수의 셀 중 적어도 하나에 부가되고 부가 명령문을 갖는 명령 기록부;를 포함하고,
    상기 부가 명령문은,
    수행될 명령을 나타내는 부가 명령어와, 상기 원시 데이터 및 상기 변환 데이터 중 상기 부가 명령어에 의해 처리될 데이터를 독출할 데이터를 나타내는 데이터 독출 대상과, 상기 데이터 독출 대상에서 획득된 데이터가 입력될 적어도 하나의 셀을 나타내는 데이터 범위를 포함하는 스프레드시트 기반 보고서 생성 시스템.
KR1020220125657A 2022-09-30 2022-09-30 스프레드시트 기반 보고서 생성 장치, 시스템 및 방법 KR20240045838A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220125657A KR20240045838A (ko) 2022-09-30 2022-09-30 스프레드시트 기반 보고서 생성 장치, 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220125657A KR20240045838A (ko) 2022-09-30 2022-09-30 스프레드시트 기반 보고서 생성 장치, 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20240045838A true KR20240045838A (ko) 2024-04-08

Family

ID=90715439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220125657A KR20240045838A (ko) 2022-09-30 2022-09-30 스프레드시트 기반 보고서 생성 장치, 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20240045838A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100969656B1 (ko) 2009-10-30 2010-07-14 (주)비아이매트릭스 엑셀기반 분석보고서 작성 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100969656B1 (ko) 2009-10-30 2010-07-14 (주)비아이매트릭스 엑셀기반 분석보고서 작성 시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
유럽 공개 공보 EP 1 256 890 A2, "Systems and methods providing dynamic spreadsheet functionality", 공개일자: 2002.11.13

Similar Documents

Publication Publication Date Title
Chan-Olmsted A review of artificial intelligence adoptions in the media industry
US11182823B2 (en) Automated creative extension selection for content performance optimization
US10755300B2 (en) Optimization of online advertising assets
CN106688215B (zh) 针对内容效能优化的自动点击类型选择
EP4055496A2 (en) Methods, crms, and systems for creating, organizing, viewing, and connecting annotations
US10269033B2 (en) Expanded overlay state for campaign performance data snapshot cards
US10304079B2 (en) Organization of campaign performance data snapshot cards in card feeds and card boards
US10360579B2 (en) Campaign performance data snapshot cards
US20150081419A1 (en) Method and system for implementing dynamic link tracking
Upreti et al. Online content match-making in B2B markets: Application of neural content modeling
US20120323702A1 (en) System and method for client-server cooperation in selecting content for display
KR102557299B1 (ko) 사용자를 위한 적합 마케팅 전략 수립 방법
KR20240045838A (ko) 스프레드시트 기반 보고서 생성 장치, 시스템 및 방법
WO2017223547A1 (en) Automated aggregated multivariate testing systems, methods, and processes
Engelbrecht et al. The virtual online supermarket: An open-source research platform for experimental consumer research
US20230146003A1 (en) Simulating bid requests for content underdelivery analysis
US20210056593A1 (en) Automated research system, processes, and methods of use
JP7481050B1 (ja) 情報処理装置、情報処理方法、およびプログラム
JP7481051B1 (ja) 情報処理装置、情報処理方法、およびプログラム
US11282104B2 (en) Provision device, provision method and non-transitory computer readable storage medium
Mulina et al. METHODS AND ANALYTICAL TOOLS IN THE ADVERTISING AND PUBLIC RELATIONS INDUSTRY
JP2018136931A (ja) 提供装置、提供方法および提供プログラム