웹개발(JSP&Servlet)2006.09.27 11:59

Num

(PK, resultKey)

DATA1

DATA2

DATA3

DATA4

711

(총운)

(애정운)

(재물운)

(건강운)

823


Num(PK)

IMG

711

(binary)


[현재 도메인 ] :

1. DATA테이블에서 키값에 해당하는 DATA1,2,3,4를 페이지 하나당 하나씩 출력

(모두 다 본다면 4번 쿼리를 날린다.)
            


2. 이미지 테이블과 연관관계 -> 쿼리 회수 증가, 객체의 유일성 저하

( 이미지테이블에서 읽을때마다 PK를 키값으로 따로 해쉬에 넣음)

3. JSP가독성 저하

[도메인변경] :

1)       두 테이블 죠인 쿼리로 변경, 이미지테이블의 데이터도 객체 인스턴스로 삽입.

          

JSP

2)       JSP가독성 증가를 위해서, DATAget하는 부분은 서블릿 요청으로 분리

(서블릿에게 넘겨주는 파라미터는 command파라미터 뿐)

3)       필요한 파라미터나 기타 정보를 filter에서 얻어와, 따로 파라미터를 넘기거 하지 않도록 처리.

4)       동기화가 가능하도록, 모든 처리를 request를 통하도록 고려.

Fitler

JSP

Servlet

WAS

5)       JSP에서 매번 DB접근하지 않도록, 한번의 쿼리로 4개의 데이터를 페이지 이동시에도 볼수있게한다.

-> 세션에 담긴 해쉬에 데이터명+데이터기준날짜 날짜의 키값으로 넣는다.

[주의사항]:

1)       죠인 쿼리의 속도 문제

2)       세션의 해쉬에 대한 동기화를 최대한 보장하는 문제

3)       jsp지시자로 include된 서블릿의 로깅문제, WAS로그문제,

신고
Posted by 영겁회귀
웹개발(JSP&Servlet)2006.08.29 19:27
Resin2.1에 필터를 달아 보았다.
필터의 개수를 4개이며, 4개의 필터중 1개의 필터에서만 DB커넥션이 필요한 놈이었다.
(동일 클래스로 작성할수있었던 것을 4개로 나눈이유는 각 픽터의 doChain하기전에
혹은 안단에서, 스트림에 변화가 있을수도 있으므로,
다음 부하테스트 결과는, 동일WAS, 동일한 필터를 적재하고, 로드런너로 테스트해본것이다.
로드런너 평가판으로, 동일접속자수는 25명이었고, 하나의 시나리오안에 페이지 개수는
19개였다.

1) 필터없음
필터를 DD에서 지정하지 않은 상태, 필터를 실행되지 않는다.
평균응답속도가 동시접속 25유저라는 것을 비하면
0.42정도로 매우 빠른상태

2) 첫번째 해당 폴더를 와일드카드에서 삭제후 지정
*/wml/*/*/* -> 속도가 약 2배정도 느려짐

테스트 폴더는 콘텍스트에서 바로 다음 뎁스인 'wml'이란 이름의 폴더로
/wml/*.jsp
/wml/*/*/*
*/wml/*/*/*
*/wml/*.jsp
등의 필터 매핑으로도 동일한 매핑이 가능한 상태


3) 두번째 해당 폴더앞에 와일드카드 삭제
/wml/*/*/* -> 첫번째 경우보다 매핑경로가 더 확실해 졌는데도 평균속도가 상승


4) 세번째 파일을 jsp로 한정시키고, 폴더를 와일드카드로 감쌈
테스트한 모든 경우의 수에서 가장 실제 경로와 매핑이 유사해졌는데도 가장
평균속도가 느렸다.


몇번의 유사 테스트 결과, 필터의 동작과는 별도로
URL과 유사하면 (정확도가 증가할수록, 와일드가 줄어들수록) 속도가 빨라지려니 했던
예상과 달리, 정확도가 증가할수록 속도는 저하되었다. 또한 폴더와 파일의
매핑 자유도를 떨어뜨릴수록 속도가 저하된다고 판단 내릴수 있겠다.

필터 매핑은 될수록 광범위하게 잡아야하나??
찾아보고 싶은데..찾아볼 문서가 전무하당.
신고
Posted by 영겁회귀

티스토리 툴바