상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명은 소정의 웹 페이지로부터 소정의 데이터를 추출하기 위한 웹 스크래이핑 규칙을 유지하는 웹 스크래이핑 규칙 저장부, 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 상기 웹 페이지로부터 추출 데이터를 추출하는 검색 로봇, 제1 입력 데이터와 연관된 제1 추출 데이터를 유지하는 추출 데이터 저장부, 및 상기 검색 로봇을 제어하여 소정의 시간 간격으로 상기 제1 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 상기 웹 페이지로부터 제2 추출 데이터를 추출하도록 하고, 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하는지 판단하는 웹 스크래이핑 제어부를 포함하는 웹 페이지 정보 추출 장치를 제공한다.
또한, 본 발명은 사용자로부터 타 바둑 서비스에서의 상기 사용자와 연관된 전적 또는 기력의 보상 요청을 입력 받는 단계, 소정의 웹 스크래이핑 규칙에 따라 상기 타 바둑 서비스와 연관된 웹 페이지에 대한 웹 스크래이핑을 수행하여 상기 사용자와 연관된 제1 전적 데이터 또는 제1 기력 데이터를 추출하는 단계, 및 상기 추출된 제1 전적 데이터 또는 제1 기력 데이터에 기초하여 상기 사용자의 제2 전적 데이터 또는 제2 기력 데이터를 산출하는 단계를 포함하는 인터넷 바둑 서비스 방법을 제공한다.
또한, 본 발명은 소정의 난이도에 대응하는 바둑 문제 데이터 및 상기 바둑 문제 데이터와 연관된 바둑 해답 데이터를 유지하는 바둑 문제 데이터베이스, 사용자에게 상기 바둑 문제 데이터를 웹 페이지 상에 시각적으로 제공하는 바둑 문제 제공부, 상기 사용자로부터 상기 바둑 문제 데이터에 대한 바둑 답변 데이터를 입력 받기 위한 사용자 입력부, 상기 바둑 답변 데이터와 상기 바둑 해답 데이터를 비교하여 상기 사용자와 연관된 평가 지수를 산출하기 위한 평가 지수 산출부, 상기 평가 지수에 대응하는 기력 등급 데이터를 유지하는 기력 등급 데이터베이스, 및 상기 기력 등급 데이터베이스를 참조하여 상기 평가 지수에 대응하는 상기 사용자와 연관된 기력 등급 데이터를 산출하기 위한 기력 등급 산출부를 포함하는 인터넷 바둑 서비스 시스템을 제공한다.
또한, 본 발명은 바둑 문제 데이터, 상기 바둑 문제 데이터와 연관된 복수 개의 예시 답변 데이터, 상기 예시 답변 데이터의 각각에 대응하는 사용자 패턴 정보-상기 사용자 패턴 정보는 바둑의 기풍에 관한 정보를 포함함-를 유지하는 바둑 문제 데이터베이스, 사용자에게 상기 바둑 문제 데이터 및 상기 예시 답변 데이터를 웹 페이지 상에 시각적으로 제공하는 바둑 문제 제공부, 상기 사용자로부터 상기 예시 답변 데이터 중 하나의 선택을 입력 받기 위한 사용자 입력부, 및 상기 선택된 예시 답변 데이터에 대응하는 상기 사용자 패턴 정보를 식별하고 상기 사용자 패턴 정보에 포함된 바둑의 기풍에 관한 정보를 상기 사용자에게 제공하는 바둑 기풍 판단부를 포함하는 인터넷 바둑 서비스 시스템을 제공한다.
또한, 본 발명은 상술한 웹 페이지 정보 추출 방법 및 인터넷 바둑 서비스 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공한다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 웹 페이지 정보 추출 장치를 도시한 블록도이다.
웹 페이지 정보 추출 장치(100)는 웹 스크래이핑 규칙 저장부(101), 검색 로봇(102), 추출 데이터 저장부(103), 관리자 통지부(104) 및 예상 웹 스크래이핑 규칙 저장부(105)를 포함한다.
웹 스크래이핑 규칙 저장부(101)는 소정의 웹 페이지로부터 소정의 데이터를 추출하기 위한 웹 스크래이핑 규칙을 저장한다. 상기 웹 스크래이핑 규칙은 상기 웹 페이지에 기초하여 결정된다.
도 2는 웹 페이지를 형성하기 위한 구문의 일부를 도시한 도면이다. 도 2에서 도면 부호(201)은 사용자와 연관된 바둑에서의 전적 데이터('0승 0무 0패')를 표시한다. 상기 사용자가 바둑에서 승리한 횟수(도 2의 경우에는 '0')를 추출하고자 하는 경우, 예를 들면, 상기 데이터가 도 2에서 도면 부호(201)로 표시한 바와 같은 '0'인 경우 상기 웹 스크래이핑 규칙은 i) '승'의 앞에 존재하고, ii) '<font color ="#SteelBlue">'와 '</font>' 사이에 존재하는 스트링을 추출하는 것 등일 수 있다.
한편, 상술한 예에서는 도 2에서 도시한 바와 같은 웹 페이지의 구문에 기초하여 웹 스크래이핑 규칙을 결정하고 있으나, 상기 웹 스크래이핑 규칙은 CGI(Computer Gateway Interface)에 기초하여 결정될 수도 있다. 즉, 소정의 데이터를 입력한 경우, 상기 웹 페이지에서 소정의 데이터의 입력에 응답하여 CGI 프로그램으로부터 전달되는 출력 값을 기준으로 웹 스크래이핑 규칙을 설정할 수 있다.
검색 로봇(102)은 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 상기 웹 페이지로부터 추출 데이터를 추출한다. 상기 입력 데이터는 일반적으로 상기 웹 스크래이핑을 수행하고자 하는 대상인 상기 웹 페이지와 연관된 사용자 로그인 데이터일 수 있으며, 상기 웹 페이지에서 제공하는 서비스에 따라 계좌 데이터(금융 서비스를 제공하는 경우), 카드 번호(카드 사용에 따른 마일리지를 제공하는 서비스의 경우) 등일 수 있다. 예를 들면, 도 2에서는 사용자 별로 바둑 전적 정보데이터(0승 0무 0패)를 제공하는 웹 페이지 구문의 경우를 도시하고 있으므로, 도 2의 경우 상기 입력 데이터에는 사용자 로그인 데이터가 포함된다. 즉, 사용자 로그인 데이터를 이용하여 상기 사용자의 전적 데이터가 포함된 웹 페이지에 접속하여 상기 웹 페이지로부터 상기 전적 데이터를 추출할 수 있다.
추출 데이터 저장부(103)는 제1 입력 데이터와 연관된 제1 추출 데이터를 유지한다. 상기 제1 입력 데이터는 입력 데이터 중의 하나이고, 상기 제1 추출 데이터는 상기 제1 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 검색 로봇(102)에 의해 소정의 웹 페이지로부터 추출된 추출 데이터(또는 상기 제1 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 검색 로봇(102)에 의해 추출될 것이라고 예상되는 데이터)이다. 상기 제1 입력 데이터 및 상기 제1 추출 데이터는 후술하는 바와 같이 상기 웹 페이지의 구성이 변경됐는지 여부를 판단하는 기준으로 사용된다. 예를 들어, 바둑 사이트의 소정의 웹 페이지와 연관된 추출 데이터는 전적 데이터정보(예를 들어, "100전 50승 50패"에서의 "100", "50" 및 "50"의 정보) 또는 형식과 관련된 정보데이터(예를 들어, "100전 50승 50패"에서의 "전", "승" 및 "패"의 정보)일 수도 있고, 또는 본 발명의 목적에 적합한 기타 여러 가지 웹 스크래이핑과 연관된 데이터 정보일 수 있다.
웹 스크래이핑 제어부(104)는 검색 로봇(103)을 제어하여 소정의 시간 간격으로 상기 제1 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 상기 웹 페이지로부터 제2 추출 데이터를 추출하도록 하고, 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하는지를 판단한다.
상기 웹 페이지가 변경되지 않는 한, 동일한 제1 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 검색 로봇(103)이 추출한 제2 추출 데이터는 항상 제1 추출 데이터와 동일하다. 또한, 상기 제1 추출 데이터가 인터넷 바둑 서비스에서의 사용자의 전적, 또는 계좌에 대응하는 예금액 등으로 변경되는 경우에는 상기 제1 추출 데이터의 값이 웹 스크래이핑 시마다 상이하다고 하더라도 상기 제1 추출 데이터와 상기 제2 추출 데이터가 갖는 형식은 동일할 것이다. 따라서, 동일한 제1 입력 데이터 및 동일한 웹 스크래이핑 규칙에 기초하여 소정 간격으로 검색 로봇(103)이 웹 스크래이핑을 수행한 결과인 상기 제2 추출 데이터가 상기 제1 추출 데이터와 동일하거나 그 형식이 일치하는 경우에는 상기 웹 페이지가 변경되지 않았다고 판단할 수 있다.
상술한 바와 같이, 웹 스크래이핑 제어부(104)는 상기 제2 추출 데이터의 값이 상기 제1 추출 데이터의 값과 일치하는지, 또는 상기 제2 추출 데이터의 형식이 상기 제1 추출 데이터의 형식과 동일한지 여부를 판단함으로써 상기 웹 페이지가 변경되었는지 여부를 알 수 있으나, 보다 용이한 구성을 위해서는 상기 제1 추출 데이터는 상기 전적이나 예금액과는 달리 변동되지 않는 데이터 값을 갖도록 선택되는 것이 바람직할 것이다. 예를 들어, 특정 사용자와 연관된 전적이나 예금액이 변동되지 않는 것이 보장된다면, 상기 특정 사용자와 연관된 전적이나 예금액 데이터는 본 발명을 위한 바람직한 제1 추출 데이터가 될 수 있다.
웹 스크래이핑 제어부(104)에서의 판단 결과 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하지 않는 경우, 관리자 통지부(105)는 그 사실을 소정의 관리자에게 통지한다. 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하지 않는 경우에는 상기 웹 페이지가 변경된 것이라고 할 수 있고, 상기 웹 페이지가 변경된 이상 기존의 웹 스크래이핑 정보에 기초해서는 원하는 데이터를 추출할 수 없다.
따라서, 상기 관리자 통지부(105)로부터 상기 사실을 통지 받은 관리자는 변경된 웹 페이지에 기초하여 새로운 웹 스크래이핑 규칙을 형성하여 웹 스크래이핑 규칙 저장부(101)에 저장함으로써, 그 이후부터는 상기 새로운 웹 스크래이핑 규칙에 의해 웹 스크래이핑이 수행되도록 할 수 있다.
한편, 관리자 통지부(105)로부터 통지를 받은 관리자가 그 때마다 상기 웹 스크래이핑 규칙을 변경해야 한다면 상기 웹 페이지로부터 원하는 데이터를 추출하는 것이 번거로울 수 있다.
따라서, 본 발명의 또 다른 실시예에 따르면, 웹 페이지 정보 추출 장치(100)는 관리자 통지부(105)를 대체하여, 또는 병행하여 예상 웹 스크래이핑 규칙 저장부(106)를 포함한다.
예상 웹 스크래이핑 규칙 저장부(106)는 적어도 하나 이상의 예상 웹 스크래이핑 규칙을 유지한다. 만약, 도 2에서 도시한 웹 페이지의 구문에서 추출하고자 하는 데이터가 상술한 바와 같은 전적 데이터인 경우, 상기 웹 페이지의 구문이 일부 변경된다고 하더라도, 'O승 O무 O패'에서 '승', '무' 및 '패'와 같은 단어는 계속 사용될 확률이 높다. 이때, 예상 웹 스크래이핑 규칙은 상기 '승', '무' 및 '패'라는 단어를 이용하여 형성될 수 있을 것이다.
이와 같이, 변경된 웹 페이지에서 사용 가능성이 높은 웹 페이지의 형식 및 내용을 예측하고 이에 기초하여 상기 예상 웹 스크래이핑 규칙을 형성할 수 있다.
예를 들면, 상기 인터넷 바둑 서비스를 이용하는 사용자의 전적 정보데이터를 얻고자 하는 경우, 하기와 같은 예상 웹 스크래이핑 규칙들이 사용될 수 있다.
1. 제1 예상 웹 스크래이핑 규칙
i) 급수는 회원 ID(Member ID)뒤에 존재한다.
ii) 급수는 "급" 또는 "단" 이라는 글자 앞에 숫자로 존재하며 사이에 공백이나 탭(tab) 문자가 있을 수 있다. 또한 그 숫자 앞에는 "아마", "프로" 라는 단어가 존재할 수 있다.
iii) 전적은 회원 ID(Member ID)뒤에 존재한다.
iv) 총 전적의 수는 "전"이라는 단어 앞에 O개 이상의 공백을 사이에 둔 숫자이다. 전적의 승수는 "승" 이라는 단어 앞에 O개 이상의 공백을 사이에 둔 숫자이다. 전적의 "무"승부 수는 "무"라는 단어 앞에 O개 이상의 공백을 사이에 둔 숫자이다. 전적의 "패"수는 "패"라는 단어 앞에 O개 이상의 공백을 사이에 둔 숫자이다.
2. 제2 예상 웹 스크래이핑 규칙
i) 급수는 회원 ID(Member ID)뒤에 존재한다.
ii) 급수는 "급수" 라는 단어 뒤에 ":"이 오고 그 뒤에 오는 "급" 또는 "단" 이라는 글자 앞에 숫자로 존재하며 사이에 공백이나 탭(tab) 문자가 있을 수 있다. 또한 그 숫자 앞에는 "아마", "프로" 라는 단어가 존재할 수 있다.
iii) 전적은 회원 ID(Member ID)뒤에 존재한다.
iv) 전적의 승수는 "승" 이라는 단어 뒤에 ":"이 오고 그 뒤에 처음으로 나오는 숫자이다. 전적의 무승부수는 "무"라는 단어 뒤에 ":"이 오고 그 뒤에 처음으로 나오는 숫자이다. 전적의 패수는 "패"라는 단어 뒤에 ":"이 오고 그 뒤에 처음으로 나오는 숫자이다.
…
N. 제N 예상 웹 스크래이핑 규칙
…
웹 스크래이핑 제어부(104)는 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하지 않는 경우, 검색 로봇(103)을 제어하여 상기 제1 입력 데이터, 및 예상 웹 스크래이핑 규칙 저장부(106)에 저장되어 있는 예상 웹 스크래이핑 규칙 중 어느 하나에 기초하여 상기 웹 페이지로부터 제3 추출 데이터를 추출하도록 하고, 추출된 상기 제3 추출 데이터가 상기 제1 추출 데이터와 일치하는지 여부를 판단한다.
판단 결과, 상기 제3 추출 데이터와 상기 제1 추출 데이터가 일치하는 경우에는, 상기 예상 웹 스크래이핑 규칙이 상기 변경된 웹 페이지로부터 원하는 데이터를 추출할 수 있는 웹 스크래이핑 규칙에 해당하므로, 상기 예상 웹 스크래이핑 규칙을 웹 스크래이핑 규칙 저장부(101)에 저장한다. 따라서, 검색 로봇(103)은 변경된 웹 스크래이핑 규칙에 따라 데이터를 추출하게 된다.
본 발명의 또 다른 실시예에 따르면, 추출 데이터 저장부(103)는 복수 개의 제1 입력 데이터와 각각 연관된 복수 개의 제1 추출 데이터를 저장하고, 웹 스크래이핑 제어부(104)는 검색 로봇(103)을 제어하여 복수 개의 상기 제1 입력 데이터, 및 상기 예상 웹 스크래이핑 규칙에 기초하여 복수 개의 제3 추출 데이터를 각각 추출하도록 한다. 즉, 하나의 예상 웹 스크래이핑 규칙에 대해 제1 입력 데이터만을 다르게 하여 복수 회 웹 스크래이핑을 수행한다.
웹 스크래이핑 제어부(104)는 상기 각각의 제1 데이터와 연관된 각각의 제1 추출 데이터 및 상기 각각의 제3 추출 데이터를 각각 비교함으로써, 예상 웹 스크래이핑 규칙이 상기 변경된 규칙에 잘 적용되는지 여부를 확실하게 할 수 있다. 즉, 본 실시예에 따른 웹 사이트 데이터 추출 장치(100)는 소정 횟수 이상 상기 예상 웹 스크래이핑 규칙을 사용하여 웹 스크래이핑을 수행하고, 수행 결과가 만족스러운 경우에만 상기 예상 웹 스크래이핑 규칙을 웹 스크래이핑 규칙 저장부(101)에 저장하여 새로운 웹 스크래이핑 규칙으로 채택하는 구성을 하고 있다. 본 실시예에 따르면, 우연히 하나의 상기 제1 입력 데이터 및 예상 웹 스크래이핑 규칙 중 어느 하나에 기초하여 상기 웹 페이지로부터 추출된 제3 추출 데이터가 상기 제1 추출 데이터와 일치하는 경우, 상기 예상 웹 스크래이핑 규칙이 적절한 규칙이라고 판단하는 실수를 피할 수 있도록 한다.
이하, 도 3을 참조하여 본 발명의 또 다른 실시예에 따른 웹 페이지 정보 추출 방법에 대해 설명한다. 본 실시예에 따른 웹 페이지 정보 추출 방법은 상술한 웹 페이지 정보 추출 시스템(100)에서 수행될 수 있다.
웹 페이지 정보 추출 시스템(100)은 단계(301)에서 소정의 웹 페이지로부터 소정의 데이터를 추출하기 위한 웹 스크래이핑 규칙을 소정의 웹 스크래이핑 규칙 저장부에 유지하고, 단계(302)에서 제1 입력 데이터와 연관된 제1 추출 데이터를 유지한다. 상기 제1 추출 데이터는 상기 제1 입력 데이터와 상기 웹 스크래이핑 규칙에 의해 상기 웹 페이지에 대한 웹 스크래이핑을 수행할 경우 추출되는 데이터에 해당한다.
웹 페이지 정보 추출 시스템(100)은 단계(303)에서 소정 시간이 경과했는지 여부를 판단하고, 상기 기간이 경과한 경우 단계(304)에서 상기 제1 입력 데이터 및 상기 웹 스크래이핑 규칙에 기초하여 상기 웹 페이지로부터 상기 제2 추출 데이터를 추출한다.
웹 페이지 정보 추출 시스템(100)은 단계(305)에서 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하는지 여부를 판단한다. 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하는 경우에는 상기 웹 페이지가 변경되지 않았다고 볼 수 있고, 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하지 않는 경우에는 상기 웹 페이지가 변경되었다고 볼 수 있다.
상술한 바와 같은 구성에 의해, 웹 페이지 정보 추출 시스템(100)은 상기 시간 간격 동안 상기 웹 페이지가 변경되었는지 여부를 판단할 수 있다. 상기 웹 페이지가 변경된 경우에는 상기 웹 스크래이핑 규칙에 기초한 웹 스크래이핑에 의해 원하는 데이터를 추출하는 것이 곤란하다.
한편, 상기 소정의 시간 간격은 웹 페이지 정보 추출 시스템(100)에서의 설정에 따라 상이하다. 상기 시간 간격이 좁을수록 상기 웹 페이지가 변경된 사실을 빨리 체크할 수 있으나, 상기 웹 페이지가 오랜 시간 동안 변경되지 않는 경우에는 웹 페이지 추출 정보 시스템(100)에서의 부하를 크게 할 수 있으므로, 상기 시간 간격은 이러한 요소를 고려하여 적절하게 선택하는 것이 바람직하다.
또한, 본 발명의 또 다른 실시예에 따르면, 단계(302)에서 제1 추출 데이터가 아닌 상기 제1 추출 데이터의 데이터 형식을 저장하고, 단계(305)에서는 상기 제1 추출 데이터의 형식과 상기 제2 추출 데이터의 형식이 일치하는지 여부를 판단함으로써 상기 웹 페이지의 변경 여부를 판단한다.
본 발명의 또 다른 실시예에 따르면, 웹 페이지 정보 추출 방법은 단계(306)에서 상기 제1 추출 데이터가 상기 제2 추출 데이터가 일치하지 않는 경우 그 사실을 관리자에게 통지한다. 상기 통지를 받은 관리자는 변경된 웹 페이지에 사용 가능한 새로운 웹 스크래이핑 규칙을 상기 웹 스크래이핑 규칙 저장부에 저장할 수 있다.
이하, 도 4를 참조하여 본 발명의 또 다른 실시예에 따른 웹 페이지 정보 추출 방법에 대해 설명한다. 단계(401 내지 405)는 상술한 실시예에 따른 웹 페이지 정보 추출 방법에서의 단계(301 내지 305)와 동일하므로 이에 대한 설명은 생략한다.
웹 페이지 정보 추출 시스템(100)은 단계(406)에서 적어도 하나 이상의 예상 웹 스크래이핑 규칙을 유지하고, 단계(405)에서의 판단 결과 상기 제1 추출 데이터와 상기 제2 추출 데이터가 일치하지 않는 경우, 단계(407)에서 상기 예상 웹 스크래이핑 규칙 중 하나를 선택한다. 만약, 단계(406)에서 상기 예상 웹 스크래이핑 규칙이 하나만 유지되어 있는 경우에는 단계(407)은 수행하지 않는다.
웹 페이지 정보 추출 시스템(100)은 단계(408)에서 상기 제1 입력 데이터 및 상기 예상 웹 스크래이핑 규칙 중 어느 하나의 예상 웹 스크래이핑 규칙에 기초하여 상기 웹 페이지로부터 제3 추출 데이터를 추출하고, 단계(409)에서 상기 제1 추출 데이터와 상기 제3 추출 데이터가 일치하는지 여부를 판단한다.
판단 결과, 상기 제1 추출 데이터와 상기 제3 추출 데이터가 일치하는 경우에는, 단계(402)로 돌아가서 상기 예상 웹 스크래이핑 규칙을 변경된 웹 페이지에 적용할 수 있는 웹 스크래이핑 규칙으로 사용하기 위해 상기 웹 스크래이핑 규칙 저장부에 저장한다.
만약, 상기 예상 웹 스크래이핑 규칙이 복수 개 유지되어 있는 경우에는, 상기 제1 추출 데이터와 상기 제3 추출 데이터가 일치할 때까지 유지되어 있는 각각의 예상 웹 스크래이핑 규칙에 대해 단계(407 내지 409)를 반복한다.
이와 같은 구성을 통해, 상기 웹 페이지가 변경되는 경우에도 변경된 웹 페이지에 적용될 수 있는 웹 스크래이핑 규칙을 찾아서 적용할 수 있게 된다.
상기 예상 웹 스크래이핑 규칙의 예는 상술한 실시예에 따른 웹 페이지 정보 추출 시스템(100)에서 설명한 바와 같은 규칙들이 사용될 수 있다.
본 발명의 또 다른 실시예에 따르면, 단계(407 내지 409)를 반복한 결과, 상기 제1 추출 데이터와 상기 제3 추출 데이터가 일치하는 경우의 예상 웹 스크래이핑 규칙이 유지되어 있지 않은 경우에는, 웹 페이지 정보 추출 시스템(100)은 적합한 예상 웹 스크래이핑 규칙이 유지되어 있지 않다는 사실을 소정의 관리자에게 통지하는 단계(미도시)를 수행한다. 상기 사실을 통지 받은 관리자는 변경된 웹 페이지에 적용될 수 있는 웹 스크래이핑 규칙을 상기 웹 스크래이핑 규칙 저장부에 저장함으로써, 변경된 웹 페이지로부터 원하는 데이터를 추출할 수 있게 된다.
이하, 도 5를 참조하여 본 발명의 또 다른 실시예에 따른 인터넷 바둑 서비스 방법에 대해 설명한다. 본 실시예에 따른 인터넷 바둑 서비스 방법은 다른 바둑 서비스에서 사용자가 쌓아온 전적 데이터 또는 기력 데이터를 반영한 전적 데이터 또는 기력 데이터를 산출할 수 있는 것을 특징으로 한다.
인터넷 바둑 서비스 시스템은 단계(501)에서 사용자로부터 타 바둑 서비스에서의 상기 사용자와 연관된 전적 또는 기력의 보상 요청을 입력 받으면, 단계(502)에서 소정의 웹 스크래이핑을 수행하여 상기 사용자와 연관된 제1 전적 데이터 또는 제1 기력 데이터를 추출한다.
상기 인터넷 바둑 서비스 시스템은 단계(509)에서 상기 추출된 제1 전적 데이터 또는 제1 기력 데이터에 기초하여 상기 사용자의 제2 전적 데이터 또는 제2 기력 데이터를 산출한다.
상기 인터넷 바둑 서비스 시스템은 상기 제1 전적 데이터 또는 상기 제1 기력 데이터를 그대로 상기 제2 전적 데이터 또는 상기 제2 기력 데이터로 이용할 수도 있고, 소정의 가중치를 주어 상기 제2 전적 데이터 또는 상기 제2 기력 데이터로 이용할 수도 있다.
한편, 본 발명의 또 다른 실시예에 따르면, 상기 제1 전적 데이터는 상기 타 바둑 서비스에서 바둑을 둔 대국 횟수에 관한 대국 횟수 데이터를 포함하고, 상기 인터넷 바둑 서비스 시스템은 단계(503)에서 상기 대국 횟수 데이터가 소정 횟수 이하인지 여부를 판단한다. 판단 결과 상기 대국 횟수 데이터가 소정 횟수 이하인 경우에는 상기 인터넷 바둑 서비스 시스템은 단계(504)에서 소정의 처리를 수행한다. 이러한 소정의 처리는 단계(509)에서 상기 제2 전적 데이터를 산출하는 경우, 상기 제2 전적 데이터에 포함되는 대국 횟수 데이터를 "0"으로 처리하도록 하는 것일 수 있다.
본 실시예에 따른 인터넷 바둑 서비스 방법은 타 바둑 서비스에 쌓은 전적 또는 기력이 높을수록 그 의미가 크고, 만약 상기 대국 횟수가 미미한 경우에는 상기 대국 횟수를 굳이 제2 전적 데이터에 반영할 필요가 크지 않기 때문이다. 예를 들면, 상기 타 바둑 서비스에서 5회의 대국만을 한 경우라면 그 대국 횟수를 본 실시예에 따른 인터넷 바둑 서비스 방법에 따라 제공되는 바둑 서비스에서 인정해 줄 필요성이 적다.
따라서, 본 실시예에 따른 인터넷 바둑 서비스 방법을 이용하면 타 바둑 서비스에서 쌓은 전적 또는 기력을 전부 또는 일정 부분 인정 받을 수 있게 된다.
본 발명의 또 다른 실시예에 따르면, 상기 인터넷 바둑 서비스 시스템은 단계(505)에서 상기 인터넷 바둑 서비스 시스템은 복수의 사용자와 연관된 상기 타 바둑 서비스에서의 기력 데이터를 유지하고, 소정의 기간이 경과한 후 상기 복수의 사용자와 연관된 상기 바둑 서비스에서의 기력 데이터를 유지한다(단계(506, 507)). 단계(505) 및 단계(507)에서 얻어진 결과인 상기 복수의 사용자와 연관된 상기 타 바둑 서비스에서의 기력 데이터 및 상기 소정의 기간이 경과한 후 상기 복수의 사용자와 연관된 상기 바둑 서비스에서의 기력 데이터로부터 상기 인터넷 바둑 서비스 시스템은 단계(508)에서 기력 변동률을 산출할 수 있다.
이때, 단계(509)에서 상기 추출된 제1 기력 데이터에 기초하여 상기 사용자의 제2 기력 데이터를 산출하는 단계는 상기 기력 변동률에 기초하여 상기 제2 기력 데이터를 산출하는 것을 특징으로 한다.
상기 타 바둑 서비스를 이용하는 사용자들의 기력 데이터와, 상기 소정의 기간이 경과한 후 본 실시예에 따른 인터넷 바둑 서비스 방법에 따른 바둑 서비스에서의 상기 사용자들의 기력 데이터로부터 기력 변동율을 산출하면, 서로 다른 기력 측정 방법을 갖는 타 바둑 서비스의 기력을 객관적으로 반영할 수 있다.
예를 들면, 상기 타 바둑 서비스를 이용한 사용자 A, 사용자 B 및 사용자 C의 기력 데이터가 각각 4급, 7급 및 2급이었으나, 상기 소정의 기간(예를 들면, 한 달)이 경과한 후 본 실시예에 따른 인터넷 바둑 서비스 방법을 이용한 바둑 서비스(이하 '본 바둑 서비스'라 함)에서의 상기 사용자 A 내지 C의 기력 데이터가 각각 5급, 9급 및 3급인 경우를 가정한다. 이때, 각 사용자의 기력 데이터의 변화량은 각각 1급, 2급 및 1급에 해당한다. 이러한 결과에 의해, 상기 사용자 A 내지 C의 기력 데이터가 타 바둑 서비스를 이용한 경우보다 전반적으로 하락된 것을 알 수 있다. 이는 타 바둑 서비스에서의 기력 측정 방법이 상이하거나, 타 바둑 서비스를 이용하는 사용자들의 바둑 실력이 전반적으로 떨어지는 것과 같은 다양한 원인이 있을 수 있다. 따라서, 상기 타 바둑 서비스에서의 기력 데이터를 본 바둑 서비스에 그대로 반영하는 것은 처음부터 본 바둑 서비스를 이용하던 사용자들과의 관계에서 형평성, 객관성을 담보할 수 없기 때문에, 상기 인터넷 바둑 서비스 시스템은 사용자들의 전반적인 기력 변동율을 산출하고, 이러한 변동율에 기초하여 단계(509)를 수행하고 있다.
이와 같은 구성은 상기 기력 데이터뿐만이 아니라, 상기 전적 데이터에 대해서도 동일하게 적용될 수 있으며, 이에 대한 설명은 생략하기로 한다.
또한, 본 발명은 상술한 각 실시예에 따른 웹 페이지 정보 추출 방법 및 인터넷 바둑 서비스 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공한다.
이하, 본 발명의 또 다른 실시예에 따른 인터넷 바둑 서비스 시스템에 대해 설명한다. 본 실시예에 따른 인터넷 바둑 서비스 시스템은 인터넷 바둑 서비스를 이용하는 사용자의 기력을 측정할 수 있는 것을 특징으로 한다.
도 6은 본 실시예에 따른 인터넷 바둑 서비스 시스템(600)을 도시한 블록도이다. 인터넷 바둑 서비스 시스템(600)은 바둑 문제 데이터베이스(601), 바둑 문제 제공부(602), 사용자 입력부(603), 평가 지수 산출부(604), 기력 등급 산출부(605), 기력 등급 데이터베이스(606) 및 출력부(607)을 포함한다.
바둑 문제 데이터베이스(601)는 소정의 난이도에 대응하는 바둑 문제 데이터 및 상기 바둑 문제 데이터와 연관된 바둑 해답 데이터를 유지하고, 바둑 문제 제공부(602)는 사용자에게 상기 바둑 문제 데이터를 웹 페이지 상에 시각적으로 제공한다.
상기 웹 페이지를 통해 상기 바둑 문제 데이터를 제공 받은 사용자가 상기 바둑 문제 데이터를 풀고 이에 대한 바둑 답변 데이터를 입력하면, 사용자 입력부(603)는 상기 바둑 답변 데이터를 수신한다.
평가 지수 산출부(604)는 상기 바둑 답변 데이터와 상기 바둑 해답 데이터를 비교하여(즉, 상기 바둑 문제 데이터에 대해 맞는 답변을 입력했는지 여부를 판단하여) 상기 사용자와 연관된 평가 지수를 산출한다. 상기 바둑 문제 데이터가 복수 회 제공되고 이에 대한 바둑 답변 데이터가 복수 회 입력되는 경우, 평가 지수 산출부(604)는 상기 각각의 바둑 답변 데이터에 대해 평가 지수를 누적하여 산출한다. 즉, 첫 번째로 제공된 바둑 문제에 대해 사용자가 상기 바둑 해답 데이터와 일치하는 바둑 답변 데이터를 입력한 경우 상기 평가 지수를 소정 값 증가시키고, 다음으로 제공된 바둑 문제에 대해 상기 바둑 해답 데이터와 일치하지 않는 바둑 답변 데이터를 입력한 경우 상기 평가 지수를 소정 값 감소시키는 방법이 사용될 수 있다.
기력 등급 데이터베이스(605)는 상기 평가 지수에 대응하는 기력 등급 데이터를 유지하고, 기력 등급 산출부(606)는 기력 등급 데이터베이스(605)를 참조하여 상기 평가 지수에 대응하는 상기 사용자와 연관된 기력 등급 데이터를 산출한다.
예를 들면, 상기 평가 지수가 100 내지 150인 경우에는 상기 기력 등급 데이터가 9급, 상기 평가 지수가 151 내지 200인 경우에는 상기 기력 등급 데이터가 8급과 같은 데이터가 기력 등급 데이터베이스(605)에 유지될 수 있다.
본 발명의 또 다른 실시예에 따른 인터넷 바둑 서비스 시스템(600)은 상기 사용자와 연관된 상기 평가 지수 및 상기 사용자와 연관된 기력 등급 데이터를 상기 사용자에게 제공하기 위한 출력부(607)를 더 포함한다. 출력부(607)는 상기 평가 지수 및 상기 사용자와 연관된 기력 등급 데이터를 소정의 수치로 표시할 수 있을 뿐만 아니라, 상기 웹 페이지 상에서 소정의 수형도를 이용하여 제공할 수 있다. 도 7은 출력부(607)에 의해 상기 웹 페이지 상에 제공되는 수형도의 일례이다. 도 7에서 도면 부호(701)로 표시한 도형은 사용자가 입력한 바둑 답변 데이터에 따라 좌우 둘 중의 하나를 선택하며 아래쪽으로 이동해 간다. 즉, 출력부(607)는 평가 지수 산출부(604)에서 산출된 평가 결과의 증감에 따라 또한 입력된 바둑 답변 데이터의 입력 횟수에 따라, 도면 부호(701)로 표시한 도형의 위치 및 상기 도형이 움직인 경로 등을 갱신하여 표시한다. 도면 상에서 사용자는 첫 번째 문제는 맞추고, 두 번째 문제는 틀렸다. 상기 사용자가 이러한 방법으로 8번의 문제를 푼 결과, 상기 사용자와 연관된 기력 등급 데이터는 도면 부호(702)로 표시한 바와 같이 '14급'이다.
또한, 본 발명의 또 다른 실시예에 따르면, 바둑 문제 데이터베이스(601)는 상기 바둑 문제 데이터에 대응하는 출제 순서 정보를 더 유지하고, 바둑 문제 제공부(602)는 상기 출제 순서 정보에 기초하여 상기 바둑 문제 데이터를 상기 사용자에게 제공한다. 따라서, 상기 사용자에게 연달아 동일한 바둑 문제 데이터, 또는 출제된 지 얼마 되지 않은 동일한 바둑 문제 데이터가 제공되는 것이 방지되고, 상기 사용자와 연관된 평가 지수, 또는 기력 등급 데이터를 객관적으로 측정할 수 있다.
이하, 본 발명의 또 다른 실시예에 따른 인터넷 바둑 서비스 시스템에 대해 설명한다. 본 실시예에 따른 인터넷 바둑 서비스 시스템은 인터넷 바둑 서비스를 이용하는 사용자의 기풍을 측정할 수 있는 것을 특징으로 한다.
도 8은 본 실시예에 따른 인터넷 바둑 서비스 시스템(800)을 도시한 블록도이다. 인터넷 바둑 서비스 시스템(800)은 바둑 문제 데이터베이스(801), 바둑 문제 제공부(802), 사용자 입력부(803) 및 바둑 기풍 판단부(804)를 포함한다.
바둑 문제 데이터베이스(801)는 바둑 문제 데이터, 상기 바둑 문제 데이터와 연관된 복수 개의 예시 답변 데이터, 상기 예시 답변 데이터의 각각에 대응하는 사용자 패턴 정보를 유지한다. 상기 사용자 패턴 정보에는 바둑의 기풍에 관한 정보를 포함한다. 상기 바둑의 기풍에는 공격적 기풍 또는 방어적 기풍이 포함될 수 있다.
바둑 문제 제공부(802)는 사용자에게 상기 바둑 문제 데이터 및 상기 바둑 문제 데이터와 연관된 복수 개의 예시 답변 데이터를 웹 페이지 상에 시각적으로 제공한다. 상기 사용자는 상기 제공된 바둑 문제 데이터를 보고, 상기 예시 답변 데이터 중에서 상기 바둑 문제 데이터에 대한 적절한 해답이라고 생각되는 예시 답변 데이터를 선택하여 사용자 입력부(803)를 통해 인터넷 바둑 서비스 시스템(800)으로 입력한다.
바둑 기풍 판단부(804)는 상기 선택된 예시 답변 데이터에 대응하는 상기 사용자 패턴 정보를 식별하고 상기 사용자 패턴 정보에 포함된 바둑의 기풍에 관한 정보를 상기 사용자에게 제공한다.
도 9는 바둑 문제 제공부(802)로부터 상기 사용자에게 제공되는 바둑 문제 데이터 및 예시 답변 데이터의 일례를 도시한 도면이다. 사용자는 제공된 바둑 문제 데이터를 보고(도 9에서 '바둑판' 상의 각 '바둑돌'들의 위치를 보고) 예시 답변 데이터인 '가'(도면 부호(901)로 표시함) 또는 '나'(도면 부호(902)로 표시함) 중 하나를 선택할 수 있다. 바둑 문제 데이터베이스(801)에 유지되고 '가'에 대응하는 사용자 패턴 정보는 '공격적 기풍'이고, '나'에 대응하는 사용자 패턴 정보는 '방어적 기풍'인 경우, 상기 사용자로부터 '가'의 선택이 입력되면 상기 사용자는 공격적 기풍으로 바둑을 두는 사용자라고 생각될 수 있다. 인터넷 바둑 서비스 시스템(800)은 상기 기풍을 포함한 상기 사용자의 패턴을 더욱 정확하게 파악하기 위해 상기 사용자에게 상기 바둑 문제 데이터 및 예시 답변 데이터를 여러 번 제공하여 식별된 사용자의 패턴 정보의 평균을 종합적으로 판단하여 상기 사용자에게 제공할 수 있다.
한편, 도 10은 본 발명에 따른 웹 사이트 데이터 추출 장치 또는 인터넷 바둑 서비스 시스템 등을 구성하는 데 채용될 수 있는 범용 컴퓨터 시스템의 내부 블록도이다.
컴퓨터 시스템(1000)은 램(RAM: Random Access Memory)(1002)과 롬(ROM: Read Only Memory)(1003)을 포함하는 주기억장치와 연결되는 하나 이상의 프로세서(1001)를 포함한다. 프로세서(1001)는 중앙처리장치(CPU)로 불리기도 한다. 본 기술분야에서 널리 알려져 있는 바와 같이, 롬(1003)은 데이터(data)와 명령(instruction)을 단방향성으로 CPU에 전달하는 역할을 하며, 램(1002)은 통상적으로 데이터와 명령을 양방향성으로 전달하는 데 사용된다. 램(1002) 및 롬(1003)은 컴퓨터 판독 가능 매체의 어떠한 적절한 형태를 포함할 수 있다. 대용량 기억장치(Mass Storage)(1004)는 양방향성으로 프로세서(1001)와 연결되어 추가적인 데이터 저장 능력을 제공하며, 상기된 컴퓨터 판독 가능 기록 매체 중 어떠한 것일 수 있다. 대용량 기억장치(1004)는 프로그램, 데이터 등을 저장하는데 사용되며, 통상적으로 주기억장치보다 속도가 느린 하드디스크와 같은 보조기억장치이다. CD 롬(1006)과 같은 특정 대용량 기억장치가 사용될 수도 있다. 프로세서(1001)는 비디오 모니터, 트랙볼, 마우스, 키보드, 마이크로폰, 터치스크린 형 디스플레이, 카드 판독기, 자기 또는 종이 테이프 판독기, 음성 또는 필기 인식기, 조이스틱, 또는 기타 공지된 컴퓨터 입출력장치와 같은 하나 이상의 입출력 인터페이스(1005)와 연결된다. 마지막으로, 프로세서(1001)는 네트워크 인터페이스(1007)를 통하여 유선 또는 무선 통신 네트워크에 연결될 수 있다. 이러한 네트워크 연결을 통하여 상기된 방법의 절차를 수행할 수 있다. 상기된 장치 및 도구는 컴퓨터 하드웨어 및 소프트웨어 기술 분야의 당업자에게 잘 알려져 있다.
상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.