안녕하세요. 김성한입니다.
OmniWeb 최적화 작업 2차 수정이 끝났습니다. NeXTcube.org 사이트를 만들때 MySQL DB를 사용하는 APM으로 구성한 것은 DB를 이용한 게시판의 체계화와 검색의 용이성에 많은 염두를 두었었습니다. 특히 Documentation 게시판을 만들고 나니 관련 문서를 손쉽게 찾기 위해서는 기존의 단순 검색 기능으로는 부족하다는 생각이 들어서 검색 엔진을 새로 만들었습니다. 이번에 2차 게시판 소스 업그레이드를 하면서 추가된 부분은 다음과 같습니다.
1) 기존의 단순 문자열 검색 대신에 AND/OR 검색이 가능하도록 하였습니다. 검색창 부분에서 AND/OR 선택창이 새로 추가된 것을 볼 수 있습니다. 디폴트 값은 자동 AND 검색입니다.
2) 검색시 문자열 구분은 Google 검색 사이트를 참고해서 스페이스 구분자로 설정하였습니다. 검색하고자 하는 단어들 사이에 하나 이상의 스페이스를 넣으면 AND/OR 연산자에 따라서 복합 검색 됩니다.
3) 검색시 문자열 제외 또한 Google 검색 사이트와 마찬가지입니다. 검색 결과에서 일정한 문자열을 제외하려면 해당 문자열 앞에 "-" 부호를 입력하면 됩니다.
4) 각 검색어는 한글 1자, 영문 2자 이상이 되어야만 가능합니다. 그리고 정규식에 사용되는 특수문자는 검색할 수 없도록 하였습니다.
5) 영문 검색어를 사용하였을때 기존에는 검색어 하일라이트시 대소문자 구분을 하지 않았습니다. 이제는 원문 그대로 대소문자를 구분해서 하일라이트 되도록 수정하였습니다. 단, 입력할때의 검색 단어는 신경쓰지 않으셔도 대소문자 모두 검색됩니다.
6) 검색어가 이미지나 링크 태그 안에 있을 경우에 하일라이트 되면서 본문이 깨지는 경우를 방지하기 위해서 html 태그 보존 기능을 넣었습니다.
7) Documentation 게시판과 같이 분량이 많은 문서가 올라가는 게시판은 본문 DB Type을 TEXT(65535자)에서 MEDIUMTEXT(16777215자)로 변경하였습니다. 이때 검색 속도를 높이기 위해서 본문 보기에서만 본문 검색어 하일라이트가 되도록 수정하였습니다.
8) 1차 개정 때에는 최신 글들에 모두 re 아이콘을 첨부되는 것이였으나 알아보기 어려운 점이 있어서 글자색으로 구분이 가능하도록 바꿨습니다. 최신 글이 올라왔을 경우에는 빨간색으로 제목 글자색이 하일라이트 되고, 검색시에는 파란색으로 하일라이트 됩니다.
9) CSS를 지원하는 브라우져에서 게시판 글 내용을 볼 때 파일이나 문서에 링크가 있는 경우에 자동 밑줄 첨가 기능을 넣었습니다. 당근 CSS 지원안하는 OmniWeb은 변경 사항 없습니다.
10) 이미지나 파일을 올릴 수 있는 게시판에서 다운로드 하려면 마우스 오른쪽 버튼을 누르고 "다른 이름으로 대상 저장" 옵션을 선택해야만 되던 버그를 수정하였습니다. 이제는 바로 클릭하면 해당 이미지나 파일의 다운로드가 가능합니다.
11) 소스를 보여주기 위해 <(<), >(>) 태그를 사용한 글의 경우에 수정이나 관련글 쓰기에서 <, > 태그로 변환되는 버그를 수정하였습니다.
12) admin 권한으로만 글을 올릴 수 있는 News나 Documentation 게시판에서 관리자 인증없이 수정 버튼을 누르면 DB 에러가 발생하는 버그를 수정하였습니다.
13) 게시판 소스를 분석하면서 중복되는 부분을 독립된 function으로 수정함으로써 기존 소스의 3분의 2 가량으로 화일 크기가 작아졌습니다. 근데 검색 엔진을 새로 달고 이것저것 기능을 추가하고 나니 다시 원래 크기랑 비슷해져 버렸습니다.
14) 맥용 인터넷 익스플로러에서 본문 보기시 테이블이 깨져 보이는 버그를 수정하였습니다. 이로써 넥스트용 OmniWeb, 윈도우와 맥용 Internet Explorer, 리눅스용 Netscape 모두 동일하게 보입니다.
이번에는 검색 엔진을 새로 만드는데 주안점을 두었고, 기타 버그를 수정하고 미비점을 보완하였습니다. MySQL, PHP 레퍼런스와 JS 보드, 로그 보드 등의 소스를 주로 참고하였습니다. 근데 검색 엔진을 만드는데 가장 많은 시간이 들었는데 겉보기엔 티 하나도 안나는구먼요. -.-;
그럼 좋은 하루 되세요...
|