근 1년만에 다시 약속했던(?) 글을 이어가려고 한다.원래는 싸다구 서버쪽 개발스택에 대한 이야기를 쓰려고 접속한건데... 왜 이걸 쓰고 있는지는 잘 모르겠다. ㄱ-) 1. 들어가기전 잡담 재현률과 정확도를 간단히 설명하자면 재현률은 얼마나 검색결과가 많이 나오게 하느냐이고, 정확도는 얼마나 정확하게 나오느냐고 할수 있다. 정확하다는건 다르게 말해 검색결과가 적게 나오므로 재현률은 떨어진다고 말할수 있다.복잡하게 생각하지말고 검색결과에 영향을 주는 개념이라고 생각하고 일단 넘어가자. 재현률과 정확도는 상반되는 개념이지만, 또 전혀 상관없다고 보기도 뭐한 모호한 개념이다. 뭔 알수없는 소리냐고 할텐데, 이해를 돕고자 비유하자면 "섹시하면서 귀여운여자"와 같은 느낌이다. (??!!) 사족으로 '귀여우면서도 ..
짜잔 !!!어제 '싸다구' 개발맨들이모여서 최종 릴리즈를 했습니다. !!!현재 아이폰은 아직 심사중인데요. 반가운 소식은 현재 안드로이드play스토어에서는 찾아볼수 있습니다. 아직 기능적으로 아쉬운 부분도많이 보일텐데요.기능 추가요청은 리뷰글에 남겨주시거나, 블로그에 직접 댓글로 남겨주시면 저희 개발진들이 적극적으로 반영하도록 하겠습니다. 이제 특가를 놓치지 말고 모아서 보세요. * 설치하기:https://play.google.com/store/apps/details?id=com.indf.sadagu 저희 싸다구는 특가정보만 모아보여주다보니 (각 쇼핑몰에 있는 특가메뉴)모든 상품이 있는게 아니라 필요한게 보이지 않을수 있어요. 지금 저희 indf개발연구소에서는 모든 사람이 싸게 사는걸 목표로 하고 있기 ..
2014년 7월 25일 사용법도 쉽고 특가상품만 모아볼 수 있는 '싸다9' 가 출시됩니다. 싸다9는 저렴하게 사기위해 흩어진 특가정보를 모아서 편하게 볼수 있는 컨셉의 앱입니다. 지식쇼핑같은 최저가를 찾아주는것이 아니라 특가정보를 모아주는것이 특징입니다. 저희서비스의 목표는 다음과 같습니다. 쉽고, 편하게, 싸게 1. 소개 화면구성을 잠깐 보여드리면 아래와 같습니다 현재 시간에는 아직 앱스토어에 올라가지 않았기 때문에 다운을 받지는 못하겠네요. 이번주 금요일 1차버전을 공개할 예정입니다 ^O^ 왼쪽이 아이폰, 오른쪽이 안드로이드 버전인데요 UI가 다르죠? 화면이 작은 아이폰은 1단구성, 화면이 큰편인 안드로이드는 2단구성으로 되어있습니다. 2. 이름 스토리 '싸다구 프로젝트'는 4월쯤 특가만 모아서 보여..
1. 형태소 분석이 왜 필요한데? 지금까지 우리가 아는 기법인 like 검색이나 N-gram을 사용한다고 가정하자. 지금 안군은 배가 너무 고프기도 하고, 오랫만에 친구들을 만나는것에 너무 들떠있다.역시 남자라면 "고기" 아니겠어? 하고 검색을 했다.그런데 검색 결과는 아래와 같았다. (연두색 칠한 단어 참고) "..." "참외를 먹으면 참 외롭고, 태연은 벌에 쏘여도 태연함" 이런 말장난 같은 검색결과가 실제라면 문제가 있다.하지만, 우리가 알고있는 색인기법에는 실제로 저런 결과가 나올수 있는 한계점을 가졌다. 그럼 어떻하지?? 2. 형태소 분석 2.1 형태소분석은 뭐임? 형태소란? "뜻은 가진 가장 작은 말의 단위" 말한다. 이제 약간의 국문학 지식이 필요한 시점이다 ㅠ형태소라고 하는것도 사실 여러가..
TistoryTalk 개발에 대한 이야기를 해보도록 하겠다. v0.3 Plain버전을 개발해왔는데 어느정도 마무리가 되었다. Plain 버전이라고 이름을 붙인 이유는 DaumDevDay 2013 에서의 TistoryTalk 에서 정말 필요한 기능만을 빼고 순수하게 글쓰기에 필요한 기능들만 다시 만들자는 목적에서 시작하였다. v0.3 Plain - 무엇보다고 가장 달라진 점은 글쓰기 부분이 강화되었다는 점인데, 크게 3가지가 추가되었다. 하나는 태그입력, 다른 하나는 카테고리 선택 그리고 마지막으로 멀티 포스팅의 저장이다. 태그입력 부분은 말 그대로 포스팅 하기 직전에 사용자가 원하는 태그를 입력하면 되는 것이고 카테고리는 이전에는 카테고리 없음으로 저장을 했다면 이제는 사용자가 직접 본인 블로그의 카테고..
1. 시작하며 용어의 혼란을 줄이기 위해서 먼저 정리하겠다.단어로 구성된 짧은 문자열을 "단문" 혹은 "문자열"이라고 할 것이고, 여러단어로 구성된 긴문자열은 "텍스트"라고 하겠다. 텍스트를 색인하는 기술은 더 더양한 기술이 필요하다.사실 단문 검색을 위한 색인은 정규화와 인덱스를 통해 DB로도 처리가능한 수준이다.하지만, 텍스트의 경우는 검색엔진이 아니면 처리할 수 없는 속도와 품질의 격차가 생긴다. 그 이유는 쿼리로 만든다면 아래와 같은데, 좌절단 검색이기 때문에 인덱스를 쓸수가 없다. *2부 1편 3. 인덱스를 사용하지 못하는 문제(full scan)에서 이미 언급한 이야기* select * from 테이블 where body like '%맛집%' and body like '%종로%'; 2. 문장을..
제 13회 Daum DevDay 글을 통해서 밝힌적이 있지만 생각보다 티스토리 Open API는 잘 구성되어 있는 편이 아니며 스펙대로 동작 하지 않는 경우도 있었다. (그럼에도 티스토리를 사용한 이유는 국내 블로그중 유일한 글 올리기 API가 있기 때문이다.) 티 스토리 API의 대부분은 oAuth 인증을 받은 상태에서 진행 되도록 되어 있다. 때문에 티스토리를 이용한 무엇인가를 만든다면, 혹은 API를 사용한다면 OAuth는 반드시 지나가야 하는 관문이다. 특히 이 글에서는 TistoryTalk 앱에서 어떻게 OAuth 인증을 하였는가에 대해서 잘 설명해 보도록 하겠다. 1. 티스토리 앱 등록하기 - OAuth 인증을 위해서는 일단 티스토리에 가입이 되어 있어야 한다. 그리고 나서 티스토리 오픈 AP..
1. 서론 색인의 효과와 원리에 대해서는 이제 말했고 본격적인 검색엔진의 차이점을 이야기 하고자 한다. 참고로 오픈소스 검색엔진 (예: solr, 엘라스틱서치)의 경험은 미비하고, 이전 회사에서 사용하던 독크루저라는 상용검색엔진을 토대로 이야기 할것이다. 글을 들어가기에 앞서서 숫자(날짜)의 검색, full scan의 검색에 대해서는 다루지 않음을 밝혀둔다. 그 이유는 너무 일반적이고 이미 알고 있는 내용이기 때문이다. 그래서 DB와 검색엔진에서 큰 차이를 보이는 문자열(텍스트)의 검색과 색인에 대한 이야기를 다루고자 한다. 2. 인덱스 다시한번 기억하기 기억력이 가물가물거리는 독자를 위해 한번 간단히 정리해보겠다. 색인을 한다는건... 색인어와 페이지번호를 추출해서 빠르게 찾게 하는작업이라고 할 수 있..
1. 들어가기전... 들어가기에 일단 사용하는 용어부터 혼동을 위해 미리 말해둘것이 있다. 참고로 네이버 사전을 이용해 index를 검색해 보면 아래와 같이 번역되어 있는데 "인덱스"를 번역한게 "색인"이다 그런데, "인덱스"와 "색인"을 둘 다 섞어서 사용한다. 앙드레김 선생님도 아닌데 왜 영어랑 해석된 단어랑 섞어쓰는거지? 라고 할지 모르겠는데 편의상 아래와 같이 구분해서 쓰도록 하겠다. "색인" (=indexing) 1. 인덱스를 만드는 과정이나 행위를 의미함. "인덱스" (=index) 1. 색인하여 만들어진 결과물. 2. 색인과 인덱스 "오늘은 5월 20 이죠? 바로 '세계인의 날' 입니다" 주말근무를 하던 선배는 라디오를 듣다가 깜짝놀라며 말했다. "뭐 오늘이 색인이 날이라고?" 색인이 뭔데 ..
Daum DevDay에서 개발했던 티스토리 톡(TistoryTalk)를 살려내려고 마음을 먹었다. 약간 늦은 감도 있긴 하지만 그래도 버리기 아깝다는 생각도 들었고, 여전히 티스토리는 모바일에서 블로깅을 하기가 어렵기 때문에 목표 자체를 아래와 같이 모바일 기기에서 티스토리 블로깅을 쉽게 할수 있도록 한다. 로 설정하였다. 깃허브(https://github.com/AhnSeongHyun/TistoryTalk) 에 저장소를 마련하였고 일주일에 조금씩이라고 업데이트를 할 예정이다. 여러가지 가야할 길이 멀고 다양한 기능이 많겠지만 우선적으로는 Daum DevDay2013 에 국한되어 있었던 기능을 지우고, 플레인(Plain) 티스토리 톡으로 만드는 것을 우선적으로 할 예정이다. 해당 작업들을 위해서 마일스톤..