2010년 1월 1일 금요일

한 일과 할 일

구조개선

Flash와 PHP 통신에서 서버사이드는 필요한 데이터를 DB에 쿼리하고 XML로 만들어서 던져주는 작업을 했다. output인 xml은 달력 전체를 표현하는 xml과 한 개의 달력을 표현하는 xml이 주를 이루고 있는데 이 부분이 너무 DB에만 의존적이어서 클래스로 만들었다. 유닛테스터가 매우 큰 도움이 됐다. 이제 테스트 어디에서 에러가 나는지 보고 어떤 코드가 문제인지 바로 알 수 있게 됐다.

 

XML

위에서 말한 객체들이 XML을 알아서 만들기 때문에 통합 XML의 경우 객체간의 통신이 중요했다. 따라서 XMLWriter의 개선이 필요했기에 php에서 제공하는 xml 기술들을 찾아보는 시간이 있었다. 간단한 작업이기에 XMLWriter를 사용하기로 했는데 내가 갖고있는 두 개의 호스팅 서비스 중 한쪽에서는 XMLWriter를 지원하지 않는다. 속도 체크를 해봤는데 스트링으로 XML을 만들어내는 것보다 XMLWriter가 아주 약간 더 빠르다. 어느 서비스에서 어떤 알고리즘을 사용할지 쉽게 결정할 수 있게하고 다양한 알고리즘을 같은 구조로 지원할 수 있게 하기위해 인터페이스로 뺐다. 이제는 시스템 전반적으로 호스팅 환경 설정에 따라 알맞는 XMLWriter를 생성해준다.

 

XML 구조

XML 구조가 클라이언트 호출 정보에 대한 요약을 담고 있었는데 불필요했다. 실제 필요한 데이터만 갖고 있으면 됐기에 전반적인 정보를 담기위해 여기저기에 XML을 던지던 구조를 던지는 타이밍에 XML을 생성하는 구조로 바꿨다. 따라서 output이 XML이 아니더라도 더 적용하기 쉽게 됐다.

 

로깅

SQL 인젝션 예방차원에서 모든 쿼리에 대한 로깅을 했었는데 아무래도 닭질같아 input 체크를 심하게 해놨으니 input을 벗어난 시도를 한 경우와 실패한 경우에 대해서 로깅을 하게 해놨다.

 

버전관리

버전관리를 하여 개발과 배포를 동시에 진행할 수 있도록 했다. 혼란을 피하기 위해 클라이언트에서 현재 접근하고 있는 서버의 위치나 버전정보등을 볼 수 있게 했다.

 

달력

스스로 작심을 쓰기위해 달력을 새로 만들었다.

 

--

 

할 일

클라이언트 환경에서 예외가 생기는 경우 플래시 영역에 이 정보를 저장하고 다시 전송 할 수 있을때 예외 정보를 전송할 수 있게 했으면 한다.

 

아직 텍스트 리소스가 얼마 없을때 다국어 지원을 미리 해두는 것이 좋을 것이라 생각한다.

 

속도 테스트하기 전에 테스트 할 메소드를 여러번 호출해줘야 속도가 제대로 나오는 것같다. 안그러면 무조건 제일 처음 호출된 메소드가 항상 느리다. 알아보자.

 

JAVA의 import 같은 형태를 지원하게 해봐야겠다. 패키지 구조로 나누는 게 편하다.

 

작심 HTML 버전을 만들면서 테스트를 강화하고 yui를 공부한다.

 

DB가 mysql 함수를 쓰다보니 close 하면 모두 다 close 돼버리고 그런다. stack 구조로 해제하게 한다.

댓글 없음:

댓글 쓰기