10
10 주 주주주주 - Open API : Naver & Daum OpenAPI - 2008 컴컴컴컴컴컴컴 ( I )

10 주 실습강의

  • Upload
    elpida

  • View
    80

  • Download
    6

Embed Size (px)

DESCRIPTION

10 주 실습강의. - Open API : Naver & Daum OpenAPI - 2008 컴퓨터공학실험 ( I ). Naver OpenAPI. http://openapi.naver.com 검색을 위한 API, 검색 부수기능을 위한 API 와 지도 API 및 데스크톱 위젯 API 를 제공 API Key 를 발급받아 , API 요청시 해당 Key 를 전달 기본 API 는 5,000 건 / 일 , 지도 API 는 50,000 건 / 일로 제한되어 있음 - PowerPoint PPT Presentation

Citation preview

Page 1: 10 주 실습강의

10 주 실습강의

- Open API : Naver & Daum OpenAPI -

2008 컴퓨터공학실험 ( I )

Page 2: 10 주 실습강의

Artificial Intelligence Laboratory

Naver OpenAPI

http://openapi.naver.com 검색을 위한 API, 검색 부수기능을 위한 API 와 지도

API 및 데스크톱 위젯 API 를 제공 API Key 를 발급받아 , API 요청시 해당 Key 를 전달 기본 API 는 5,000 건 / 일 , 지도 API 는 50,000 건 /

일로 제한되어 있음 출력 형식은 RSS 2.0 형식으로 통일되어 있음 API 키 이용등록 / 수정 페이지에서 일반 Key 와 지도

API 용 Key 를 발급받을 수 있음 API 요청 예제

- http://openapi.naver.com/search?key=test&query=go&display=5&start=1&target=kin&sort=sim

Page 3: 10 주 실습강의

Artificial Intelligence Laboratory

Daum OpenAPI

http://dna.daum.net/apis 검색 API, 키워드 추천 API, 블로그 글 수정 / 추가 API,

쇼핑 및 여행 정보 검색 API 제공 JavaScript 만으로 손쉽게 이용할 수 있도록 AJAX API 를

추가로 제공 용도에 따른 각각의 API Key 를 발급받아서 사용 가능

- 하나의 인증키로 호출할 수 있는 사용가능 회수는 5,000 건 / 일 로 제한되어있음

오픈 API 일반 사용자 등록 – 사용자 인증키 – 발급받기 메뉴를 통해 발급받을 수 있음

API 요청 예제- http://apis.daum.net/search/knowledge?

q=daum&result=20&pageno=1&sort=accu&range=progress&apikey=xxx

Page 4: 10 주 실습강의

Artificial Intelligence Laboratory

HTTP Cookies

웹 페이지 서버에서 사용자 하드 디스크로 보내는 아주 작은 텍스트 파일- 사용자 고유의 것- 코드로 실행될 수는 없음- 제공한 서버에서 필요로하는 데이터를 저장하고 , 이를 유지할 수

있게 해 줌- 보통 인증 , 세션 유지 / 추적 , 사용자에 특정한 정보를 담는데 사용- 사용자의 브라우즈 행동을 추적하는데 사용되기도 함- 쿠키는 각 사이트마다 20 개의 쿠키만 허용 , 더 많은 것을

저장하려고 하면 가장 오래된 쿠키가 삭제- 최대 4096 바이트를 저장할 수 있음

사용자 정보 저장방법은 세션 상태 (Session States) 를 사용하는 것이지만 , 세션 상태는 쿠키에 의존하게 되어 있음

Page 5: 10 주 실습강의

Artificial Intelligence Laboratory

HTTP Cookies on ASP.NET

HttpResponse 개체를 통해 Cookies 라는 컬렉션을 노출 Page 클래스 – Response 속성 – Cookies 컬렉션 참조 C# - ASP.NET 에서 쿠키

- 생성

- 삭제 Expires 요소를 현재 날짜보다 뒤로 작성함으로 , 브라우저가 이를

삭제하도록 유도

Page 6: 10 주 실습강의

Artificial Intelligence Laboratory

실습 목표

Naver & Daum 지식 통합검색- 질의어를 입력 받아 , 두 서비스의 검색 결과를 출력- 사용자 이름을 입력 받아 쿠키로 저장

사용자 해제 없이 페이지를 닫았다가 다시 열면 해당 사용자가 떠야 함

- 사용자 등록 시 로그 아웃 버튼 배치- 사용자 이름이 있으면 해당 사용자가 넣은 질의어를 미리

제공해준 DB 에 저장 해당 DB 는 DataSet / DataSetAdapter 를 사용하여 구현할 것 지난 질의는 링크를 제공하여 클릭시 그 검색 결과가 나타나게 할 것

- 사용자 이름이 없으면 지난 질의어를 최근 5 개만 출력- 사용자 이름에 맞는 지난 질의어 출력- 성인 검색어 판별하여 제한 , 오타 변환 API 를 사용 , 대체어를

출력- AJAX / UpdatePanel 의 사용은 자유 구현

Page 7: 10 주 실습강의

Artificial Intelligence Laboratory

구현 예

Page 8: 10 주 실습강의

Artificial Intelligence Laboratory

구현시 사용할 SQL 구문

지난 저장된 질의문 중 가장 높은 5 개만 제시- SELECT TOP 5 seq, username, query, querytime

FROM week10ORDER BY seq DESC

특정 사용자 이름으로 검색된 질의문을 최근 순서대로 가져오는 SQL 문- SELECT query, querytime, seq, username FROM week10

WHERE (username = ?) ORDER BY seq DESC

특정 사용자 이름으로 질의문을 DB 에 저장할 때 사용할 SQL 문- INSERT INTO week10

(username, query, querytime)VALUES (?, ?, NOW())

Page 9: 10 주 실습강의

Artificial Intelligence Laboratory

DataSet/DataSetTableAdapter 구성

기본적인 질의에 사용될 것과 , 특정 이름으로 검색할 수 있는 테이블 어댑터 , 그리고 질의문을 DB 에 삽입할 때 사용될 테이블 어댑터를 구성해야 함

Page 10: 10 주 실습강의

Artificial Intelligence Laboratory

GridView / DataTable Binding

절차- 새로운 DataTable 생성- DataColumn 생성 , (DataTable 인스턴스 ).Columns.Add() 로 추가- GridView 에 추가 할 BoundField 를 생성 ,

BoundField.HtmlEncode 속성을 false 로 해 둠- 컬럼 초기화 , GridView.Columns.Add() 로 생성한 BoundField

추가- 데이터를 가져옴

생성한 Datatable.NewRow() 메서드로 새 DataRow 인스턴스 생성 DataRow[“Column 명” ] = Guid.NewGuid().ToString() DataRow[“Column 명” ] = 데이터 값 ; 으로 대입 생성한 DataTable.Rows.Add( 값을 넣은 DataRow 인스턴스 ); 로 열

추가- GridView.DataSource = 생성한 DataTable 대입- GridView.DataBind() 로 데이터 바인딩 하면 화면에 그려진다 .