웹마스터 팁

*** 주의 - php로 프로그래밍 된 웹사이트를 어느정도 운영해 본 경험이 있거나 실제로 php코드를 작성해보신 분들, SVN을 통해 버젼관리를 하실 수 있는 분들께 적합합니다. 가급적이면 공식 릴리즈를 기다리시거나 ZBXE의 SVN사용법을 이용하여 안전하게 업데이트 하시기 바랍니다. 이 팁을 참고하셔서 일어나는 코드의 변경이나 기타 작업을 통해 일어나는 웹사이트의 불안정, 혹은 에러와 같은 크래쉬에 대해서는 책임지지 않습니다. ***



팁이라기 보다는 경험담입니다. 아는분들은 다들 알고계시는... ㅎㅎㅎ

ZBXE의 SVN서버에 보면 릴리즈용인 Trunk말고 Sandbox라는 개발버젼이 존재합니다. svn클라이언트를 이용해서 Trunk가 아닌 Sandbox를 적용시키면 매번 ZBXE의 새로운 리비젼으로 업데이트 되는 셈이죠.. 여기를 뒤적거리면 의외로 정식 릴리즈 전에 이전 버젼의 버그픽스를 따서 쓸 수 있는 장점이 있습니다. 물론 개발중인 버젼이니까 안정성 같은건 보장되지 않는 상태지요. (안정성이 보장되어야 정식릴리즈에 포함되고 있습니다. 물론 정식릴리즈에서도 버그가 발생하긴 합니다만, 알파수준의 불안한코드는 아니라는 셈이죠.) 결정적으로, ZBXE의 SVN서버는 HTTP프로토콜로도 접속이 가능하다는 사실!! (즉, 웹브라우져로도 열립니다)

1.0.5에서 한 애드온을 설정하면 다른 애드온의 설정값이 날아가는 버그가 있었습니다. 아직 1.0.6이 릴리즈 되지 않았으니 현재진행형이네요... 추측해보기에 이런 버그는 Critial 레벨이기 때문에 trac서버를 뒤지면 이 부분이 어떻게 진행되고 있는지 알수 있겠다 싶더군요.. 사실 이걸 왜 이제야 생각해 냈는지... (바보)

일단 TRAC서버를 참고하여 버그리포팅이 되어 있는지 부터 확인했습니다. (참고 URL : http://trac.zeroboard.com/trac/changeset/4413) 역시 티케팅이 되어 있더군요.. 게다가 오늘(2008년 8월 4일 현재) SVN서버에 등록되어 있는 리비젼이 4439니까.. 1.0.5가 릴리즈 된 리비젼 4381보다 최신의 리비젼이라는 사실!! 즉, 리비젼 번호가 높아질수록 뭔가 추가되었다는 말인데.. 그렇다면!! TRAC서버의 해당 리포팅 페이지에 보면 /modules/addon/addon.admin.model.php가 언급되어 있었고, 고쳐진 부분의 소스가 표시되어 있었습니다. 그래서 현재 제가 운영중인 웹사이트에서 해당 파일을 찾아서 비교해봤더니 역시 샌드박스의 파일은 이미 버그가 수정된 버젼이었다는 사실!!!!! (우오옷!!)

SVN서버를 웹브라우져로 접속했습니다. 원래 SVN클라이언트를 텔넷으로 접속해서 실행해주는게 제일 좋은거니까 저처럼 한두개의 파일만 바꾸는게 아니라면 굳이 이런 삽질을 할 필요가 없죠.. 맨 앞에서도 안내하듯, 가급적이면 SVN을 정식으로 이용하시거나 공식 릴리즈 파일을 이용하시는게 좋습니다.  아무튼 SVN서버를 웹브라우져로 접속해서 /modules/addon/ 에 있는 클래스 파일들을 싹 긁어다가 UTF-8로 저장한 후 서버의 해당 파일들을 백업한 상태에서 새로 받아놓은 파일들로 바꿔치기 했습니다. 즉, addon 모듈의 파일들만 개발중인 1.0.6(샌드박스버젼)으로 바꿔치기 했다는 말씀입니다.. ^^;

테스트 해 보니 잘 되네요.. 일단 애드온의 설정이 정상적으로 저장되고 있어서 그동안 꼬여있었던 애드센스나 Analytic같은 구글관련 애드온이 정상작동하고.. (덕분에 십 수일간 웹사이트의 통계가 수집되지 않던 문제를 해결했습니다) 이런저런 애드온 관련 설정을 다시 정상화 할 수 있었습니다.

아마도 이 파일들은 샌드박스에 있는걸 보아 1.0.6에서 포함되어 나올것이 거의 확실합니다. 즉, 애드온의 설정이 정상적으로 저장되지 않는 버그는 1.0.6에서 해결된다는 말씀이지요.. 장황하게 쓰고 있는 이 너절한 팁에서 주장하고 싶은건 애드온설정이 저장되지 않는 문제를 해결하기 위해 제가 거친 작업의 흐름입니다. 정리하자면 아래와 같습니다.


1. TRAC서버에서 해당 버그가 리포팅되어 있는지 확인 : 리포팅되어 있지 않다면 버그신고 게시판을 이용해야지요. (사실 버그신고 게시판을 두들기는것 보다 TRAC서버에서 티켓리스트만을 훑어봐도 버그가 해결될 것인지, 아니면 이미 해결되었는지 정도는 알수 있습니다)

2. 티케팅이 되어 있다면, 일단 리비젼을 확인 : 공식릴리즈 게시물에는 해당버젼이 어디부터 어디까지의 리비젼을 포함하고 있는지 알려주고 있습니다. 리비젼 비교를 통해서 버그의 해결여부를 판단하는건 불가능하지만, 추측정도는 할 수 있습니다.

3. 소스트래킹(소스추적) : 애드온이라면 보통 modules/addon 에서 애드온을 실행하게 만드는 모듈의 처리를 담당하고 있습니다. 게시판이라면 modules/board 와 modules/document 에서 담당하고 있구요.. 이번같은 경우엔 애드온을 담당하는 모듈에서 생긴 문제이니 애드온 모듈의 해당파일들을 대상으로 압축할 수 있었습니다. 물론 TRAC을 통해 나오는 티켓을 잘 보시면, 일부 티켓에 대해서는 파일의 위치가 상세하게 표시되기도 합니다.

4. 소스 바꿔치기 : SVN서버를 이용하건, 여러가지 방법을 통해 샌드박스의 파일을 입수하고, 기존에 돌고 있는 파일을 백업한 뒤 바꿔치기 해줍니다. 아니면 TRAC에서 나오는데로 수정을 직접 가해줘도 됩니다. 주의해야할것은, ZBXE의 모든 파일은 UTF-8로 작성되어 있기 때문에 메모장과 같은 툴가지고는 불안합니다. UTF-8을 지원하는 에디터를 사용하세요.

5. 테스트 : 테스트 해 봐서 잘 작동되는게 12시간이상 보장된다면 백업파일을 지우시면 됩니다. 만약 문제가 계속된다면 새로운 리비젼이 나오는걸 기다렸다가 제 1항부터 반복해야 합니다. 저같은 경우엔 운좋게 해결했지만, 리비젼이 올라가도 해결되지 않는 상태이거나 되려 악화되는 경우도 있습니다. 그래서 테스트가 중요하다는 사실을 명심하시길...


아직 각 모듈간의 종속성이라든지 관계를 전부 파악하지 못했기 때문에 글을 쓰는게 약간 불안하네요.. 이 팁데로 따라하셨다가 웹사이트 말아먹는분이 안나오셨으면 합니다.. ^^;;;;;;;;;;;
제목 글쓴이 날짜
제로보드XE에서 표 쉽게 만드는 방법.. [23] 청개구리00 2008.07.27
제로보드XE 설치 완료버튼 누르니까 My sql 관련 내용 나오던데요 [3] Naver™ 2008.07.30
1원팁) 톱메뉴를 제거하고 왼쪽 서브메뉴만 출력하는 방법 [2] file Gnee 2008.08.02
제로보드 문자열 정교하게 자르기 [11] 젝망치 2008.08.03
TRAC과 SVN을 참조하여 1.0.5의 애드온 설정 버그 해결하기 Adios 2008.08.04
첨부화일 등록시 사라지는 현상 [2] 0라이트0 2008.08.05
닉네임, 이름 정보변경 못하게 하기. [6] 부엉이 2008.08.06
설치시 초기화면으로 돌아가는 현상 해결 [1] spk 2008.08.07
오픈 아이디(OpenID)로만 로그인 허용하기 [7] withover.com 2008.08.07
댓글 첨부파일부분 닫기/열기 추가 [1] file Gnee 2008.08.09
렙업시 소속그룹 없어지는 문제! 얍실하게 해결.. 쿨럭. [2] file 이슈카ㆀ 2008.08.12
rewrite mod 사용 않될 경우 해결 방법 1가지 블루스카이77 2008.08.13
권한 문제 때문에 생길 수 있는 문제 해결 방안 꽃들 2008.08.14
zbxe에서 piclens 사용하기 [2] 우정진 2008.08.15
미국 yahoo zbxe 설치 및 mysql 연결 [4] mr007 2008.08.15
이미지 좌측 정렬시 내용이 적으면 아래부분 올라오는 문제 해결법 [2] file 대류 2008.08.16
한글로 된 이미지 문제 [17] Defy 2008.08.19
[게시판] 이미존재하는 모듈이름 입니다. 오류. [2] 나이스가이212 2008.08.21
라이프팟 연동에서 XML 주소 얻기 최재원541 2008.08.23
한 페이지(화면)에 두개(2개)의 모듈(게시판 등)을 넣는 법 [6] 황건순 2008.08.25