'OGNL 성능이슈'에 해당되는 글 1건

  1. 2007/07/23 OGNL performance issue (7)

OGNL은 퍼포먼스에 문제가 있었다.
소문으로만 그런줄 알았는데, 실제로 겪고 나니..힘들었다.

일단, request에 같은 setAttribute로 해결을 하였다 다음과 같은 코드 를 보면 알겠지만request에 값이 있으면 OGNL의 value stack을 타지 않고 바로 값을 얻는다.

webwork같은 경우 action에서 가급적이면 request를 가지지 않게 디자인을 잡았기때문에, 맘에 들지는 않았지만, 다음과 같이 코드를 작성하였다.

protected void setAttributeValues() {
       if(request != null){
           request.setAttribute("post", post);
           ..........
       }
}

이 코드는 성능만을 위한 코드이기때문에 request를 setter하지 않아도 action이 돌아갈수 있도록 if문을 추가를 했다. 이런 코드가 중복되어 잇으면 짜증이 나서, 부모로 올리고, protected로 접근자를 선언했다. 일단, 이 코드로 위기를 모면을 했으나, 찜찜함은 어쩔수 없었다.

중요 페이지만 해도 상관은 없었지만, 어쩔 수 없는 코드들이 추잡해보였다. 사실 성능저하는 어플리케이션 전체적으로 영향을 끼친다. 그래서, 우리 팀은 이런 방법으로 해결을 했다.

JDK5.0에서  reflection이 향상되었다는 근거를 가지고, 새로운 시도(?)를 하였다.
1. reflection
2. request에 명시적으로 셋팅

OGNL Performance http://colus.egloos.com/3629495

더욱더 놀라운 사실은 이 방법은 바로 생각이 나지 않았다는 것과 회사에서 일할 때보다는 편히 쉬고, 책상을 떠나있을 때 아이디어가 떠오른다는 것이다.

글을 읽다가 보면 다음과 같은 내용이 나온다.
다음 날 늦잠을 자서 지하철을 타고 출근하는데......... - by EP

10시간 동안 해결이 안되는 것들이 샤워를 하다가 아이디어가 떠오르거나 좋은 설계나 디자인을 생각해내는 것은 자주 있는 일이다. 과도한 업무와 시간에 쫓기다가 보면, 대강 돌아가게 하려는 마음이 생긴다. 나도 이번에 그런 유혹과 스트레스를 이기기 어려웠다.

책상에만 앉아있다고 일을 많이하고, 잘 하는 것은 아니다!!


효율적으로 일하는 방법에 대한 고민을 많이 하게 되는데, 이번 프로젝트를 통해서 좀더 큰 깨달음을 얻었다.

BLOG main image
OOP and Java by ologist

공지사항

카테고리

All (649)
private!! (106)
WEB & IT (140)
Developer (400)