1

주제: 텍스트큐브 개발 회의록 (2008.11.22)

2008년 11월 22일에 오프라인에서 모여서 논의한 텍스트큐브 개발 관련 회의록입니다.

참석자 : coolengineer, daybreaker, gofeel, graphittie, inureyes
---------------------------

1. 새 프로젝트 - General setup program (for PHP-based program)
          - EOLIN clone project ('Open-ping')

2. TableQuery 확장.
  1. 구조 지정 후 생성기능 (일반적인 경우에는 로드되지 않고, extension으로 기능함)
  2. join 지원
  3. 하부는 DBquery의 확장을 사용

3. 캐시 레벨의 개선
  pageCache - '전체 페이지에 대한 내용'
  DBCache, MMCache, FCache - 인터페이스를 통일함 (ICache)
   - basic methods : memorize, recall, forget

4. Singleton 패턴 도입
  - 현 trunk에 이미 구현
  - 기본적으로 static methods들의 집합이 아닌 object 기반으로 재작성
  - Session, Cache(다시 짜는) 를 기초로 시작
  - include -> initialize 로 통합
  - Auth의 컴포넌트-함수의 중복 코드 삭제
  - 모든 클래스의 첫 문자를 대문자로 통합 (과거 버전 지원은 레거시 지원 부분에서 alias로 처리)
  - suri 및 globalVariableParser의 통합 및 재작성
 
5. PHP를 아예 '타지 않는' cache (아파치 레벨에서 처리를 끝내도록)
  현 구조의 "기초 조사" 필요
  가장 간단하게는 rewrite에서 바로 호출.
    - resources 하위
    - attach 하위는 반드시 PHP를 거치지 않도록 수정
    - skin 하위의 접근에서 skin.html, index.xml 의 접근을 막도록 변경
   
6. 흑역사+1
  새로 설계한 dispatching 구조가, 구현 단계에서 문제가 있는 것으로 확인 (구조상 페이지 로딩 속도가 엄청나게 느려짐)
  써먹기 위해서는 PHP 5.3+ 가 필요하므로 흑역사 트리로 분기하고, 1주일 전 코드를 기반으로 개선 사항 중 반영할 수 있는 것들을 다시 반영
  이후 구조 개선에 대한 논의가 추가적으로 필요하다.
  PHP 5.2 에서는 namespace가 지원되지 않으므로 어떻게 autoload routine을 단순화 할 수 있을지에 대해서도 논의 필요

7. Free handler (index.gif.php 등)
  현재는 파일을 찾기 위해서 루틴이 복잡하다. - 어디에 위치하고 있는지 알기 위해서 blogid를 알아 내야 한다.
  cache 하위에서 icon을 블로그의 prefix를 사용한 파일 이름으로 저장하고, DB 입출력이 없는 용량 제한 루틴을 사용하여 바로 접근할 수 있도록 한다.

8. 로드 및 네이밍 관련
  teamblog 테이블의 네이밍 혼란이 있음. Privileges로 개명.
  언어팩 로드가 크다. 블로그에 출력되는 리소스는 극히 일부이므로 별도 처리를 검토.
  gettext 등을 사용할 수 있도록 추가하고, _f계열의 구현을 바꾼다. (gettext는 하나의 인자를 받는 함수만을 검출할 수 있음)

9. Unit test를 위한 컴포넌트를 어떻게 작성해야 할 지 논의 진행 예정.

10. javascript 라이브러리 교체.
  선택 가능한 라이브러리 중 후보로 dojo 1.1과 jquery를 선택함.
  dojo가 더 빠르지만 재미가 덜한 부분이 있음.
  관련하여 jquery로 기반을 모두 교체할 경우, EAF와 충돌하는 부분들 및 중복 구현 된 부분들에 대한 처리 여부를 결정해야 한다.


11. Editor
   creorix 님 담당
   서식 관련 개선 필요.

12. UI 에 textcube.com / tistory.com 의 개선 기능들을 반영한다.
   대표적으로, 글 목록에서 새 창에서 글 보여주기 등. (+ 에디터 팝업 포함)

13. 기존 code에 구현되어 있으나 사용하지 않는 것으로 해 놓은 몇몇 기능 (코드 레벨의 캐시 기능을 포함한) 을 삭제한다.
  확장팩 플러그인들의 후보를 다시 정할 때가 되었음.
  플러그인 메인테이너 / 스킨 메인테이너에 대한 명확한 방향이 필요하다. 사이트 관리 뿐만이 아니라 플러그인 및 스킨 개발자들을 위한 '테크니컬한' 자리가 필요함.
 
14. 스킨 위자드를 deprecate 시킬 것인지, 계속 가지고 갈 것인지 논의가 필요하다.
  TTXML 표준화 관련 논의는 TTSKIN2 가 고정되는대로 진행
  TTSKIN2 규격의 드래프트 1 공개 스케쥴 고정. (구글 및 다음에서 피드백이 없으므로 일단 진행한다)

15. 태터캠프 스폰서
  여섯번째 태터캠프 스폰서는 다음 커뮤니케이션에서 지원 받을 예정 (윤석찬님)
  음료수 및 다과 준비가 필요함.
  장소 관련 답사가 필요하다.

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'