실무 예제로 배우는 Elasticsearch 검색엔진 <활용편>

Size: px
Start display at page:

Download "실무 예제로 배우는 Elasticsearch 검색엔진 <활용편>"

Transcription

1 Hanbit ebook Realtime 93 실무 예제로 배우는 Elasticsearch 검색엔진 활용편 정호욱 지음

2 실무예제로배우는 Elasticsearch 검색엔진활용편 정호욱지음

3 실무예제로배우는 Elasticsearch 검색엔진활용편 초판발행 2015 년 3 월 9 일 지은이정호욱 / 펴낸이김태헌펴낸곳한빛미디어 ( 주 ) / 주소서울시마포구양화로 7길 83 한빛미디어 ( 주 ) IT출판부전화 / 팩스 등록 1999년 6월 24일제 호 ISBN / 정가 15,000원 총괄배용석 / 책임편집김창수 / 기획 편집정지연디자인표지 / 내지여동일, 조판최송실마케팅박상용 / 영업김형진, 김진불, 조유미 이책에대한의견이나오탈자및잘못된내용에대한수정정보는한빛미디어 ( 주 ) 의홈페이지나아래이메일로알려주십시오. 한빛미디어홈페이지 / 이메일 ask@hanbit.co.kr Published by HANBIT Media, Inc. Printed in Korea Copyright c 2015 정호욱 & HANBIT Media, Inc. 이책의저작권은정호욱과한빛미디어 ( 주 ) 에있습니다. 저작권법에의해보호를받는저작물이므로무단복제및무단전재를금합니다. 지금하지않으면할수없는일이있습니다. 책으로펴내고싶은아이디어나원고를메일 (ebookwriter@hanbit.co.kr) 로보내주세요. 한빛미디어 ( 주 ) 는여러분의소중한경험과지식을기다리고있습니다.

4 저자소개 지은이 _ 정호욱 지난 13년동안야후코리아, NHN Technology, 삼성전자에서커뮤니티, 소셜검색, 광고검색관련서비스를개발해오면서검색엔진을활용한다양한프로젝트를수행하였다. 현재빅데이터전문기업인그루터 Gruter 에서오픈소스기반검색엔진개발자로근무하고있다. Elasticsearch 기술에대한정보와경험을현재개인블로그 ( 를통해공유하고있다.

5 저자서문 검색엔진은모든서비스의기본이되는핵심요소입니다. 우리가사용하는모든서비스에는검색기능이포함되어있습니다. 하지만검색엔진관련기술은일반사용자가접근하기에는너무어려운기술로남아있습니다. 루씬 Lucene 이라는오픈소스검색라이브러리가진입장벽을많이낮추기는했지만, 서비스에적용하기에는개발자가직접구현해야하는기능이너무많고관리와유지보수가어렵다는문제가있었습니다. 하지만이런문제점은 Elasticsearch라는오픈소스검색엔진이나오면서사라졌고전문적인검색엔진및서비스개발자가아니더라도누구나쉽게검색서비스를만들수있게되었습니다. 비싼라이선스비용을내고검색품질과기능을커스터마이징하기어려운벤더중심의검색엔진을사용하고있다면 Elasticsearch로꼭바꾸길추천합니다. 아직국내에는 Elasticsearch 사용자층이넓지않습니다. 이책은 Elasticsearch에관심은있으나어디서부터시작해야할지모르는사용자와검색을모르는사용자가쉽게서비스를만들수있도록도움을주고자집필하였습니다. 끝으로이책을집필하는데많은도움을주신그루터권영길대표님그리고이책이세상에빛을볼수있도록많은도움을주신한빛미디어김창수님, 정지연님, 이중민님께감사의말을전합니다. 집필을마치며 정호욱

6 대상독자및참고사항 초급초중급중급중고급고급 이책은검색엔진을이용한다양한기술과의접목과활용, 사용자정의기능을구현해서적용할수있는플러그인구현방법까지 Elasticsearch를적극적으로활용할수있는방법을보여줍니다. 또한, 기본적인성능최적화방법과가이드를제공하여대용량트래픽의처리와안정성을확보하는데도움을줄수있도록구성되어있습니다. 이책을읽으시려면루씬에대한기본지식이필요합니다. 또한, 설치와구성등기본적인내용은이책에서다루지않으므로이책의전작인 실무예제로배우는 Elasticsearch 검색엔진 ( 기본편 ) ( 한빛미디어, 2014) 을읽어보시길권합니다. 사용하는용어나기술에대한기본지식이없을경우이해하는데어려움이있을수있습니다. 이도서의예제소스코드는다음에서내려받을수있습니다.

7 한빛 ebook 리얼타임 한빛 ebook 리얼타임은 IT 개발자를위한 ebook 입니다. 요즘 IT 업계에는하루가멀다하고수많은기술이나타나고사라져갑니다. 인 터넷을아무리뒤져도조금이나마정리된정보를찾기도쉽지않습니다. 또한, 잘정리되어책으로나오기까지는오랜시간이걸립니다. 어떻게하면조금이라 도더유용한정보를빠르게얻을수있을까요? 어떻게하면남보다조금더빨 리경험하고습득한지식을공유하고발전시켜나갈수있을까요? 세상에는수 많은종이책이있습니다. 그리고그종이책을그대로옮긴전자책도많습니다. 전자책에는전자책에적합한콘텐츠와전자책의특성을살린형식이있다고생 각합니다. 한빛이지금생각하고추구하는, 개발자를위한리얼타임전자책은이렇습니다. 1 ebook Only - 빠르게변화하는 IT 기술에대해핵심적인정보를신속하게제공합니다 500페이지가까운분량의잘정리된도서 ( 종이책 ) 가아니라, 핵심적인내용을빠르게전달하기위해조금은거칠지만 100페이지내외의전자책전용으로개발한서비스입니다. 독자에게는새로운정보를빨리얻을기회가되고, 자신이먼저경험한지식과정보를책으로펴내고싶지만너무바빠서엄두를못내는선배, 전문가, 고수분에게는좀더쉽게집필할수있는기회가될수있으리라생각합니다. 또한, 새로운정보와지식을빠르게전달하기위해 O'Reilly의전자책번역서비스도하고있습니다. 2 무료로업데이트되는전자책전용서비스입니다 종이책으로는기술의변화속도를따라잡기가쉽지않습니다. 책이일정분량이상으 로집필되고정리되어나오는동안기술은이미변해있습니다. 전자책으로출간된이 후에도버전업을통해중요한기술적변화가있거나저자 ( 역자 ) 와독자가소통하면서보완하여발전된노하우가정리되면구매하신분께무료로업데이트해드립니다.

8 3 4 독자의편의를위해 DRM-Free 로제공합니다 구매한전자책을다양한 IT 기기에서자유롭게활용할수있도록 DRM-Free PDF 포맷으로제공합니다. 이는독자여러분과한빛이생각하고추구하는전자책을만들어나가기위해독자여러분이언제어디서어떤기기를사용하더라도편리하게전자책을볼수있도록하기위함입니다. 전자책환경을고려한최적의형태와디자인에담고자노력했습니다종이책을그대로옮겨놓아가독성이떨어지고읽기어려운전자책이아니라, 전자책의환경에가능한한최적화하여쾌적한경험을드리고자합니다. 링크등의기능을적극적으로이용할수있음은물론이고글자크기나행간, 여백등을전자책에가장최적화된형태로새롭게디자인하였습니다. 앞으로도독자여러분의충고에귀기울이며지속해서발전시켜나가도록하겠 습니다. 지금보시는전자책에소유권한을표시한문구가없거나타인의소유권한을표시한문구가있다면위법하게사용하고있을가능성이큽니다. 이경우저작권법에따라불이익을받으실수있습니다. 다양한기기에사용할수있습니다. 또한, 한빛미디어사이트에서구매하신후에는횟수에관계없이내려받으실수있습니다. 한빛미디어전자책은인쇄, 검색, 복사하여붙이기가가능합니다. 전자책은오탈자교정이나내용의수정 보완이이뤄지면업데이트관련공지를이메일로알려드리며, 구매하신전자책의수정본은무료로내려받으실수있습니다. 이런특별한권한은한빛미디어사이트에서구매하신독자에게만제공되며, 다른사람에게양도나이전은허락되지않습니다.

9 차례 chapter 1 검색기능확장 자동완성 자동완성 Analyzer 자동완성예제 Percolator Percolator 생성 Percolator Query 등록 Percolator 요청 Join Parent-Child Nested River JDBC River 동작의이해 JDBC River 설치전준비작업 JDBC River 설치 JDBC River indice 구성 JDBC River 등록 JDBC River 실행 JDBC River에서 REST API 이용하기 정리 049

10 chapter 2 검색데이터분석 Bucket Aggregation Global Aggregation Filter Aggregation Missing Aggregation Nested Aggregation Reverse Nested Aggregation Terms Aggregation Significant Terms Aggregation Range Aggregation Date Range Aggregation Histogram Aggregation Date Histogram Aggregation Geo Distance Aggregation Metric Aggregation Min Aggregation Max Aggregation Sum Aggregation Avg Aggregation Stats Aggregation Extended Stats Aggregation Value Count Aggregation Percentiles Aggregation Cardinality Aggregation 정리 083

11 chapter 3 Plugin Plugin 제작 Plugin 프로젝트생성 Plugin 프로젝트구성 REST Plugin 만들기 REST Plugin 프로젝트생성과등록 REST Plugin 기능구현 REST Plugin 등록설정 REST Plugin 빌드와설치 REST Plugin 구현요약 Analyzer Plugin 만들기 Analyzer Plugin 프로젝트생성과등록 Analyzer Plugin 기능구현 Analyzer Plugin 등록설정 Analyzer Plugin 빌드와설치 정리 103 chapter 4 Hadoop 연동 MapReduce 연동 준비항목 색인 MapReduce 구현 검색 MapReduce 구현 Hive 연동 준비항목 색인구현 검색구현 정리 120

12 chapter 5 ELK 연동 Logstash 다운로드와설치 실행과테스트 Command-line Flag 알아보기 Config 알아보기 Input 알아보기 Filter 알아보기 Output 알아보기 Codec알아보기 Elasticsearch 다운로드와설치 실행과테스트 기본플러그인설치 Kibana 다운로드와설치 실행 대시보드만들기 정리 148 chapter 6 SQL 활용하기 RDB 관점의 Elasticsearch Index vs. Database Type vs. Table Document vs. Row Field vs. Column Analyzer vs. Index _id vs Primary Key 151

13 6.1.7 Mapping vs. Schema Shard/Route vs. Partition Parent-Child/Nested vs. Relation Query DSL vs. SQL SQL 정의하기 SQL 정의 인덱스생성 / 삭제 / 선택 테이블생성 / 삭제 절선택 / 삽입 / 업데이트 / 삭제 SQL 변환하기 Match_all Query Match Query Bool Query Ids Query Range Query Term Query Terms Query JDBC Driver 만들기 Elasticsearch Driver Elasticsearch Connection Elasticsearch Statement Elasticsearch ResultSet Elasticsearch ResultSetMetaData Elasticsearch JDBC Driver 예제 정리 174

14 chapter 7 Elasticsearch 성능최적화 하드웨어관점 CPU RAM DISK NETWORK Document 관점 Index와 Shard 튜닝 Modeling Operation 관점 설정튜닝 검색튜닝 색인튜닝 정리 197

15 실무예제로배우는 Elasticsearch 검색엔진 활용편 실무예제로배우는 Elasticsearch 검색엔진 < 기본편 > 에서는 Elasticsearch의기본개념과설치방법, 검색서비스구성까지살펴봤습니다. 이번 < 활용편 > 에서는 < 기본편 > 에서다루지못한확장기능과다양한서비스의활용방법, Elasticsearch의성능최적화방법을알아보겠습니다.

16 chapter 1 검색기능확장 1.1 자동완성 자동완성 Auto Completion 기능은검색서비스에서가장많이사용하는기능의하나로, 사용자가입력하는검색쿼리를실시간으로입력받아문장을완성합니다. 이기능은키워드추천이나오타교정등에활용할수있습니다. 검색서비스에서자동완성기능은전방일치, 부분일치, 후방일치기능을제공합니다. 전방일치는입력한질의가문장의앞부분에서매칭이이루어지는것을의미하고, 부분일치는입력한질의가문장의중간에서매칭되는것을의미합니다. 그리고후방일치는전방일치와반대로문장의뒷부분에서매칭됩니다. 전방 / 부분 / 후방일치로매칭된다는것은형태소분석으로추출된토큰 Token 단위의색인어 (Term) 가일치되는것을의미합니다. Elasticsearch에서는이런자동완성기능을구현하기위해 Prefix 쿼리, Suggester, Analyzer(ngram, edge ngram) 를이용합니다. Prefix 쿼리는전방일치기능을구현할때손쉽게적용할수있는데, 적용을위해서는필드 Field01 의인덱스 Index02 속성이 not_analyzed가되어야합니다. Suggester는 Term, Phrase, Completion, Context Suggester의 4가지기능이있으며아직개 01 RDBMS에서테이블의 column에해당한다. 02 데이터를저장하기위한장소로, RDBMS의데이터베이스와유사하다. 1 검색기능확장 - 001

17 발중입니다. 이기능들은유사한색인어를찾아추천해줍니다. analyzer 중 ngram과 edge ngram을이용하는것은자동완성용필드의텍스트를미리분석하여색인하는방법입니다. 다음그림은 가, 나, 다, 라 를각각의색인어라고가정했을때전방 / 부분 / 후방일치에대한예입니다. 각그림의앞항목은입력한질의어고, 뒤항목은분석되어저장된단어가매칭된모습입니다. 그림 1-1 전방일치 가가나다라 그림 1-2 부분일치 나가나다라 그림 1-3 후방일치 라가나다라 자동완성 Analyzer 자동완성용 indice 03 를생성할때 analyzer의설정을살펴보겠습니다. 자동완성기능을사용하려면자동완성질의필드에용도에맞춰 tokenizer를구성해야합니다. NOTE Tokenizer 색인과정에서루씬에전달된일반텍스트는 Tokenization이라는과정을거치게됩니다. 이는 Token이라는인덱스의작은요소로입력텍스트를검색할수있도록처리하는것을말합니다. 이러한작업은단순히일반텍스트를분리하는것뿐만아니라텍스트를제거, 변형, 임의의패턴매칭, 필터링, 텍스트정규화그리고동의어확장까지다양한처리를하게되는데, 이를담당하는요소가 Tokenizer입니다. 03 Index는포괄적인의미의색인또는색인파일이고, Indice는 Elasticsearch 내에서물리적으로사용되는색인또는색인파일이라고보면된다. Indice는기존검색엔진의 collection과같다

18 [ Analyzer 설정 ] "analyzer" : { "ngram_analyzer" : { "type" : "custom", "tokenizer" : "ngram_tokenizer", "filter" : ["lowercase", "trim"], "edge_ngram_analyzer" : { "type" : "custom", "tokenizer" : "edge_ngram_tokenizer", "filter" : ["lowercase", "trim"], "edge_ngram_analyzer_back" : { "type" : "custom", "tokenizer" : "edge_ngram_tokenizer", "filter" : ["lowercase", "trim", "edge_ngram_filter_back"] ngram 은음절단위로색인어를생성하는방식으로재현율은높으나정확도는떨 어집니다. ngram_tokenizer, lowercase 필터, trim 필터로구성하고, 첫음절 을기준으로 max_gram 에서지정한최대길이만큼색인어를생성합니다. [ ngram 색인결과 ] min_gram: 1 max_gram: 5 text: 실무예제로배우는검색엔진 terms: [" 실 ", " 실무 ", " 무 ", " 예 ", " 예제 ", " 예제로 ", " 제 ", " 제로 ", " 로 ", " 배 ", " 배우 ", " 배우는 ", " 우 ", " 우는 ", " 는 ", " 검 ", " 검색 ", " 검색엔 ", " 검색엔진 ", " 색 ", " 색엔 ", " 색엔진 ", " 엔 ", " 엔진 ", " 진 "] edge ngram은 ngram과매우유사한데, min_gram 크기부터 max_gram 크기까지지정한 tokenizer의특성에맞춰각색인어에대한 ngram 색인어를생성하는방식입니다. edge_ngram_tokenizer, lowercase 필터, trim 필터로구성합니다. 1 검색기능확장 - 003

19 [ edge ngram 색인결과 ] min_gram: 1 max_gram: 5 text: 실무예제로배우는검색엔진 terms: [" 실 ", " 실무 ", " 예 ", " 예제 ", " 예제로 ", " 배 ", " 배우 ", " 배우는 ", " 검 ", " 검색 ", " 검색엔 ", " 검색엔진 "] edge ngram back은 edge ngram과같은방식으로동작하나색인어의순서가역순이됩니다. 이 analyzer를후방일치에사용하려면 edge ngram 필터옵션중 side:back을반드시설정해야하고, edge_ngram_tokenizer, lowercase 필터, trim 필터, edgengram 필터로구성합니다. [ edge ngram back 색인결과 ] min_gram: 1 max_gram: 5 text: 실무예제로배우는검색엔진 terms: [" 실 ", " 무 ", " 실무 ", " 예 ", " 제 ", " 예제 ", " 로 ", " 제로 ", " 예제로 ", " 배 ", " 우 ", " 배우 ", " 는 ", " 우는 ", " 배우는 ", " 검 ", " 색 ", " 검색 ", " 엔 ", " 색엔 ", " 검색엔 ", " 진 ", " 엔진 ", " 색엔진 ", " 검색엔진 "] ngram 과 edge ngram back 의결과를보면추출방식에서차이가있는것을 알수있습니다. 이해를돕기위해 검색엔진활용 으로 ngram 과 edge ngram back 의결과를비교하면추출된색인어의차이를확인할수있습니다. 표 1-1 ngram 과 edge ngram back 결과비교 ngram min_gram: 1 max_gram: 5 text: 검색엔진활용 terms: [ 검, 검색, 검색엔, 검색엔진, 검색엔진활, 색, 색엔, 색엔진, 색엔진활, 색엔진활용, 엔, 엔진, 엔진활, 엔진활용, 진, 진활, 진활용, 활, 활용, 용 ] edge ngram back min_gram: 1 max_gram: 5 text: 검색엔진활용 terms: [ 검, 색, 검색, 엔, 색엔, 검색엔, 진, 엔진, 색엔진, 검색엔진, 활, 진활, 엔진활, 색엔진활, 검색엔진활 ] 004 -

20 1.1.2 자동완성예제 자동완성기능을테스트하려면 analyzer 구성과함께 term 쿼리를이용하는방 법과 prefix 쿼리를이용하는방법이있습니다. 자동완성설정먼저테스트를위한 indice 생성에필요한 settings와 mappings 설정을살펴보겠습니다. 설정관련자세한내용은제공되는소스코드 04 를참고하기바라며여기서는일부코드만다루겠습니다. [ Analyzer 필드구성 - schema/autocompletion.json ] "keyword" : { "type" : "string", "store" : "no", "index" : "analyzed", "omit_norms" : true, "index_ options" : "offsets", "term_vector" : "with_positions_offsets", "include_in_all" : false, "fields" : { "keyword_prefix" : {"type" : "string", "store" : "no", "index" : "not_analyzed", "omit_norms" : true, "index_options" : "offsets", "term_vector" : "with_positions_offsets", "include_in_all" : false, "keyword_edge" : {"index_analyzer" : "edge_ngram_analyzer", "type" : "string", "store" : "no", "index" : "analyzed", "omit_norms" : true, "index_options" : "offsets", "term_vector" : "with_positions_offsets", "include_in_all" : false, "keyword_edge_back" : {"index_analyzer" : "edge_ngram_analyzer_back", "type" : "string", "store" : "no", "index" : "analyzed", "omit_norms" : true, "index_options" : "offsets", "term_vector" : "with_positions_offsets", "include_in_all" : false, 다양한검색옵션을적용하기위해 keyword 필드를멀티필드로구성하고, 각필드의검색옵션은유형별로구성합니다. keyword_prefix : Prefix 쿼리에서사용하기위한필드 keyword_edge : Term 쿼리를이용한전방일치용필드 keyword_edge_back : Term 쿼리를이용한후방일치용필드 검색기능확장 - 005

21 edge ngram analyzer 와비교하기위해구성한설정입니다. [ ngram_analyzer settings ] "ngram_analyzer" : { "type" : "custom", "tokenizer" : "ngram_tokenizer", "filter" : ["lowercase", "trim"] term 쿼리를이용하여전방일치를구현하는설정입니다. [ edge_ngram_analyzer settings ] "edge_ngram_analyzer" : { "type" : "custom", "tokenizer" : "edge_ngram_tokenizer", "filter" : ["lowercase", "trim"] term 쿼리를이용하여후방일치를구현하는설정입니다. [ edge_ngram_analyzer_back settings ] "edge_ngram_analyzer_back" : { "type" : "custom", "tokenizer" : "edge_ngram_tokenizer", "filter" : ["lowercase", "trim", "edge_ngram_filter_back"] tokenizer 의타입은 ngram, token 의최소길이는 1, 최대길이는 5 로설정합니다. [ ngram_tokenizer settings ] "ngram_tokenizer" : { "type" : "ngram", "min_gram" : "1", "max_gram" : "5", "token_chars": [ "letter", "digit", "punctuation", "symbol" ] 006 -

22 ngram tokenizer 와설정은거의동일하며타입만 edgengram 으로설정합니다. [ edge_ngram_tokenizer setting ] "edge_ngram_tokenizer" : { "type" : "edgengram", 중략 전방일치기능을구현하기위해 side 값을 front로설정합니다. [ edge_ngram_filter_front setting ] "edge_ngram_filter_front" : { "type" : "edgengram", "min_gram" : "1", "max_gram" : "5", "side" : "front" 후방일치기능을구현하기위해 side 값을 back 으로설정합니다. [ edge_ngram_filter_back setting ] "edge_ngram_filter_back" : { "type" : "edgengram", "min_gram" : "1", "max_gram" : "5", "side" : "back" REST API 를이용하여생성합니다. [ 자동완성 indice 생성 ] $ curl -XPUT 전체데이터는소스코드를참고하기바랍니다. 1 검색기능확장 - 007

23 [ 자동완성데이터등록 data/autocompletion.json ] { "index" : { "_index" : "autocompletion", "_type" : "search_keyword" { "keyword_id" : 1, "keyword" : "open source search engine", "keyword_ranking" : 20 { "index" : { "_index" : "autocompletion", "_type" : "search_keyword" { "keyword_id" : 2, "keyword" : "elasticsearch", "keyword_ranking" : 30 중략 REST API 를이용하여등록합니다. $ curl -s -XPOST data.json 자동완성테스트코드여기서는 prefix 쿼리, ngram, edge ngram을이용한전방일치와 edge ngram back을이용한후방일치예제를살펴보겠습니다. prefix 쿼리는전방일치에사용할수있지만일치된색인어에대한강조를적용할수없습니다. 이는해당필드에대한인덱스설정을 not_analyzed로구성하여전체값을강조처리하기때문입니다. [ Prefix 쿼리예제코드 ] Settings settings = Connector.buildSettings("elasticsearch"); Client client = Connector.buildClient(settings, new String[] {"localhost:9300"); PrefixQueryBuilder querybuilder = new PrefixQueryBuilder("keyword_prefix", "elastic"); String searchresult = Operators.executeQuery(settings, client, querybuilder, "autocompletion"); 결과를보면 keyword 필드에 elastic 으로시작하는문서가매칭된것을확인할 수있습니다. Prefix 쿼리예제결과 "hits" : { 008 -

24 "total" : 4, "max_score" : 1.0, "hits" : [ { "_index" : "autocompletion", "_type" : "search_keyword", "_id" : "3", "_score" : 1.0, "_source":{ "keyword_id" : 3, "keyword" : "elasticsearch vs solr", "keyword_ ranking" : 10, 중략 ] 다음예제는매칭된색인어를정확히구분하기위해강조기능을추가하였습니다. analyzed 속성을갖는 keyword 필드에 term 쿼리를실행한예제로, 추출된색인어를 ngram 분석으로매칭합니다. 즉, ucene 으로는매칭되지만 lucene 으로는매칭되지않습니다. 이는 max_gram을 5로설정하였기때문입니다. 여기서검색색인어를 lucen 대신 ucene 로한이유는 edge ngram과구분하기위해서입니다. [ ngram을이용한질의예제코드 ] Settings settings = Connector.buildSettings("elasticsearch"); Client client = Connector.buildClient(settings, new String[] {"localhost:9300"); TermQueryBuilder querybuilder = new TermQueryBuilder("keyword", "ucene"); String searchresult = Operators.executeQueryHighlight(settings, client, querybuilder, "autocompletion", "keyword", "strong"); highlight 영역에 strong 태그로강조된것을확인할수있습니다. ngram을이용한질의예제결과 "hits" : { "total" : 2, "max_score" : , "hits" : [ { 1 검색기능확장 - 009

25 "_index" : "autocompletion", "_type" : "search_keyword", "_id" : "4", "_score" : , "_source":{ "keyword_id" : 4, "keyword" : "lucene based search engine", "keyword_ ranking" : 10, "highlight" : { "keyword" : [ "l<strong>ucene</strong> based search engine" ], { "_index" : "autocompletion", "_type" : "search_keyword", "_id" : "5", "_score" : , "_source":{ "keyword_id" : 5, "keyword" : "elasticsearch based on lucene", "keyword_ ranking" : 10, "highlight" : { "keyword" : [ "elasticsearch based on l<strong>ucene</strong>" ] ] 다음예제는 ngram과비교하기위해작성하였습니다. ngram에서는 ucene 이라는키워드로질의하였고 edge ngram에서는 lucen 이라는키워드로질의합니다. 이둘의차이는앞에서 ngram_analyzer와 edge_ngram_analyzer 부분에서설명한내용에서참고하기바랍니다. [ edge ngram을이용한질의예제코드 ] Settings settings = Connector.buildSettings("elasticsearch"); Client client = Connector.buildClient(settings, new String[] {"localhost:9300"); TermQueryBuilder querybuilder = new TermQueryBuilder("keyword_edge", "lucen"); String searchresult = Operators.executeQueryHighlight(settings, client, querybuilder, "autocompletion", "keyword_edge", "strong"); edge ngram 을이용한질의예제결과 "hits" : { 010 -

26 "total" : 2, "max_score" : , "hits" : [ { "_index" : "autocompletion", "_type" : "search_keyword", "_id" : "4", "_score" : , "_source":{ "keyword_id" : 4, "keyword" : "lucene based search engine", "keyword_ ranking" : 10, "highlight" : { "keyword_edge" : [ "<strong>lucen</strong>e based search engine" ], { "_index" : "autocompletion", "_type" : "search_keyword", "_id" : "5", "_score" : , "_source":{ "keyword_id" : 5, "keyword" : "elasticsearch based on lucene", "keyword_ ranking" : 10, "highlight" : { "keyword_edge" : [ "elasticsearch based on <strong>lucen</strong>e" ] ] 다음은후방일치에대한예제코드입니다. 질의어를 e 한글자로설정하였으므 로결과에서강조된색인어의제일뒤에위치한문자는 e 가됩니다. [ edge ngram을이용한후방일치예제코드 ] Settings settings = Connector.buildSettings("elasticsearch"); Client client = Connector.buildClient(settings, new String[] {"localhost:9300"); TermQueryBuilder querybuilder = new TermQueryBuilder("keyword_edge_back", "e"); String searchresult = Operators.executeQueryHighlight(settings, client, querybuilder, "autocompletion", "keyword_edge_back", "strong"); 앞에서설명한것과같이강조된글자의마지막문자가 e 로끝난것을확인할수 있습니다. 1 검색기능확장 - 011

27 edge ngram을이용한후방일치예제결과 "hits" : { "total" : 10, "max_score" : , "hits" : [ { "_index" : "autocompletion", "_type" : "search_keyword", "_id" : "4", "_score" : , "_source":{ "keyword_id" : 4, "keyword" : "lucene based search engine", "keyword_ ranking" : 10, "highlight" : { "keyword_edge_back" : [ "<strong>luce</strong>ne <strong>base</strong>d <strong>se</strong>arch <strong>e</strong>ngine" ], 중략 ] 한글후방일치는네이버메인검색창또는지식쇼핑검색창에 청바지 라는검색 어를넣으면간단히확인할수있습니다. 다음그림의블록지정된부분이후방일 치부분입니다. 그림 1-4 한글후방일치예 012 -

28 1.2 Percolator Percolator는문서색인보다는문서모니터링에주로사용하며역검색 (Reverse Search) 이라고도합니다. 이기능은증권, 경매, 광고등의다양한서비스에서활용할수있고, 특정로그에대한감시용으로도사용할수있습니다. Elasticsearch에서 percolator는인덱스에쿼리를하나의타입 Type05 으로지정하여저장합니다. 즉, percolator라는인덱스에.percolator라는타입으로쿼리를저장합니다. 도큐먼트 Document06 를색인할때먼저 percolator 요청을수행하고결과에따른처리를하는데, 이 percolator로요청하는과정이역검색입니다. 다음그림은 percolator의논리적인개념을보여줍니다. 그림 1-5 Percolator 생성과쿼리등록 Query({"query": ) 등록 percolator/.percolator 구현방법은요구사항에따라달라집니다. 첫번째방법은 [ 그림 1-6] 처럼발생한문서가등록한 percolator 쿼리에매치되는지질의한후결과에따라 Alert 처리를하거나색인 Indexing 을수행하도록구현합니다. 목적에따라서는둘다수행할수도있습니다. 두번째방법은 [ 그림 1-7] 처럼발생한문서를먼저색인한후 percolator 쿼리에매치되는지질의해서결과에따라 Alert를수행합니다. 05 도큐먼트타입은물리적인인덱스나저장소를가지고있지않다. 다만논리적으로단일인덱스에대한서로다른목적의데이터를구분하여저장하는방법으로사용된다. 데이터베이스관점에서보면테이블과유사하며, 내장필드인 _type에따라저장된다. 06 검색에서가장기본이되는데이터단위로, Elasticsearch에저장되는하나의아이템또는아티클 (article) 을말한다. 도큐먼트는 RDBMS에서테이블내하나의 row에해당한다. 1 검색기능확장 - 013

29 그림 1-6 Percolator 구현방법 1 Alert 문서 percolator/.percolator Indexing 그림 1-7 Percolator 구현방법 2 percolator/.percolator Alert 문서 Indexing Percolator 생성 이번예제는온라인경매서비스에서입찰금액을실시간으로모니터링하기위한구성으로작성되었습니다. Percolator 쿼리를등록하기위한인덱스는 auction_bidding_percolate로생성하고 percolator 쿼리에매칭된도큐먼트는 auction_bidding_log로생성된인덱스에등록합니다. percolator 쿼리는총 4개고, 각쿼리에매칭된도큐먼트는 auction_bidding _log의타입에맞춰서유형별로등록합니다. 그림 1-8 Percolator index 1 auction_bidding_percolate auction_bidding_log 2.percolator 3 Query1 Query2 special _order over_price Query3 Query4 reserved _order auction_

30 1 번은인덱스를의미합니다. 2 번은타입을의미합니다. Percolator 타입은.percolator 로생성됩니다. 3 번은도큐먼트를의미합니다. Percolator 는쿼리자체가하나의도큐먼트가됩니다. 다음두예제는경매서비스에서특정키워드와범위 (range) 조건을지정하고이조건과일치할때모니터링을수행합니다. 이쿼리는경매입찰시 special 과 order 라는두개의키워드가포함되어있을때해당입찰건을모니터링합니다. inner query key 영역 ("query" : "special order") 의값을 over price 와 reserved order 로변경하여키워드모니터링용 percolator를생성할수있게합니다. [ 예제 1. 키워드모니터링 ] { "query" : { "match" : { "bidding_keyword" : { "query" : "special order", "operator" : "and" 이쿼리는범위 (range) 모니터링예제로경매에 1 번참여할때입찰금액이 1 천만 원을초과한입찰건을모니터링합니다. [ 예제 2. 범위모니터링 ] { "query": { "bool": { "must": [ { "term": { "auction_id": 1 1 검색기능확장 - 015

31 ], { "range": { "bidding_price": { "gt": auction_bidding_log 인덱스에생성한타입들은특정조건과일치하는경매 입찰이들어왔을때해당이벤트를유형별로기록합니다. [ Percolator 인덱스와타입생성예제코드 ] Settings settings = Connector.buildSettings("elasticsearch"); Client client = Connector.buildClient(settings, new String[] {"localhost:9300"); String setting = ""; String[] mapping = new String[4]; setting = Operators.readFile("schema/percolate_settings.json"); mapping[0] = Operators.readFile("schema/percolate_mappings_special_order.json"); mapping[1] = Operators.readFile("schema/percolate_mappings_over_price.json"); mapping[2] = Operators.readFile("schema/percolate_mappings_reserved_order.json"); mapping[3] = Operators.readFile("schema/percolate_mappings_auction_1.json"); try { client.admin().indices().delete(new DeleteIndexRequest("auction_bidding_log")). actionget(); client.admin().indices().delete(new DeleteIndexRequest("auction_bidding_percolate")). actionget(); catch (Exception e) { finally { CreateIndexResponse createindexresponse = client.admin().indices().preparecreate("auction_bidding_log").setsettings(setting).addmapping("special_order", mapping[0]) 016 -

32 .addmapping("over_price", mapping[1]).addmapping("reserved_order", mapping[2]).addmapping("auction_1", mapping[3]).execute().actionget(); createindexresponse = client.admin().indices().preparecreate("auction_bidding_percolate").setsettings(setting).execute().actionget(); client.close(); 이벤트유형에따라등록되는타입은다음표와같습니다. 표 1-2 유형별등록타입 유형 special order over price reserved order 경매 1번의입찰가격이 1천만원을초과할때 타입 special_order over_price reserved_order auction_ Percolator Query 등록 색인문서를필터링또는모니터링하려면검색쿼리를등록해야합니다. 여기서는경매입찰건의모니터링조건을 auction_bidding_percolate 인덱스의.percolator 타입에등록합니다. Percolator 쿼리는 XContentBuilder 와 JSON string의두가지방법으로등록할수있는데, XContentBuilder는 setsource(source), JSON string은 setsource(json) 으로등록합니다. Percolator 요청 (request) 조건이일치할때 auction_bidding_log의타입과일치시키기위해 percolator 쿼리등록시도큐먼트 id에 auction_bidding_ log 타입을등록합니다. 1 검색기능확장 - 017

33 다음코드는경매입찰시등록한키워드에 special 과 order 라는키워드가 모두포함되어있으면해당입찰에대해정의한액션을수행합니다. special order 는 over price 와 reserved order 로수정하여등록할수있게합니다. [ 예제 1. 등록코드 ] // XContentBuilder 이용. QueryBuilder querybuilder = QueryBuilders.matchQuery("bidding_keyword", "special order"). operator(operator.and); XContentBuilder json = jsonbuilder().startobject(); json.field("query", querybuilder); json.endobject(); // JSON string 이용 MatchQueryBuilder matchquerybuilder = new MatchQueryBuilder("bidding_keyword", "special order"); matchquerybuilder.operator(operator.and); String source = "{\"query\" : " + matchquerybuilder.tostring() + ""; client.prepareindex("auction_bidding_percolate", ".percolator", "special_order") //.setsource(source).setsource(json).execute().actionget(); 다음코드는범위에해당하는값을모니터링하여경매 1 번에입찰한금액이 1 천 만원을초과할때정의된액션을수행합니다. 예제코드는제공된소스코드를참 고하여생성하기바랍니다. [ 예제 2. 등록코드 ] TermQueryBuilder termquerybuilder = new TermQueryBuilder("auction_id", 1); RangeQueryBuilder rangequerybuilder = new RangeQueryBuilder("bidding_price"); rangequerybuilder.gt( ); querybuilder = QueryBuilders.boolQuery().must(rangeQueryBuilder).must(termQueryBuilder); json = jsonbuilder().startobject(); json.field("query", querybuilder); json.endobject(); client.prepareindex("auction_bidding_percolate", ".percolator", "auction_1").setsource(json) 018 -

34 .execute().actionget(); Percolator 요청 Percolate 인덱스를생성하고쿼리등록까지끝났으니이제 percolator 요청를생성하여요청이어떻게동작하는지알아보겠습니다. 먼저경매입찰요청이입력되면등록된 percolator 쿼리로이요청을보내일치여부에따른액션을수행합니다. 다음은발생한이벤트에대한 percolator 요청을수행한후결과를획득하는예로, special order 와 auction_1 두가지경우를포함하고있습니다. 이예제의결과값에따른처리는 [ 응답후처리코드 ] 를참고하기바랍니다. [ 요청코드 ] PercolateRequestBuilder precolaterequestbuilder = new PercolateRequestBuilder(client); // 가상의경매입찰문서를생성합니다. DocBuilder docbuilder = new DocBuilder(); XContentBuilder jsondoc = jsonbuilder().startobject().field("auction_id", 1).field("bidding_id", 1).field("bidding_keyword", "special order").field("bidding_price", ).endObject(); docbuilder.setdoc(jsondoc); // percolator request를보낸다. PercolateResponse percolateresponse = precolaterequestbuilder.setindices("auction_ bidding_percolate").setdocumenttype(".percolator").setpercolatedoc(docbuilder).execute().actionget(); 다음은두가지조건에대한 percolator 요청을수행한후결과에따른색인방 1 검색기능확장 - 019

35 법을보여주기위한예로, 색인결과는 [ 요청코드 ] 의 special order 조건에따 라 special_order 타입에, auction_id:1, bidding_price: 조건 에따라 auction_1 타입에등록됩니다. [ 응답후처리코드 ] Match[] matches = percolateresponse.getmatches(); int size = matches.length; for ( int i=0; i<size; i++ ) { String doctype = matches[i].getid().string(); if ( "auction_1".equalsignorecase(doctype) ) { IndexRequestBuilder requestbuilder; IndexResponse response; requestbuilder = client.prepareindex("auction_bidding_log", doctype); response = requestbuilder.setsource(jsondoc).execute().actionget(); if ( "special_order".equalsignorecase(doctype) ) { IndexRequestBuilder requestbuilder; IndexResponse response; requestbuilder = client.prepareindex("auction_bidding_log", doctype); response = requestbuilder.setsource(jsondoc).execute().actionget(); 키워드모니터링을하려면 reserved order 와 over price 는 special order 와같은방법으로타입을매칭시켜처리하면됩니다

36 1.3 Join Elasticsearch는정규화된데이터 Normalized data 를다루는 RDBMS와다르게비정규화된데이터 Denormalized data 로문서가구성되어서 RDBMS와같은조인기능을제공하기가쉽지않습니다. 여기서는조인기능을 Elasticsearch에서어떻게처리하는지알아보겠습니다. Elasticsearch에서는크게두가지방법으로조인기능을구현합니다. 애플리케이션단에서의조인 (Application-side Joins) 이방법은두개의테이블에서외래키 Foreign Key 정보를 N 관계에있는테이블에함께저장하여관계모델을구성합니다. Elasticsearch에서는 parent-child 관계를이용하는데, 한인덱스에 parent 타입과 child 타입을등록하여관계모델을구현합니다. 예를들어, 1의관계를정의하기위한 parent 타입으로 buyer 를생성하고구매자정보를저장하며, N의관계를정의하기위한 child 타입으로 buyer_item을생성하고구매자의구매이력을저장합니다. 그림 1-9 parent-child 관계모델 1 join_parent_child1n 2 3 buyer 1 _parent:buyer buyer_item N 1 번은 1:N 관계를포함하는인덱스입니다. 2 번은 parent 타입으로 1 의관계를가지며, child 타입의외래키값을포함합니다. 3 번은 child 타입으로 N 의관계를가지며, _parent.type 필드에 parent 타입을지정해야합니다. 비정규화데이터 (Denormalizing Data) 이방법은관계데이터를중복으로구성하여하나의테이블에모든데이터를등록 1 검색기능확장 - 021

37 하는것인데, 색인크기가증가한다는점을유의해야합니다. Elasticsearch에서는비정규화데이터를구성하기위해 inner objects와 nested 타입을제공하므로인덱스의스키마를구성하기위한매핑정보설정시관계데이터에대한필드를 object 타입또는 nested 타입으로정의하여색인시모든데이터를등록합니다. 그림 1-10 비정규화모델 Table : buyer Table : buyer_item Table : purchase_history Column Column Column buyer_id buyer_id (FK) buyer_id buyer_login_id item_id buyer_login_id buyer_name item_name buyer_name buyer_sex purchase_date buyer_sex buyer_phone item_price buyer_phone order_price item_id item_name purchase_date item_price order_price NOTE Field Collapsing 앞의두가지방법외에추가로두방법을기반으로 aggregation을적용하여조인기능을구현하는방법이있습니다. child 타입에 aggregation하기위한최소정보를 parent 타입에서가져와색인시함께등록하고, 질의시 aggregation 질의를통해결과를가져오는방법인데, 일반적인화면구성을위한결과로사용할수없으므로여기서는간단히소개만했습니다 Parent-Child parent-child 타입은반드시같은인덱스에생성해야하고, 서로다른인덱스 생성해서사용할수없습니다. 또한, 인덱스단위로선언하는것도불가능합니다. parent 타입은반드시기본키 primary key 역할을하는 _id 값을지정해야하는데, child 타입에서문서를등록할때이값을 _parent 필드의외래키로반드시설 022 -

38 정해야합니다. child 타입을정의할때매핑설정에서 _parent.type 값은앞에서생성한 parent 타입명으로지정해야만정상적으로 parent-child 타입을사용할수있습니다. parent type : buyer 구매자의기본정보또는메타데이터를저장하며, 구매자한명의정보는고유합니다. child type : buyer_item 구매상품에구매정보를저장하며, 구매자별로복수개의구매정보가있습니다. Elasticsearch에서는 parent-child 기능구현을위해다음두종류의 API를제공합니다. has_parent 쿼리 / 필터이 API는 parent 도큐먼트에질의하고 child 도큐먼트를반환합니다. has_child 쿼리 / 필터 이 API 는 child 도큐먼트에질의하고 parent 도큐먼트를반환합니다. 다음예제로 parent-child 타입생성과구성을확인해보겠습니다 ( 전체코드는제 공된소스코드 07 를참고하기바랍니다 ). [ Parent-Child 인덱스생성 - settings ] "settings" : { "number_of_shards" : 3, "number_of_replicas" : 0, "index" : { 중략 검색기능확장 - 023

URL Shortener 프로젝트로 배우는 Vert.X 프레임워크

URL Shortener 프로젝트로 배우는 Vert.X 프레임워크 Hanbit ebook Realtime 95 URL Shortener 프로젝트로배우는 Vert.x 프레임워크 김요한지음 URL Shortener 프로젝트로배우는 Vert.x 프레임워크 김요한지음 URL Shortener 프로젝트로배우는 Vert.X 프레임워크 초판발행 2015 년 4 월 10 일 지은이김요한 / 펴낸이김태헌펴낸곳한빛미디어 ( 주 ) / 주소서울시마포구양화로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Elasticsearch 의한글검색활용 Elastic Community Engineer 김종민 2018. 10. 18 Elastic? Elastic? Elasticsearch 라는검색엔진을개발한회사입니다. (ELK Stack 으로더잘알려져있습니다.) 검색엔진은우리주변여기저기에있습니다. 요즘은검색엔진이데이터분석에도쓰입니다. 4 SEARCH Multilingual

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 공개 SW 솔루션설치 & 활용가이드 시스템 SW > 데이터관리 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리 -

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 오픈소스검색엔진을활용한 데이터분석 Elastic Stack 을이용한데이터분석 김종민 Tech Evangelist @Elastic 2017.10.26 Elastic? Elastic? Elasticsearch 라는검색엔진을개발한회사입니다. (ELK Stack 으로더잘알려져있습니다.) 검색엔진은우리주변여기저기에있습니다. 요즘은검색엔진이데이터분석에도쓰입니다. Elastic

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

안전한 웨 애플리케이션을 위한 자바스크립트 보안

안전한 웨 애플리케이션을 위한 자바스크립트 보안 119 안전한웹애플리케이션을위한 Y.E 리앙지음 / 박미정옮김 자바스크립트보안 119 안전한웹애플리케이션을위한 Y.E 리앙지음 / 박미정옮김 자바스크립트보안 이도서는 JavaScript Security(PACKT publishing) 의번역서입니다 표지사진김민국이책의표지는김민국님이보내주신풍경사진을담았습니다. 리얼타임은독자의시선을담은풍경사진을책표지로보여주고자합니다.

More information

160322_ADOP 상품 소개서_1.0

160322_ADOP 상품 소개서_1.0 상품 소개서 March, 2016 INTRODUCTION WHO WE ARE WHAT WE DO ADOP PRODUCTS : PLATON SEO SOULTION ( ) OUT-STREAM - FOR MOBILE ADOP MARKET ( ) 2. ADOP PRODUCTS WHO WE ARE ADOP,. 2. ADOP PRODUCTS WHAT WE DO ADOP,.

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

C O N T E N T S 목 차 요약 / 1 I. 중남미화장품시장현황 / 3 Ⅱ. 주요국별시장정보 / 9 ( 트렌드 유통망 인증 ) 1. 브라질 / 9 2. 멕시코 / 콜롬비아 / 칠레 / 64 Ⅲ. 우리기업진출전략 / 79 # 첨부. 화장품관

C O N T E N T S 목 차 요약 / 1 I. 중남미화장품시장현황 / 3 Ⅱ. 주요국별시장정보 / 9 ( 트렌드 유통망 인증 ) 1. 브라질 / 9 2. 멕시코 / 콜롬비아 / 칠레 / 64 Ⅲ. 우리기업진출전략 / 79 # 첨부. 화장품관 Global Market Report 17-023 Global Market Report 중남미주요국화장품시장동향과우리기업진출전략 C O N T E N T S 목 차 요약 / 1 I. 중남미화장품시장현황 / 3 Ⅱ. 주요국별시장정보 / 9 ( 트렌드 유통망 인증 ) 1. 브라질 / 9 2. 멕시코 / 29 3. 콜롬비아 / 46 4. 칠레 / 64 Ⅲ. 우리기업진출전략

More information

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8>

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8> 데이터베이스 (Database) ER- 관계사상에의한관계데이터베이스설계 문양세강원대학교 IT특성화대학컴퓨터과학전공 설계과정 [ 그림 3.1] 작은세계 요구사항들의수정과분석 Functional Requirements 데이타베이스요구사항들 FUNCTIONAL ANALYSIS 개념적설계 ERD 사용 High level ltransaction Specification

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

실무 예제로 배우는 Elasticsearch 검색엔진 기본편

실무 예제로 배우는 Elasticsearch 검색엔진 기본편 Hanbit ebook Realtime 59 실무예제로배우는 Elasticsearch 검색엔진기본편 정호욱지음 실무예제로배우는 Elasticsearch 검색엔진 기본편 실무예제로배우는 Elasticsearch 검색엔진기본편 초판발행 2014 년 3 월 25 일 지은이정호욱 / 펴낸이김태헌펴낸곳한빛미디어 ( 주 ) / 주소서울시마포구양화로 7길 83 한빛미디어

More information

elastic-meetup

elastic-meetup Elastic Search Engine 을 Data Base 로활용 - 박영민 목차 1. 개요 2. RDB ERD구조를엘라스틱색인구조로변환 3. QUERY DSL -> SQL 쿼리에서바로사용 4. ElasticSearch CRUD 처리 5. 서비스아키텍쳐구성 6. 처리 Performance 비교 (MariaDB vs Elasticsearch) 7. 구성시고려사항

More information

본책- 부속물

본책- 부속물 PROGRAMMING RUBY PROGRAMMING RUBY : THE PRAGMATIC PROGRAMMER S GUIDE, 2nd Ed. Copyright c 2005 Published in the original in the English language by The Pragmatic Programmers, LLC, Lewisville. All rights

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

빅데이터 분산 컴퓨팅 -6

빅데이터 분산 컴퓨팅 -6 Hive Data Management Join in Hive 빅데이터분산컴퓨팅박영택 Hive 에서의 Joins Hive 에서서로다른데이터간의 Join 은빈번하게발생 Hive 에서지원하는 Join 의종류 Inner joins Outer joins(left, right, and full) Cross joins( Hive 0.1 이상버전 ) Left semi joins

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

RUCK2015_Gruter_public

RUCK2015_Gruter_public Apache Tajo 와 R 을연동한빅데이터분석 고영경 / 그루터 ykko@gruter.com 목차 : R Tajo Tajo RJDBC Tajo Tajo UDF( ) TajoR Demo Q&A R 과빅데이터분석 ' R 1) R 2) 3) R (bigmemory, snowfall,..) 4) R (NoSQL, MapReduce, Hive / RHIPE, RHive,..)

More information

슬라이드 1

슬라이드 1 ment Perspective (주)아임굿은 빅데이터 기술력, 반응형웹 제작, 온라인마케팅 노하우를 겸비한 IT 솔루션개발 및 마케팅 전문 기업입니다. 웹 정보를 수집하는 크롟링 시스템과 대량의 데이터를 처리하는 빅데이터 기술을 통해 쉽게 지나칠 수 있는 정보를 좀 더 가치있고 흥미로운 결과물로 변화하여 고객에게 제공하고 있습니다. 또한 최근 관심이 높아지고

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

Windows Live Hotmail Custom Domains Korea

Windows Live Hotmail Custom Domains Korea 매쉬업코리아2008 컨퍼런스 Microsoft Windows Live Service Open API 한국 마이크로소프트 개발자 플랫폼 사업 본부 / 차세대 웹 팀 김대우 (http://www.uxkorea.net 준서아빠 블로그) Agenda Microsoft의 매쉬업코리아2008 특전 Windows Live Service 소개 Windows Live Service

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

C O N T E N T 목 차 요약 / 4 Ⅰ. 서론 Ⅱ. 주요국별대형유통망현황 / Ⅲ. 시사점및진출방안 ( 첨부 ) 국가별주요수입업체

C O N T E N T 목 차 요약 / 4 Ⅰ. 서론 Ⅱ. 주요국별대형유통망현황 / Ⅲ. 시사점및진출방안 ( 첨부 ) 국가별주요수입업체 Global Market Report 13-045 2013.6.07 CIS 대형유통망현황및진출방안 C O N T E N T 목 차 요약 / 4 Ⅰ. 서론 Ⅱ. 주요국별대형유통망현황 / Ⅲ. 시사점및진출방안 ( 첨부 ) 국가별주요수입업체 C IS 대형유통망현황및진출방안 요 약 - 1 - Global Market Report 13-045 - 2 - C IS 대형유통망현황및진출방안

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Synergy EDMS www.comtrue.com opyright 2001 ComTrue Technologies. All right reserved. - 1 opyright 2001 ComTrue Technologies. All right reserved. - 2 opyright 2001 ComTrue Technologies. All right reserved.

More information

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤 Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤 (byounggon.kim@opence.org) 빅데이터분석및서비스플랫폼 모바일 Browser 인포메이션카탈로그 Search 인포메이션유형 보안등급 생성주기 형식

More information

클라우드컴퓨팅 주요법령해설서 2017. 11. 목차 3... 5 I... 15 II... 39 1. 공공분야... 41 2. 금융분야... 71 3. 의료분야... 81 4. 교육분야... 95 5. 신산업등기타분야... 101 III... 109 요약문 5, 15 3, 1 16~ 18 15 11 16 4, 16 7,,, 5 16 5, 16 7~10,,,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Elasticsearch Fulltext 검색서비스적용기 기술 VS 서비스 아프리카 TV 정경석 2018.10.18 Whoami? 아프리카TV 검색 / 캐시클러스터 기술서저자 2015(netty), 2017(cache) soscon 발표 명실상부한콩라인 Redis Netty Elasticsearch Purpose of the talk 기술 VS 서비스 첫번째이야기

More information

Ubiqutious Pubilc Access Reference Model

Ubiqutious Pubilc Access  Reference Model Hadoop/Hbase 기반의 Twitter 공간정보분석 군산대학교컴퓨터정보공학과 {pseudo_jo, didvuddn, kwnam}@kunsan.ac.kr 조현구, 양평우, 남광우 배경및필요성 Twitter 스트림에서의공간정보추출 - 공간현상의추출및공유부분은부족 Twitter 스트림에서의정보추출 - 자연어기반텍스트정보셋에서의키워드추출 - 시간의변화에따른이슈변화모니터링

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

빅데이터분산컴퓨팅-5-수정

빅데이터분산컴퓨팅-5-수정 Apache Hive 빅데이터분산컴퓨팅 박영택 Apache Hive 개요 Apache Hive 는 MapReduce 기반의 High-level abstraction HiveQL은 SQL-like 언어를사용 Hadoop 클러스터에서 MapReduce 잡을생성함 Facebook 에서데이터웨어하우스를위해개발되었음 현재는오픈소스인 Apache 프로젝트 Hive 유저를위한

More information

개발자를 위한 오라클 SQL 튜닝

개발자를 위한 오라클 SQL 튜닝 126 개발자를위한 오라클 SQL 튜닝 이경오지음 126 개발자를위한 오라클 SQL 튜닝 이경오지음 표지사진강수진이책의표지는강수진님이보내주신풍경사진을담았습니다. 리얼타임은독자의시선을담은풍경사진을책표지로보여주고자합니다. 사진보내기 ebookwriter@hanbit.co.kr 개발자를위한오라클 SQL 튜닝 초판발행 2016 년 2 월 16 일 지은이이경오 / 펴낸이김태헌펴낸곳한빛미디어

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

iOS 7 핵심 노트: Xcode 5, 플랫 UI, API 중심으로 살펴보는 iOS 7

iOS 7 핵심 노트: Xcode 5, 플랫 UI, API 중심으로 살펴보는 iOS 7 Hanbit ebook Realtime 51 Xcode 5, 플랫 UI, API 중심으로 살펴보는 ios 7 ios 7 핵심 노트 야곰 지음 Xcode 5, 플랫 UI, API 중심으로 살펴보는 ios 7 ios 7 핵심 노트 ios 7 핵심 노트 Xcode 5, 플랫 UI, API 중심으로 살펴보는 ios 7 초판발행 2013년 12월 31일 지은이 야곰

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

Microsoft Word - How to make a ZigBee Network_kr

Microsoft Word - How to make a ZigBee Network_kr 1 단계 ZigBee 네트워크설정방법 이보기는 ProBee 기기를이용해 ZigBee 네트워크를설정하는방법을보여줍니다. 2 단계 이보기에서사용된 SENA 제품입니다 : ProBee ZE10 Starter Kit ProBee ZS10 ProBee ZU10 3 단계 ZigBee 네트워크입니다. SE1 SE2 SE3 ZS10 ZS10 ZS10 R4 R5 R3 R1

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

슬라이드 1

슬라이드 1 4. Mobile Service Technology Mobile Computing Lecture 2012. 10. 5 안병익 (biahn99@gmail.com) 강의블로그 : Mobilecom.tistory.com 2 Mobile Service in Korea 3 Mobile Service Mobility 4 Mobile Service in Korea 5 Mobile

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

정부3.0 국민디자인단 운영을 통해 국민과의 소통과 참여로 정책을 함께 만들 수 있었고 그 결과 국민 눈높이에 맞는 다양한 정책 개선안을 도출하며 정책의 완성도를 제고할 수 있었습니다. 또한 서비스디자인 방법론을 각 기관별 정부3.0 과제에 적용하여 국민 관점의 서비스 설계, 정책고객 확대 등 공직사회에 큰 반향을 유도하여 공무원의 일하는 방식을 변화시키고

More information

슬라이드 제목 없음

슬라이드 제목 없음 5.2 ER 모델 ( 계속 ) 관계와관계타입 관계는엔티티들사이에존재하는연관이나연결로서두개이상의엔티티타입들사이의사상으로생각할수있음 관계집합은동질의관계들의집합 관계타입은동질의관계들의틀 관계집합과관계타입을엄격하게구분할필요는없음 요구사항명세에서흔히동사는 ER 다이어그램에서관계로표현됨 ER 다이어그램에서다이어몬드로표기 관계타입이서로연관시키는엔티티타입들을관계타입에실선으로연결함

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

슬라이드 1

슬라이드 1 사용 전에 사용자 주의 사항을 반드시 읽고 정확하게 지켜주시기 바랍니다. 사용설명서의 구성품 형상과 색상은 실제와 다를 수 있습니다. 사용설명서의 내용은 제품의 소프트웨어 버전이나 통신 사업자의 사정에 따라 다를 수 있습니다. 본 사용설명서는 저작권법에 의해 보호를 받고 있습니다. 본 사용설명서는 주식회사 블루버드소프트에서 제작한 것으로 편집 오류, 정보 누락

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

메뉴얼41페이지-2

메뉴얼41페이지-2 데이터 기반 맞춤형 성장관리 솔루션 스마트빌 플러스 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여 등록합니다. 금융정보 자동수집을 위하여 인증서이름, 아이디, 비밀번호를 등록합니다. 통합 자동 수집 금융정보 통합 자동수집을 실행합니다 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Autodesk Software 개인용 ( 학생, 교사 ) 다운로드가이드 진동환 (donghwan.jin@autodesk.com) Manager Autodesk Education Program - Korea Autodesk Education Expert 프로그램 www.autodesk.com/educationexperts 교육전문가프로그램 글로벌한네트워크 /

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

강의 개요

강의 개요 정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋

More information

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기 소규모 비즈니스를 위한 YouTube 플레이북 YouTube에서 호소력 있는 동영상으로 고객과 소통하기 소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

untitled

untitled : 2009 00 00 : IMS - 1.0 : IPR. IMS,.,. IMS IMS IMS 1). Copyright IMS Global Learning Consortium 2007. All Rights Reserved., IMS Korea ( ). IMS,. IMS,., IMS IMS., IMS.,., 3. Copyright 2007 by IMS Global

More information

Observational Determinism for Concurrent Program Security

Observational Determinism for  Concurrent Program Security 웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

iOS 9 핵심 노트

iOS 9 핵심 노트 116 ios 9 핵심노트야곰 지음 116 ios 9 핵심노트야곰 지음 표지사진변진남이책의표지는변진남님이보내주신풍경사진을담았습니다. 리얼타임은독자의시선을담은풍경사진을책표지로보여주고자합니다. 사진보내기 ebookwriter@hanbit.co.kr ios 9 핵심노트 초판발행 2015 년 11 월 16 일 지은이야곰 / 펴낸이김태헌펴낸곳한빛미디어 ( 주 ) /

More information

CSG_keynote_KO copy.key

CSG_keynote_KO copy.key 101. 3 Shutterstock 4 Shutterstock 5 Shutterstock? 6? 10 What To Create 10 Ways to Find Trends and Inspiration 12 15 17 :. 21 24 Shutterstock 26 29 -. 31 Shutterstock : 36 " " 37! 39 41 45 46 47 49 Copyright

More information

Database Search 편 * Database Explorer 8개의카테고리로구성되어있으며, 데이터베이스의폴더역할을하는 subset ( 혹은 subbase) 을생성하여데이터를조직및관리하게된다. 클릭! DNA/RNA Molecules : feature map의데이터

Database Search 편 * Database Explorer 8개의카테고리로구성되어있으며, 데이터베이스의폴더역할을하는 subset ( 혹은 subbase) 을생성하여데이터를조직및관리하게된다. 클릭! DNA/RNA Molecules : feature map의데이터 Database Search 편 * Database Explorer 8개의카테고리로구성되어있으며, 데이터베이스의폴더역할을하는 subset ( 혹은 subbase) 을생성하여데이터를조직및관리하게된다. 클릭! DNA/RNA Molecules : feature map의데이터정보를 annotation하고, 다른소스로부터가져온데이터를 VectorNTI 내부포맷으로저장시킨다.

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

FFmpeg 라이브러리: 코덱과 영상 변환을 중심으로

FFmpeg 라이브러리: 코덱과 영상 변환을 중심으로 111 FFmpeg 라이브러리 코덱과 영상 변환을 중심으로 이기곤 지음 111 FFmpeg 라이브러리 코덱과영상변환을중심으로 이기곤지음 표지사진유형진이책의표지는유형진님이보내주신풍경사진을담았습니다. 리얼타임은독자의시선을담은풍경사진을책표지로보여주고자합니다. 사진보내기 ebookwriter@hanbit.co.kr FFmpeg 라이브러리코덱과영상변환을중심으로 초판발행

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

**한빛소리02,3,4월호

**한빛소리02,3,4월호 No.208 http://www.hanbit1.co.kr 2014. 2~4 Hanbit C/O/N/T/E/N/T/S http://www hanbit co kr http://www hanbit co kr http://www hanbit co kr http://www hanbit co kr http://www hanbit co kr http://www

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

PowerPoint Template

PowerPoint Template SOFTWARE ENGINEERING Team Practice #3 (UTP) 201114188 김종연 201114191 정재욱 201114192 정재철 201114195 홍호탁 www.themegallery.com 1 / 19 Contents - Test items - Features to be tested - Features not to be tested

More information

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

RVC Robot Vaccum Cleaner

RVC Robot Vaccum Cleaner RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

네트워크 보안 시스템 구축과 보안 관제_보안 관제편

네트워크 보안 시스템 구축과 보안 관제_보안 관제편 128 Max 의해킹과보안시리즈 네트워크보안시스템구축과장상근지음보안관제 - 보안관제편 - 128 Max 의해킹과보안시리즈 네트워크보안시스템구축과장상근지음보안관제 - 보안관제편 - Max 의해킹과보안시리즈네트워크보안시스템구축과보안관제 - 보안관제편 - 초판발행 2016 년 4 월 15 일 지은이장상근 ( 맥스 ) / 펴낸이김태헌펴낸곳한빛미디어 ( 주 ) / 주소서울시마포구양화로

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information