본문 바로가기

Programming/JSP

(15)
oracle 실행계획에 따른 preparedStatement의 문제점. PreparedStatement가 SQL문의 수행계획을 재사용할 수 있는 장점이 있지만 그것은 역으로 말하면 치명적인 약점이 될 수 있습니다. 예를들어) select하는 테이블의 특정칼럼에 'A'라는 데이터와 'B'라는 데이터가 존재하고 그 분포도가 A=99%, B=1%만 존재한다면 SQL문의 검색조건이 'B'를 검색할경우 테이블의 Index를 타는것이 바람직하지만 'A'를 검색할경우 전체 테이블을 스켄해야 할것입니다. 하지만 PreparedStatement로 어느 조건을 검색하든지간에 한번 수행된 이후로는 Query 실행 계획을 재사용 함으로서 앞으로 수행되는 Query의 식은 무조건 Index를 타거나 또는 무조건 FullScan을 하는 형태로 실행계획을 수립할 것입니다. 이는 통계데이터를 적절히 활..
jsp : prepared statement와 statement의 차이점. 오라클은 내부적으로 라이브러리 캐쉬를 가지고 있습니다. 그리고 이 라이브러리 캐쉬내에는 실행된 SQL문장과 실행계획이 저장되어 있습니다. 사용자가 SQL을 실행할때마다 오라클은 이 SQL이 라이브러리 캐쉬에 있는 SQL과 동일한지 비교하고 만약 같다면 이미 기존에 있는 라이브러리 캐쉬의 실행계획을 가지고 SQL을 수행합니다. 이때 비교하는 규칙은 간단합니다. '모든 문자가 동일한가?' 하나의 오차도 없이(대소문자, 공백문자 모두 포함) 동일한지를 따지는 것입니다. 일반적인 SQL문장에서 SELECT * FROM EMP WHERE EMPNO = 1234; 와 SELECT * FROM EMP WHERE EMPNO = 2345; 는 다르게 파싱됩니다. 다른 문장으로 인식되기 때문입니다. 그러나 만약 비교할 값..
javascript : 꽤 재밌는 기능 splice method (array object) 자바스크립트 내에 배열을 보다 효율적으로 쓸 때 유용하겠네요. array.splice(시작index, 시작 index부터 버릴 배열 갯수, 대신해서 넣을 element 1, 2, 3, ...., element n); return : 버려진 배열들( , 으로 구분) 지원 : IE, firefox, chrome, safari, opera ex) var array = ["aa", "bb", "cc", "dd", "ee", "ff"]; alert(array.splice(1, 0, "aaa"); // 아무것도 출력되지않음 alert(array); // aa, aaa, bb, cc, dd, ee, ff 출력됨 alert(array.splice(1, 5, "aaa", "aaaa", "aaaaa"); // bb, cc..
javascript : eval() var doTest : boolean = true; var dateFn : String; if(doTest) dateFn = "Date(1971,3,8)"; else dateFn = "Date()"; var mydate : Date; eval("mydate = new "+dateFn+";"); print(mydate); 문자열 내에 연산자가 있고 그 연산자에 대한 기능을 사용하고 싶은 경우 사용합니다. test = "1+2+3"; alert(test); alert(eval(test)); 첫번째는 1+2+3 이 출력되고. 두번째는 6이 출력됩니다. 출처 : http://msdn.microsoft.com/ko-kr/library/b51a45x6(v=vs.80).aspx
jsp tag 간략정리 주석 html의 주석 jsp의 주석 / jsp의 주석은 브라우저에서 소스보기로 볼 수 없다. page 지시어 page 지시어는 현재의 jsp 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분. 대개 소스코드 맨 앞에 기술. java method의 사용시 java class의 선언(import) 위 page지시어와 동일한 태그인데, 이 import 속성은 여러번 기술이 가능하다. 표현 이 태그의 내에 삽입되는 java 소스는 출력값이 리턴되어야 하는 식을 가지고 있어야 jsp소스를 읽고 해석하는 컨테이너에서 이해를 하고 식에 대한 결과값이 html로 뿌려지게 된다.
<jsp:useBean>에 대해 간략한 문법설명 id = jsp페이지에서 자바빈 객체에 접근할 때 사용할 이름을 명시 class = 패키지 이름을 포함한 자바빈 클래스의 이름을 입력 scope = 자바빈 객체가 저장될 영역을 지정 => page, request, session, application 중 하나를 값으로 가짐 default는 page이다. ex) 아래문장의 jsp소스는 밑의 java소스로 이해할 수 있다. ======> UserDetail detail = (UserDetail)request.getAttribute("detail"); if(info == null){ info = new UserDetail(); request.setAttribute("detail", detail); } 위 코드는 UserDetail클래스의 객체를 생성하여 이름..
jsp와 Ajax 그리고 웹과 언어의 미래. 난 아직 학생이라 이런 고민을 많이 하는 듯 싶다. 우선 asp, php, jsp 모두 간략하게나마 다뤄봤을때 가장 내게 어필을 한 언어는 jsp. 근래에(?) 체계적으로 잡힌(?) 개념이지만 MVC패턴은 아주 명확한 프로그래밍이라는 느낌이 든다. 불필요한 매뉴얼을 배제한 간단한 인터페이스제공만으로 서비스를 제공한다는 측면은 웹관련 언어는 모두 마찬가지... 아니 어떤 언어로 만들어지는 프로그램이든 마찬가지일듯 싶다. 리모콘을 예를들어 우리는 필요한 버튼만으로 조작하여 내부적인 상황은 고려하지 않은채 유용하게 주변을 조종하고 있지않은가? 하지만 asp나 php는 군전역과 동시인 약 2년전에 다뤘던 때라 지금은 어떨지 모르겠으나 구조적인 언어라고 강하게 느꼈다. 물론 수업시간에 집중을 못해 강한 부정적 인..