본문 바로가기

Programming

(123)
DOM, javascript : document.getElementById().innerHTML document.getElementById() 를 이용한다면 현재 문서중 해당 Id값을 태그(element / id이므로 유일하겠죠?)에 접근하여 그것의 모든 것을 다룰 수 있습니다. (자식, 애트리뷰트 등의 모든.) 또한 innerHTML을 이용하여 태그의 자식 엘리먼트들을(?) 원하는 것으로 수정할 수 있습니다. 만약 삭제될 테이블 박스 이라는 html 태그가 있을 경우에 javascript function을 활용하여 var tb1 = document.getElementById("table1"); tb1.border='1'; tb1.innerHTML = "예제입니다."; 이라고 함수를 넣어서 호출해준다면 예제입니다. 위와 같은 결과를 볼 수 있습니다. 음............................
java : System.out.println(); 오늘 무심코 syso ctrl+space를 누르다 이 시스템이 대체 뭐하는 시스템인가 궁금해서 닥치는대로 비집고 들어가봤습니다. 사실 위와 같은 경우는 로그를 찍을때 Logger.err.println() 처럼 엄청 자주 쓰이는데 그 로직에 대해서는 이해못하고 단순히 타이핑만 하는 경우가 많았죠... 스스로 반성해봅니다. ㅠㅠ System 우선 System 은 다들 아시다시피 final class입니다. 상속할 수 없는 최종 레벨의 class이죠. 또한 생성자는 private로 막아놓았기 때문에 생성하여 사용할 수도 없습니다. 안에 필드나 메소드가 무척 많으나... 접해봤던 것은 out 변수 외엔 그닥 없네요. ㅎㅎ 따라서 System 클래스를 정리하자면 상속할 수 없고, 생성할 수도 없는(인스턴스화x) ..
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; 는 다르게 파싱됩니다. 다른 문장으로 인식되기 때문입니다. 그러나 만약 비교할 값..
java : 문자열을 int형으로 형변환할때 주의점(parseInt, valueOf) 대부분 학교에서나 어디에서나 parseInt를 주로 사용하고 배우기때문에 큰 의미가 없겠으나............. parseInt는 문자열로 된 정수의 표현이 음수까지 인식하고 리턴한다. 하지만 valueOf는 음수를 인식하지 못하고 온전히 양수로만 parsing하여 리턴. 또한 valueOf는 내부적으로 parseInt를 사용하고 있기때문에 성능면에서도 parseInt보다 효율적이지 못하다. 물론 둘의 성향은 다르지만 ;; (parseInt(String s) : int / valueOf(String s) : Integer parseInt public static int parseInt(String s) throws NumberFormatException Parses the string argument..
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..
eclipse _ server : Publish failed using ant publisher 간혹 급하게 서버를 stop하고 다시 start를 할 때 부딪히는 에러. 이건 stop하면서 server가 현재 프로젝트를 제대로 종료하지 못해서 생기는 문제(라고 느낍니다.) 따라서 작업중이던 프로젝트를 refresh해주고 서버를 start해보세요.
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