주제: 플러그인 구조 개선
간단한 이야기부터 :)
TTonWikipedia (얼마전에 공개했죠) 와 SoojungBinder (공개할 정도가 안되고 이건 계속 심심할때 건드리고 있습니다) 를 만들면서, 무지무지하게 '필요하다' 라고 느낀 것들이 몇가지 있습니다. 몇가지 hack을 통해서 그러한 기능들을 구현하려고 했었는데, 만들다가 그 한계에 부딪혔고, '그래 이게 무슨 삽질이냐' 라는 생각이 퍼뜩 들었습니다.
'무슨말이야?' 하시는 분들을 위해 실례로 제가 겪은 과정을 설명드릴게요 :) 공개가 되어있으니 TTonWikipedia의 예를 들어 보겠습니다.
본문의 내용에 계속 [wp]태그를 넣어주는 것이 귀찮고, 예전에 작성한 글들에 그러한 마크업을 하는 것도 힘들기 때문에 차라리 단어목록을 지정하면 그 단어들도 자동으로 위키백과로의 링크를 만드는 것이 어떨까 했습니다. 그러기 위해서는 사용자가 단어목록을 저장할 수 있어야 하지요.
그래서 index.xml에서 지정하면 제작자의 홈페이지 주소로 링크가 생긴다는 점에 착안하여 그 링크 주소를 플러그인 주소로 하고, 링크를 눌렀을 경우 환경설정 메뉴가 뜨도록 해 보았습니다. 거기까지는 일단 ok.
여기서, 플러그인의 환경설정이 가능하도록 지원해야 한다는 생각을 했습니다
그 다음에 단어목록을 저장해야 하는데, 일단 sql을 사용하기 위하여 새 글을 하나 만들고, 그 글을 데이터베이스로 사용하면 어떨까 하는 생각이 들었습니다. 그렇지만 그 경우 블로그에서 검색하면 단어목록의 단어들을 입력할 때 마다 검색이 됩니다. 그래서 포기. 파일입출력으로 가자! 해서 파일 입출력을 통하여 플러그인 디렉토리에 환경설정이 저장되도록 해야겠다는 생각을 했습니다.
그런데 거기까지는 좋았는데, 다중블로그의 경우 사용자마다 환경설정 파일이 달라야 할겁니다. 결국 저장되는 파일 이름에 사용자 아이디를 지정하거나 하는 식으로 여러개의 환경설정 파일을 만들어야 하는 문제가 생깁니다.
여기서, 파일 입출력을 통한 플러그인 환경설정은 정말 비효율적이라는 생각을 하게 되었습니다.
그리고, 이사를 가거나 할 때 백업기능을 이용하면, 그 전에 입력했던 단어목록들은 어떻게 되는거지? 라는 생각까지 하고서는 그런 식의 hack으로는 안되겠다, 그냥 플러그인 기능을 엎는게 낫겠다 했습니다.
결국, 각 플러그인의 환경설정값은 sql에 들어가야 한다는 결론이었습니다.
세 줄 요약입니다 :
* 플러그인의 환경설정이 가능하도록 지원해야 한다.
* 파일 입출력을 통한 플러그인 환경설정은 정말 비효율적이며 결국, 각 플러그인의 환경설정값은 sql에 들어가야 한다.
* 플러그인 아키텍처가 사용할 수 있는 필드를 유저별 sql 필드에 추가해야 하며, 그 값들은 백업시에 함께 저장되어야 한다.
이상이 의견이었습니다.
세 줄을 위해 잡설이 길었네요^^;
-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'