전체 글 436

[java] main 메소드에 static 을 붙여야 하는 이유

main에 왜 static을 붙이는가??위 분들의 말씀처럼 static을 안 쓰면 에러가 나고, 당연히 실행이 안됩니다.근데, 왜 일까요?main에 static을 붙이는게 자바의 문법일까요??다른 메소드들은 static을 써야하나요?? 아닌가요??그렇다면 왜?? ^^;;제가 알고 있는 답은 이렇습니다. (컴퓨터 공학적으로..)Static은 '정적'이라고 합니다. 그래서 '정적 변수', '정적 메소드' 뭐~ 이렇게 부르죠.근데 Static의 기능은...Static으로 지정한 것(변수나 메서드)을 메모리에 먼저 올리는 역활을 합니다.다른 메소드들은 호출(call)될 때 메모리에 올라갑니다.. 그래서 그 메소드 호출이 끝나면 메모리에서 사라지져~ ^^하지만, Static으로 지정한 것들은 메모리에 먼저 올라가..

[JSP] getOutputStream() has already been called for this response 에러 발생 시

JSP 파일에서 Download 를 구현하거나 유사한것을 구현할 때 발생하는 에러가 있다.먼저 JSP에서 기본적으로 out 이라는 변수가 선언되어 있는데 JspWriter 이다.그런데 OutputStream os = response.getOutputStream(); 와 같이 정의하게 되면 다음과 같은 에러가 발생한다.java.lang.IllegalStateException: getOutputStream() has already been called for this response이럴때는 JspWriter 인 out.clear(); 를 OutputStream os = response.getOutputStream(); 하기 전에 먼저 해 주면 된다.만약 OutputStream os = response.get..

[iBatis] batch 사용방법 및 사용시 유의사항

iBatis 에서 반복적인 대량의 insert/update시 속도 향상을 위해 batch를 사용하여 insert/update를 한다. iBatis에서는 Java에 있는 batch 방법만을 사용할 수 있다. 하지만 수천 수만건의 데이터를 한번에 executeBatch() 해준다면 메모리를 많이 사용하게 되어 메모리 부족현상이 발생되어 에러가 발생한다.(배치에 등록된 대량의 레코드를 한번에 executeBatch 하게되니 Exception 발생) 그래서 1000건 혹은 10000건 단위를 한 묶음으로 배치 처리해주는 것이 효율적이다. public void updateBatchTest() throws Exception { long start = System.currentTimeMillis(); Map para..

[java] war파일로 압축하기, 풀기

WAR 파일 만들기 1. command line 상에서 WAR파일을 만들고자 하는 폴더로 이동 2. jar cvf .war * 입력 (예 : jar cvf test.war *) 3. 해당 폴더내에 war파일 생성완료 WAR 파일 압축풀기 1. command line 상에서 WAR파일이 있는곳으로 이동 2. jar xvf .war 입력 (예 : jar xvf test.war) 3. 해당 폴더내에 압축이 풀림 * 만약 해당 폴더가 아닌 다른 폴더에 압축을 풀고 싶다면1. 압축을 풀고자 하는 폴더를 만들고 command line에서 폴더로 이동 2. jar xvf .war 입력 (예 : jar xvf ../test.war) 3. 해당 폴더내 압축이 풀림