2009년 4월 13일 월요일

진보시민강좌 후기


지난주 월요일에 진보시민강좌에 갔었어요.

민노당에서 주최하는 거 같은데..

사람이 넘 적더라고요.. 10명도 안됐어요 -_-;;

강사님 보기가 좀 민망하더군요..

강사분은 임수강씨라고.. 예전에 심상정 의원 보좌관을 하셨다고 하더라고요..

음.. 암튼 민망하게 강좌가 시작됐습니다..


원래 강좌 제목은... '재벌천국 서민지옥 현정부의 경제죽이기 실상과 진보의 대안'

거창한 제목이었는데.. 내용은 공적자금과 관련된 거더라고요..

공적자금에 대해 심각하게 생각해본 적이 없었는데.. 잘 배운 것 같아요..

많이 들었으면 좋았을텐데.. 좀 아쉽더군요..


강의의 내용을 요약하면..

경제위기 상황에서(여기선 공황이라고 하죠) 엄청난 자본손실이 발생하는데..

이 손실분을 놓고서 사회세력간에 치열한 싸움이 벌어진다는 겁니다..


근데 이게 요즘에는 공적자금이란 형태로 '손실 떠넘기기'가 이루어지고 있는데..

결국 거품 만들고.. 위기를 일으킨 놈들은 따로 있고.. 그 손실은 서민들이 다 짊어진다는 거죠..


우리나라에서도 IMF때 막대한 규모의 공적자금이 조성되어 투입되었는데..

이것이 어떻게 쓰였고.. 결국 누가 이득을 봤는가 하는 것에 대한 분석이 나와있습니다. 재밌죠~^^


그리고 또 재밌는 것 하나.

손실 떠넘기기는 국가간에도 이루어지는데요..

미국! 이 놈들은 기축통화를 가지고 있기 때문에 엄청난 이득을 취합니다..

특히, 무역적자 있잖아요..

예전에 진보진영에서 정세분석하는거 보면.. 항상 나오는게 미국의 쌍둥이 적자(재정적자, 무역적자) 얘기 나옵니다..

쌍둥이 적자가 심해지고.. 그래서 미국이 몰락하고 있다고..

그러나! 그렇게만 볼 수 없다는거..

미국은 오히려 재정적자를 이용해서 엄청난 이득을 취합니다.. 그 비밀은 금융산업이고요..


암튼 재밌습니다. 함 읽어보시면 좋을 거 같아요..


아, 글고 이정희 의원도 공적자금 관련해서 포스팅을 하셨더군요..

같이 읽어보시면 이해가 잘 될듯하네요..


http://blog.daum.net/jhleeco/7700743


2009년 1월 30일 금요일

AS/400 DB JDBC 연결


JDBC는 다음 경로에서 받을 수 있다.


처음에 아무생각 없이 최신버전인 6.4를 받았다.

그런데 연결하려고 하니 다음과 같은 오류 메세지가 나왔다.

java.lang.NoClassDefFoundError: java/sql/Wrapper

나는 JDK 1.5 를 쓰고 있다. java.sql.Wrapper는 1.6 클래스이다.

그래서 4.X의 최신버전인 4.9를 받아서 jt400.jar 파일을 LIB 경로에 복사하고 실행했더니 잘 연결되었다. ^^

연결스트링은 다음과 같은 형식이다.

jdbc:as400://203.XXX.XXX.XXX



2009년 1월 29일 목요일

POI로 엑셀 DROPDOWN LIST(콤보) 만들기

POI를 사용하면서 가장 불편했던 점이 데이터 유효성(Data Validation)이 지원되지 않는 점이었다.

그런데 이 문제가 해결됐다!

가장 많이 사용되는 경우인 Dropdown List를 만드는 예를 들어본다.
 
이와 관련된 예제가 별로 없어서 API를 열심히 들여다보고 만들어봤다.

아주 직관적이고 이해하기 쉽게 되어있어서 금방 만들수 있었다.

아래 코드는 POI 3.2 버전에서 작업한 것이다.


CellRangeAddressList regions = new CellRangeAddressList(4, 100, 5, 5);  // 적용할 범위

String[] aCategoryValues = {"텍스트1", "텍스트2", "텍스트3" };                   // 텍스트 리스트 배열
       
DVConstraint constraintCategory = DVConstraint.createExplicitListConstraint(aCategoryValues);

HSSFDataValidation dvCategory = new HSSFDataValidation(regions, constraintCategory );

sheet.addValidationData(dvCategory);


2008년 11월 20일 목요일

IE에서 getElementsByName 오류 해결방법

IE에서 getElementsByName 이 제대로 동작하지 않는다.

예를 들어 아래 코드를 보자.

<html>
<head>
<script language="JavaScript">
  window.onload = function() {
    var aa = document.getElementsByName("aa");
    alert(aa.length);
  }
</script>
</head>
<body>
<div name="aa" ></div>
<div name="aa" ></div>
</body>
</html>

이 코드를 파이어폭스, 사파리, 구글크롬에서 각각 실행해봤다.

모두 2 라는 값이 나왔다.

그러나 IE는 0 이 나온다.

인터넷을 찾아봤더니 여러 해결책이 나와있던데.. 내가 찾아낸 가장 간단한 방법..

아주 간단한 방법이다.

<div name="aa" id="aa"></div>
<div name="aa" id="aa"></div>

위와 같이 id를 같은 value로 주면 된다. 이러면 IE에서도 정상적으로 동작한다.

물론 id값은 unique해야 하는데.. 웹표준에 위반되는 것이어서 좀 꺼림칙하지만.. 

이것처럼 간단한 방법은 없는것 같다 ㅎ

2008년 10월 1일 수요일

[에러와 해결] Eclipse SVN 업데이트 오류


다음과 같은 오류가 발생하면서 업데이트가 되지 않는다.

Attempted to lock an already-locked dir

파일이름의 대소문자를 변경했을 때, SVN이 제대로 인식하지 못하여 발생하는 문제인 것으로 보인다.

파일이름 자체를 변경해서 해결하도록 한다.

간단한 엑셀 다운로드 프로그램(JSP)

JSP로 엑셀다운로드 프로그램을 작성할 때 Apache POI 와 같은 컴포넌트를 사용한다.

최근엔 2007 포맷을 지원하는 POI 3.5 버전이 나오기도 하였다.

그런데 화면에 출력하는 것과 동일한 내용을 POI로 다시 작성하는 것은 매우 귀찮은 일이다.

간단하게 엑셀 다운로드 프로그램을 작성하는 법.

JSP 프로그램에 다음과 같이 Reponse Header 를 설정해주면 된다.

response.setHeader("Content-Disposition","attachment; filename=파일이름.xls");

물론 이렇게 작성된 파일은 엑셀파일 형식은 아니고 웹페이지 형식의 문서이다.

엑셀에서 웹페이지 형식의 문서를 열수 있기 때문에.. 테이블로 잘 작성된 HTML페이지는 엑셀에서도 예쁘게 잘 나온다.

<작성예>

<%@page contentType="text/html;charset=utf-8"%>
<%@page language="java" import="java.util.*"%>
<%
  response.setHeader("Content-Disposition","attachment; filename=downloa.xls");

  // TODO : 로직
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>계획서</title>
</head>
<body>
<table border=0>
  <tr align=center>
    <td><font size=4>계획서</font></td>
  </tr>
  <tr>
    <td>
      <table>
       <tr align='center'>
         <td>년월:</td>
         <td style="mso-number-format:'\@'">2008.10</td>
       </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td>
    <table border=1>
      <tr align='center'>
        <td>종류</td>
        <td>대상</td>
        <td>기간</td>
      </tr>
<%
    for(int i = 0; i < vList.size(); ++i){
%>
      <tr>
        <td><%=// 값1 %></td>
        <td><%=// 값2 %></td>
        <td><%=// 값3 %></td>
      </tr>
<%
    }
%>
    </table>
    </td>
  </tr>
</table>
</body>
</html>