Metro/Windows 8

윈도우8: 초성검색 확장메서드 by 모다(홍준모)

길버트리 2013. 1. 17. 13:25

초성검색

 

윈도우8 스토어앱 개발에 사용할 수 있는

모다(홍준모)님의 한글초성검색 라이브러리를 소개합니다.

 

모다님께서 페북 윈도우8 관심그룹 등에서 공개하신지는 수개월 흘렀습니다만,

막상 쓸려고 하면 google등에서 검색이 잡히지 않아,

검색 결과에 좀 잡히라고 이렇게 포스트를 쓰고 있습니다.

 

 

string의 확장 메서드로 KEqual, KContains를 지원해서,

개발자들이 손쉽게 초성 검색을 활용할 수 있게 합니다.

 

string keyword = "ㅇㄱㅂ";
List<string> words = GetWords();
 
var exactMatchs = words.Where(c=>c.KEqual(keyword));
var containingMatchs = words.Where(c=>c.KContains(keyword));

 

 

이 밖에도 문자열에서 초성을 추출해주는 KExtractChosung(...)과

두 문자열의 초성패턴이 같은지 여부를 확인해주는 KMatches(...)도 있으니

많은 사랑 부탁드립니다.

 

제 시간을 절약할 수 있게 해준 모다님께 정말 감사드립니다.

 

 

 

 

 

확장메서드와 네임스페이스

 

*팁 일반적으로 A라는 클래스의 확장메서드는 A라는 원(original)클래스와 같은 namespace로

정의가 되면 일반적인 사용환경에서 using 네임스페이스문 추가없이 편리하게 심리스(Seamless)한 사용이 가능합니다.

 

즉, string의 확장메서드를 구현할 때는

string 네임스페이스인 namespace System으로 확장메서드 클래스도 구현한다.

 

현재 이 라이브러리는 namespace Moda.Libraries.StringExtension.Korean를 사용하고 있기 때문에

사용하실 때 코드 상단에 using Moda.Libraries.StringExtension.Korean을 추가하셔야만

string 타입의 객체에 점(.)을 찍으실 때, KEqual, KContains와 같은 확장메서드가 보이시게 되어있습니다.

 

그래서 제가 다음번 릴리즈부터는 namespace System으로 변경하여 주십사 요청을 드려놓은 상태입니다.

 

일단 프로젝트사이트에서 소스 다운로드 가능하게 제공되고 있으니까

새 릴리즈가 나오기 전에 직접 수정하시고 빌드하셔서 사용하셔도 됩니다.