kenu
2001-08-07 00:21:48
0
3595

엉뚱한 데이터가 나의 화면에...


Java Servlet & JSP API 개발/코딩

제목 : 엉뚱한 데이타가 나의 화면에....
글쓴이: 이원영(javaservice) 2001/02/17 01:20:51 조회수:1074 줄수:101

>
> {WebSphere 오동작에 관한 문의...}
> {노경윤(nohmad), nohmad@mail.com}
>
> 아직 WebSphere 서버를 사용해보지 않아서 제가 말하는 오동작이 일반적인 것인지는
> 잘 모르겠고, 단순히 유저 입장에서 드리는 질문입니다.
>
> 저는 인터넷 서점 815books.com을 자주 애용하고 있는데, 마침 이곳의 [국내프로젝트 현황]
> 란에서 이곳이 IBM WebSphere 기반으로 서비스되고 있다는 사실을 알았습니다.
>
> 제가 궁금한 것은 815books.com 이용 중에 사소하다고만은 할 수 없는 오동작이 너무나도
> 자주 일어난다는 것입니다. 어떤 오동작이냐 하면 가령 어떤 책을 검색해서 나온 결과
> 중에 한 아이템을 클릭했는데, 다음 페이지에 전혀 상관없는 데이터가 출력된다는 거죠.
> 이를테면 [Java Bible]이란 책을 클릭했는데, 전혀 엉뚱하게 [여우야 놀자]라는 책이
> 조회된다는 겁니다.
>
> 제가 오동작이라고 한 것은 리로드를 하게 되면 거의 대부분 처음에 클릭했던 아이템이
> 정상적으로 출력된다는 점에서 그런 것입니다. 쉽게 추측해볼 수 있는 것은 DB 커넥션
> 부분에서 엉뚱한 리퀘스트를 처리한 것이 아닐까 하는 것입니다. 특히 Connection Pool에서
> 리퀘스트에 대한 누수가 발생하는 게 아닐까 싶은데 거의 몇달 동안 이 부분이 시정되고
> 있지 않거든요.
>
> 물론 저는 815books의 직원은 아닙니다만, 자바서비스넷을 통해 IBM WebSphere의 명성을
> 익히 들어왔던 터라 약간의 불신이 드는 건데, 혹시 이 오동작에 대해 보고된 적이 있는지,
> 조치법은 있는지, 그리고 제 추측이 맞는지 노련한 실무경험자의 답변을 듣고 싶습니다.
>
> 미리 감사드리겠습니다.

저의 직감으로는 서블렛이나 JSP에서 instance 변수를 남발한 듯 합니다.
예를 들면 다음과 같은 거지요...

서블렛의 경우라면 다음과 같은 경우입니다.
public class MyServlet extends HttpServlet
{
private String bookname = null;
.....
public void doGet(.....){
.....
bookname = ......
}
}
혹은 서블렛을 새롭게 상속받아 만든 경우라면, 부모클래스에 선언한 멤버변수를
공유하는 경우도 마찬가지 경우입니다.

반면 JSP라면 다음과 같은 경우입니다.








혹은 어떤 클래스의 static으로 선언된 값을 통해 공유되고 있을 가능성이 있습니다.

지금 현재 처럼, 다른 사람의 값이 내 화면에, 그것도 특정 필드만 교체되어
나타난다면, 위 범주를 크게 벗어나지 않을 겁니다.


반면, Connection이나 Statement, ResultSet을 공유할 경우도, 위와 같은 현상이
일어날 수 있는데, 이 경우는 대부분 먼저 에러를 발생시킵니다. 미묘한 시간차로
인해 남의 필드값이 나의 화면에 나올 수 있는 경우는 conn,stmt, rs 값의
공유일 경우는 극히 드물게 나타나게 됩니다. 아래의 경우와 같지요.....

"RE:Global Variable사용이 문제가 될수있을까요???"
http://www.javaservice.net/~java/bbs/read.cgi?m=jdf&b=fw_qna&c=r_p&n=981537286

우려하셨듯이 특정 어플리케이션제품상의 결함으로 인해 그와 같은 현상이 일어날
수는 없습니다. 장담컨데, 관련 소스를 이곳에 게제해 보라고 하세요....
워낙 관련된 문제를 많이 지적했었기 때문에, 자바서비스넷 회원이라면
그러한 문제를 야기하는 코드를 쉽게 찾아 지적해 줄 수 있을 겁니다.


또한 이 게시판에 "공유", "global" 등의 키워드로 찾아 보세요.
관련글이 다수 있습니다.


PS:그러한 오동작(?)에 대해 보고 받은 적이 있느냐구요? 넵, 한두번이 아니죠..
각 사이트에 튜닝을 나가서 제일 먼저 하는 작업이 A4용지에 두면씩 전 소스를
프린트하면 높이가 대략 20 cm정도 됩니다. 이 소스를 전부 찬찬히 뜯어보는
거지요... 지금 얘기하신 그러한 현상을 야기하는 코드들이 적잖이 발견됩니다.
개념없는 초보 자바개발자의 무지때문이지요... 제대로된 교육기회 한번 주지않고
곧바로 개발자들을 전선에 내 보내는 해당 업체 사장님의 잘못이기도 하고,
프로젝트를 충분한 일정과 기술적인 검증을 거치지 않고 가장 값싼 업체를 선정하여
가잘 빨리 개발하기를 원하는 해당 고객의 잘못이기도 하고, 기술을 모르니
마냥 개발자에게 맡겨만 놓고, 주말마다 술사주는 일을 자신의 업으로 여기는
프로젝트 PM의 잘못이기도 하구요....


================================================
자바서비스넷 이원영
E-mail: javaservice@hanmail.net
PCS:019-310-7324
================================================
0
  • 댓글 0

  • 로그인을 하시면 댓글을 등록할 수 있습니다.