장난감

쎄지오 메신저 쪽지함 캐싱기능 강화

에드몽단테스 2009. 3. 30. 21:39

쎄지오 메신저의 쪽지함 호출은 어떻게 이루어질까?
먼저 쪽지의 내용을 웹으로 요청하고 그 결과값을 받은 후 처리하여 Swing UI를 만들고 그 안에 내용을 뿌려준다.

 

만약 웹으로 요청을 했는데 네트워크가 느리거나 혹은 다른 요인으로 인하여 결과값을 상당히 늦게 받는다면 어떻게 될까?
위의 경우 쪽지함을 만들기까지의 시간은 꽤 걸릴 것이고, 그동안은 아무런 작업도 하지 못한채 렉에 걸린 것 처럼 보일 것이다.

 

쎄지오 메신저의 쪽지는 쎄지오 웹 솔류션과도 연동이 되기 때문에 실시간으로 정보연동이 되어야 했다.
그래서 목록을 가져오거나, 항목을 읽어오거나 하는 행위에 대해서 실시간으로 데이터 요청을 했다.
하지만 실시간 정보를 가져오는 대신 호출시마다 약간의 딜레이는 어쩔 수 없었다.
그래서 이부분을 수정해야했다.

 

먼저 쪽지정보를 가져오는데 걸리는 시간을 단축시켜야 했다.
그래서 쪽지함을 클릭시 쪽지 목록을 가져오는 것이 아니라
로그인을 하면 별도의 쓰레드로 목록을 가져왔다.
목록을 가져오는데 다른 파트가 영향을 받아서는 안되기 때문이다.

 

그리고 쪽지함의 쪽지모델을 메인파트으로 옮겼다.
쪽지함에서 모델을 관리하는 것이 맞기는 하지만
메인부분에서도 쪽지 도착시 쪽지 알림이라든지 읽지 않은 쪽지의 갯수를 요청한다든지 하는 부분이 필요하기 때문이었다.

 

또한 UI를 만드는 부분도 별도의 쓰레드로 돌려버렸다.
쪽지 데이터를 가져오지 못하더라도 UI 를 미리 만든 후 쪽지 내용을 채워넣으면 렉과 같은 현상은 사라지기 때문이다.


뿐만 아니라 웹과 UI 를 구성하는 대부분의 기능들을 쓰레드로 돌리도록 했다.

그랬더니 실제로도 로딩이 상당히 빨라졌다.

 

 

 

속도 개선은 되었지만 웹에서 정보가 변경되면 메신저에서는 알아채지 못한다.

실시간 정보갱신은 안되는 것이다.

’새로고침’ 같은 기능의 버튼을 추가하는 것도 괜찮을 듯 하다.

반응형