어떤 욕심과 어떤 곤란이 만나면 어떻게 되는지 아세요?
저는 모듈을 기웃거리게 되더군요ㅜ
회원 검색 위젯을 만드는데요. https://xetown.com/resources/1027330
닉네임을 초성/중성/종성 분리로 검색을 하게 하려다보니 대강 ...
1) DB를 가져와서 초/중/종성 분리하고
2) 검색어를 초/중/종성 분리해서
3) 둘을 비교한 뒤
4) 일치하는 닉네임을 가져오고
5) DB 컬럼값에서 검색어에 해당 길이만큼 하이라이트 표시
- 근데 여기서 'ㅂ'만 입력되면 추출되는 닉네임은 바가지, 바다, 바디, 바람, 바보, 부디, 비행기 등으로 하이라이트 표시가 되어야 합니다.
- 그리고 '받'이라고 입력되면 바다, 바디, 받아쓰기, 받기 등으로 표시되구요.
6) 결과값을 유사도 순으로 재정렬한 뒤 최종 출력
... 이런 식으로 나오게 하면서도 + 회원수가 10000만개 넘는 대형 사이트의 경우(예. skyo님의 그 사이트)에도 속도 문제를 해결하려면..
결국 DB에 자소 분리가 된 닉네임 컬럼이 따로 있어야겠더라구요ㅠㅠ
그래요. 욕심 때문이에요ㅜ
심지어 욕심이 이게 다가 아니에요.
가급적이면 회원 검색 결과가 팔로워나 팔로우 회원를 우선 순위로 하고, 그 외에는 검색어와 유사도 순으로 나오면 좋잖아요?
하아, 욕심이지요. 제 실력에...
아마 개발에 실패할 것 같은데요.
그래도 이런 기능을 시도라도 해보려면 결국 모듈 제작이겠더라구요.
근 2년 동안 모듈 제작만은 샥샥 피해 다녔는데, 결국 막다른 길에 다다른 느낌입니다;;;
아, 아, 하소연은 아니구요.
본론으로 가서 질문 드리려고 합니다.
이런 기능을 위젯으로 구현하게끔 해주는 모듈 제목은 뭐가 좋을까요?
한글 제목은 '회원 탐색기' 정도로 생각하고 있는데요.
모듈 폴더 제목이 딱히 맘에 드는 게 없네요.
제 prefix를 붙여서 apmemberㅋ, 한글 제목을 직역해서 membernavigator나 memberbrowser, 조금 줄여서 memnavi, 아니면 문법파괴 신조어로 membering ㅋㅋ
요약. 모듈 이름을 뭘로 하면 좋을까요?

댓글 28
따라서 치기편한 모듈이름이랑 그에맞는 뜻을유지하면좋을것같아요.
불필요한 prefix붙이고 믿줄긋고그러면.. 코딩하실때 상당히 피로쌓입니다
$oAp_ParserModel = getModel('ap_parser');
이런식으로 코드가..ㅠㅠ
그래서 별로 실용적이지 않고요
변수이름도 단순히
$user_list 와같이 언더바를 쓰지말고 파스칼이나 낙타기법을 사용하는것으로 연습해보세요.
이게 적응하고나면 엉청 도움되요..ㅎㅎ
파스칼 : $UserList
낙타 : $userList
낙타로 하면, 모듈 폴더 이름이나 php파일 이름들도 낙타로 해야 하나요?
(제 뇌가 좀 순수합니다ㅎㅎ)
모듈이름은 전부 소문자를 쓰시면되요.
ex)
parserlink.class.php
<?php
class Parserlink extents ModuleObject
{
~~~
}
이런식으로 하시면될듯.
class 이름은 제일 첫문자만 대문자를 사용해주시면 됩니다.
https://www.poesis.org/tools/modulegen/
기진님의 모듈생성기로 모듈생성해서 써보세요 ㅎㅎ
(별 괴랄한 이름으로 많이 다운 받아서 DB에 기록 남았을까봐 부끄럽네요ㅋ)
PSR 규칙에 따르면 클래스명은 파스칼, 클래스 메소드와 속성은 낙타, 클래스 속성이 아닌 일반적인 변수명은 소문자+언더바를 사용하는 것이 정석이지만... XE에서는 쓸데없는 접두사도 많이 붙고 변수명에 낙타를 쓰는 일도 종종 있지요.
생각해 보니 흔히 사용하는 변수명도 $logged_info, $module_info, $document_list 등 언더바 형태가 좀더 많은 것 같습니다. DB 컬럼 이름도 모두 언더바를 사용하기 때문에, 일반적인 변수명은 아무래도 언더바로 통일하는 쪽이 더 설득력이 있네요.
XE에서 모듈명을 제대로 인식하려면 중간에 대문자가 들어가면 안 된다는 제한이 있습니다. 그 밖에는 최대한 간결하게 (불필요한 prefix는 배제하고) 그리고 일관성있게 쓰기만 하면 됩니다.
회원 리스트를 출력해주는 서비스 모듈로 컨셉을 잡고, 거기에 검색어 자동완성을 위해 자소분리 컬럼 넣어준 뒤, 위젯에서 알아서 활용하면 오오..
memplorer, membrowser.... 말로만 보면 memtector, memigator도 괜찮아 보이네요.
그나저나 윤삼님도 모듈에 손 대셨으면 ^^
모듈은 손은 대보는데 성공 가능성이 안 보여요;;;
(읭, 좋은데요?)
어때요?ㅋㅋ
(근데 손볼 게 너무 많네요;;; 모듈제작자님들께 새삼 감사한 마음이 들고 있습니다ㄷㄷ)