달력

1

« 2025/1 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
내가 일하고 있는 건물은 현대자동차 계동 사옥이다.
이 건물에 있던 "해양수산부"가 쫓겨나고
"보건복지가족부" 던가 뭔가 암튼 몇개 부서가 왔는데..
요 몇일 이사한다고 시끌시끌하다.
그런데 오늘 창밖으로 이상한 광경을 봤다.
아니, 이상하다기 보다는 말도 안되는 광경을 봤던 것이다.

창 밖 도로 한쪽 차선에 폐가구, 폐집기(솔직히 "폐" <-- 이런 단어를 붙이기도 민망한 쓸만한 것들)라고
버리려고 산더미처럼 쌓아 놓은것이 아닌가..
말짱한 책상과 의자들을 부피를 줄여보려고 다리를 부시고 난리도 아니다 -_-;
1톤 트럭만 있더라도 집에 가져가고 싶은 것들이 꽤나 많았다.
가져다가 리폼만 해도.. 거의 새것처럼 쓸 수 있는 것들인데..ㅜㅜ

암튼.. 공무원들 하는 짓거리가 하도 괘씸하여 사진을 찍어서 나의 블로그에 기록을 남겨본다.
국민의 혈세로 산 집기들을.. 아직도 쓸만한 집기들을 다 갖다 버리다니 -_-++

원래는 좀 유명한데다가 글을 올려서 이슈화 하고 싶었으나..
그럴 배짱과 용기는 없는지라 .ㅋㅋ

아까비....

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

'생활 > 잡담' 카테고리의 다른 글

골뱅이 소면 만들어 먹기~  (0) 2008.04.25
이런 어처구니 없는....  (0) 2008.03.23
차 샀습니다~~  (0) 2008.03.19
어허.. 이런 황당한 경우가..  (0) 2008.03.13
요즘 차 살려고 알아보고 있는데...  (0) 2008.03.11
:
Posted by 뽀기
2008. 3. 19. 23:24

차 샀습니다~~ 생활/잡담2008. 3. 19. 23:24

라세티 04년식 MAX 수동으로 싸게 질렀습니다.
쿄쿄.
이제 주말에 민준이 데리고 여기저기 다닐 수 있게 됐답니다~ 움핫핫.
안전운전해야지요~ 캬캬
:
Posted by 뽀기
2008. 3. 13. 16:27

어허.. 이런 황당한 경우가.. 생활/잡담2008. 3. 13. 16:27

나의 미천한 블로그에도 스패머의 손길이....-_;
댓글 승인대기 건수가 느무느무 많길래 이건 무슨 일인가.. 했는데..
이런 뜨글..
아래 이미지와 같은 댓글이 잔뜩.... 다행히도 블로그에 글이 많지 않아서
지우는데 오래 걸리지는 않았지만..
글이 1000개씩 되는 유명 블로그는.. 난리났겠다 -_-;

근데, 스팸들이 잘 보면 웃긴다..
이름은 영단어이고, 내용은 무슨 번역기를 돌렸는지 상당히 어색한 구절들이다. ㅋ

웃긴건... RSS 구독을 하고 있는데
구독하고 있는 RSS 중에 한 분의 블로그에서
참나! 이젠 번역스펨댓글도 있구나 이런 글을 읽고 난 후라서 더욱 웃기고, 신기하다..

유명한 사람들의 블로그에만 스팸댓글이 달리는 줄 알았는데..
스패머들은.. 그런거 안 따지나보다. 쿄쿄쿄쿄.

사용자 삽입 이미지
:
Posted by 뽀기
2008. 3. 11. 18:33

요즘 차 살려고 알아보고 있는데... 생활/잡담2008. 3. 11. 18:33

근 한달은 알아보고 있는 듯 하다.
처음에는 준중형(아반떼)를 생각하다가...
애가 크는것도 생각해야 되니... 중형차(옵티마, New EF Sonata)로 생각하다가..

결국 돌고 돌아...
준중형(라세티)으로 왔다. 쿄쿄.
(한때 새차를 사버릴까.. 하는 생각도 잠깐 했다가.. 새차는 무리라는 생각에 접었다. ㅜㅡ)

가격도 착하고. 동급(아반떼, 세라토 등)에 비해 옵션도 많고..

이제.. 좋은 매물이 나오기를 기다리기만 하면 된다.

엔카에서 열심히 대기하고 있다가.. 매물 뜨면 바로 전화 날리고 가계약 걸어야지 캬캬캬캬.


연식 : 2004 or 2005
가격 : 650 ~ 700
옵션 : 풀 오토 에어컨, 전동 접이식 백미러, 히팅 시트, ABS, TCS, CDP

아.. 썬루프 있음 땡큐다. 너무 큰 욕심인 것인가. 캬캬캬캬.

암튼..
이제.. 지를 일만 남았다 훔냘냘..

'생활 > 잡담' 카테고리의 다른 글

차 샀습니다~~  (0) 2008.03.19
어허.. 이런 황당한 경우가..  (0) 2008.03.13
홍대근처 와인바 갔다 왔어요 ㅋㅋ  (1) 2008.02.20
오늘 본 재밌는 내용 ㅋ  (0) 2008.02.14
요즘 iBatis 보고 있돠는...  (0) 2008.01.23
:
Posted by 뽀기
2008. 2. 20. 16:42

홍대근처 와인바 갔다 왔어요 ㅋㅋ 생활/잡담2008. 2. 20. 16:42

머. 홍대 앞이라고 하기에는 좀 먼~
합정역에서 좀 더 가까운 곳인데요.

금요일 점심에 동기들끼리 점심을 먹으면서 언제 모여서 술 한잔 하냐~~는 얘기가 나왔다가
바로 그날의 번개모임을 하기로 결정을 했다지요. ㅋ
뭘 먹을까 고민하다가 우리 이제 삼겹살에 소주는 지겨우니
분위기 있게 놀아보자~ 와인바 가보자~라는 얘기가 나와서..
너무 비싼데는 안된다 함 찾아보고 가자! 고 결론이 났더랬지요.

그래서, 찾아간 곳이
합정역 근처의 "토토의 와인구멍가게" 입니다.
가는 길은 묻지 마세요. 네이버에서 찾아보면 가는 길 잘 나옵니다. 냐하하하~
가격도 착하고 분위기도 괜찮다는 얘기를 듣고 무작정 고고씽~

여 3, 남 1(저 혼자 -_-) 갔습니다.
독일산 알스비티스라는 화이트 와인(24,000원)을 시켰구요. Vintage는 2006년 이었습니다.
약간 시큼하면서도 그리 떫지 않은 맛이었구요.
얼음물에 약 7분 정도 차게해서 마셨습니다. 좋아요 좋아~~~
안주로는 모듬치즈(18,000원 ㅜㅜ)를 시켰습니다.
처음에 2개 시키려다가 하나만 시켰는데 오히려 잘했습니다.
비싼거(?) 하나 시켰더니 다들 조금씩 아껴먹더군요. ㅋㅋ

아, 여기의 와인가격은 기본으로 take-out 가격입니다.
구멍가게에서 마시고 가려면 table charge 15,000원이 추가됩니다.
이 table charge는 병마다 추가되는 금액입니다~(ㅎㄷㄷㄷ)

여기 분위기는.
밝지 않습니다! 캬캬.
어두컴컴하니 정말 좋더군요.
각 테이블마다 초가 하나씩 켜있구요. 전체적으로 어두운 곳입니다.
사진찍기는 좀 힘들듯 싶지만, 테이블에 초 하나 켜놓고 와인 마시고 있으니
분위기 좀 살더군요. ㅋㅋ(애인/부부끼리 가면 좋을듯 해요~)
하나 아쉽다면, 의자가 그다지 편하지 않았다는게 좀 아쉽네요.

아, 그리고 이 구멍가게 입구에는 커다란 강아지 한 마리가 있는데
사람이 지나가도 "왔군.. 가는군.." 하는 눈빛으로 꿈벅거리기만 합니다.
이 개 이름이 "토토" 인듯. ㅋ 개집에도 써있어요~~

암튼, 오랜만에...아니 처음으로 와인바랍시고 찾아갔는데 괜찮았습니다.
아. 저희가 9시 다되서 가서 11시쯤에 나왔는데.
저희 나올때쯤 되니까 사람들이 좀 많았고, 9시에갔더니 사람도 별로 없고
좋았습니다~



:
Posted by 뽀기
2008. 2. 14. 13:48

오늘 본 재밌는 내용 ㅋ 생활/잡담2008. 2. 14. 13:48

원래 질문이 "CVS는 convenience store의 약자 맞나요?" 이거 였다.
이 질문에 달린 답글들...
마지막거.. 100% 완전 동감. 나도 처음에 질문만 보고 저거 생각했다는. -_-;
3D를 떠야 하는데 쩝.


사용자 삽입 이미지
:
Posted by 뽀기
2008. 1. 31. 15:23

Velocity 따라하기 - 1번 예제 - 그거/Tech2008. 1. 31. 15:23


1. velocity-1.5.zip 파일을 다운로드 받아서 압축을 해제한다.
2. velocity-1.5.jar, commons-collections-3.1.jar, commons-lang-2.1.jar 파일을 classpath에 등록한다.
3. example.vm 파일을 생성하여 template을 작성한다.

   #set( ${this} = "Velocity")

   ${this} is great!
  
   #foreach( ${name} in ${list} )
       ${name} is great!
   #end
  
   #set( ${condition} = true)
  
   #if (${condition})
       The condition is true!
   #else
       The condition is false!
   #end


4. Example.java 파일을 생성하여 위에서 작성한 template 파일을 읽어서 처리한다.

   // Velocity 의 환경 설정
   // velocity.properties 파일에는 runtime.log = velocity_example.log 이런 내용이 들어간다.
   Velocity.init("velocity.properties");
  
   // VelocityContext를 만들어서 template 파일에서 사용할 변수를 설정한다.
   VelocityContext context = new VelocityContext();
   // 아래의 "list" 는 template 파일에서 ${list} 로 사용된다.
   context.put("list", XXX);
  
   // template 파일을 지정하여 Template class를 생성한다.
   Template template = Velocity.getTemplate(templageFile);
  
   // rendering 된 template이 출력될 output을 지정한다.
   BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(System.out) );
   template.merge(context, writer);
  
   // rendering 된 template을 출력한다.
   writer.flush();
   writer.close();


5. Example.java 컴파일 하고 실행한다.

$ javac -classpath .;..\..\velocity-1.5.jar Example.java
$ java -classpath .;..\..\velocity-1.5.jar; \
                          ..\..\lib\commons-collections-3.1.jar; \
                          ..\..\lib\commons-lang-2.1.jar \
                          Example example.vm

2008. 1. 31 오후 2:24:49 org.apache.velocity.runtime.log.JdkLogChute log
정보: FileResourceLoader : adding path '.'


Velocity is great!

    ArrayList element 1 is great!
    ArrayList element 2 is great!
    ArrayList element 3 is great!
    ArrayList element 4 is great!


    The condition is true!







:
Posted by 뽀기
2008. 1. 23. 16:56

iBatis 따라하기 2 (중고차 정보) 그거/Tech2008. 1. 23. 16:56


# package

  ibatis.dto                     : DTO 가 있는 package
  ibatis.dao                     : DAO 프로그램이 있는 package
  ibatis.dao.sqlmapdao           : xml 파일 위치
  ibatis.biz                     : DAO, DTO를 사용해서 테스트할 프로그램이 있는 package
  ibatis.properties              : property 파일이 있는 위치

# file

  ibatis.dto.Car.java                             : DTO(자동차에 대한 간단한 정보 저장)
  ibatis.dao.SqlMapFactory.java                   : sql-map-config.xml 파일을 resource로 하는 SqlMapClient 반환
  ibatis.dao.sqlmap.CarDAO.java                   : SqlMapClient의 method들을 wrapping
  ibatis.dao.sqlmap.sql.car.xml                   : sql문이 있는 XML 파일
  ibatis.dao.sqlmap.sql.sql-map-config.xml        : sqlMap 정보(sql문이 있는 XML 파일)와 Transaction 관련 정보 XML 파일
  ibatis.biz.CarTest.java                         : iBatis를 이용해 테스트할 프로그램
  ibatis.properties.sql-map-config.properties     : DB 연결 정보가 있는 파일

# 따라하기 순서

1. 자동차 정보를 저장할 간단한 DTO인 Car.java를 만든다.

   id, company, name, year, price
   물론, getter, setter도 생성해야 한다!

2. iBatis를 이용하여 자동차 정보를 DB에서 조작하는 DAO를 만든다.

   public List<Car> getCarList(int skip, int num) throws SQLException { ... 중략 ... }
   public void insertCar(Car car) throws SQLException { ... 중략 ... }
   public void updateCar(Car car) throws SQLException { ... 중략 ... }
   public void deleteCar(Car car) throws SQLException { ... 중략 ... }
   public Car getCar(String id) throws SQLException { ... 중략 ... }
   SqlMapClient 로 부터 직접 method들을 호출할 수도 있지만, 그냥 Wrapper class를 만들었다.

3. 2번에서 생성한 DAO를 이용하여 DB 조작을 테스트하는 테스트 프로그램을 작성한다.

   insert/update/delete/select 등을 각각 수행해볼 수 있는 프로그램을 작성한다.

   Car car = new Car();
   CarDAO cardao = new CarDAO();

   // insert
   car.setCompany("Hyundai");
   car.setName("Lavita");
   car.setPrice("6,000,000");
   car.setYear("2002");
   cardao.insertCar(car);

   // select
   car = cardao.getCar("1");

   // update
   car.setPrice("8,000,000");
   cardao.update(car);

   // delete
   cardao.delete(car);

4. 테스트 프로그램에서 select/insert/update/delete 등이 호출될 때 iBatis에서 사용하는 sql query 문을 작성한다.

 <select id="getCar" resultClass="car">
  SELECT ID, NAME ... 중략 ...
  
 <insert id="insertCar" parameterClass="car">
  INSERT INTO CAR ... 중략 ...

 <update id="updateCar" parameterClass="car">
  UPDATE CAR SET  ... 중략 ...

 <delete id="deleteCar" parameterClass="car">
  DELETE FROM CAR ... 중략 ...

 <select id="getCarList" resultClass="car">
  SELECT ID, NAME, ... 중략 ...

5. iBatis에서 위에서 정의한 sql query를 사용할 수 있도록 sqlMap 정보를 설정하고, DB 연결 정보를 설정하는 xml 파일을 만든다.

   <sqlMapConfig>
     <properties resource="ibatis/properties/sql-map-config.properties"/>

     ... 중략 ...

     <transactionManager type="JDBC" commitRequired="false">
        <dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="${driver}"/>
    <property name="JDBC.ConnectionURL" value="${url}"/>
    <property name="JDBC.Username" value="${username}"/>
    <property name="JDBC.Password" value="${password}"/>

     ... 중략 ...

     <sqlMap resource="ibatis/dao/sqlmapdao/sql/car.xml"/>

     ... 중략 ...

   </sqlMapConfig>

6. DB 연결 정보를 설정할 properties 파일을 만든다.

   driver=com.mysql.jdbc.Driver
   url=jdbc:mysql://localhost:3306/jsptest
   username=lucky
   password=lucky

7. SqlMapClient 객체를 singleton pattern 을 이용하여 하나의 instance만 생성하여 사용할 수 있도록 한다.

   private static SqlMapClient sqlMap;
  
   static {
      try {
         String resource = "ibatis/dao/sqlmapdao/sql/sql-map-config.xml";
         Reader reader = Resources.getResourceAsReader(resource);
         sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
      } catch(Exception e) {
         e.printStackTrace();
         throw new RuntimeException("Error while initializing SqlMapClient : "  + e);
      }
   }
  
   public static SqlMapClient getInstance() {
      return sqlMap;
   }

8. 3번에서 작성한 테스트 프로그램을 eclipse에서 실행해본다.

   [1] Company = Hyundai, Name = Avante, year = 2001, price = 8,000,000
   [2] Company = Hyundai, Name = Lavita, year = 2002, price = 6,000,000
   [3] Company = Hyundai, Name = Sonata, year = 2006, price = 16,000,000

* 참고사항

  이전에 실행해봤던 예제를 보면, xml/properties 파일들이 default package의 class 파일과 같은 위치에 있었어야 했으나
  이번 예제처럼 package 를 설정하여 class 파일과 구분하여 놓으면
  프로그램 실행할 때 ClassLoader를 기준으로 찾기 때문에

  resource="ibatis/properties/sql-map-config.properties"
  resource="ibatis/dao/sqlmapdao/sql/car.xml"

  위와 같이 가장 상위 package 부터 경로를 작성하면 된다.















'그거 > Tech' 카테고리의 다른 글

Solaris 에서 ISO 이미지 mount 하는 법  (0) 2008.09.09
Velocity 따라하기 - 1번 예제 -  (0) 2008.01.31
iBatis 예제 따라하기~!  (0) 2008.01.22
[JDK 1.4 VS JDK 1.5] Boolean.TRUE 와 true  (0) 2007.11.05
[Network] OSI 7 Layer  (0) 2007.10.31
:
Posted by 뽀기
2008. 1. 23. 09:34

요즘 iBatis 보고 있돠는... 생활/잡담2008. 1. 23. 09:34

요즘 iBatis라는걸 보고 있다지요..
ORM Framework 이라고 한다지요.
ORM 은 Object Relation Mapping 이라고 한다지요.

코딩양이 확~~~ 줄어 든다지요.
하지만, 정말 그럴까요~?
코드 안에 들어가던 SQL 문들이 xml 파일로 빠지면
어차피 해야될 일의 양은 같은거 아닐까요~?

지금 예제도 돌려가면서 공부중인데, 지금까지 본걸로는
그닥 코딩양이 줄어들것 같지는 않다지요.

암튼, 필요에 의해 보고 있다지요.

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

위와 같은 글을 1월 22일에 올렸다지요.
1월 22일에 iBatis 예제를 돌려봤다지요. 오호.
지금 이 글은 1월 23일에 작성하고 있다지요.. ㅋㅋ
이거 예전에 내가 생각했던 것들하고 약간 비슷하다지요..

장정 몇가지를 열거해보자.
1. 기존 JDBC 코딩에서 사용하던 DTO 에 대한 setter 작업을 안해도 된다.
   iBatis가 해준다~~
   Member mem = new Member();
   mem.setId(rs.getString("ID"));
   mem.setName(rs.getString("NAME"));
   ... 중략 ...

   이런 노가다를
   Member member = (Member)sqlMap.queryForObject("getMember", new Integer(1));
   이 한줄이 다 해준다는거~
2. Connection, Statement, ResultSet의 관리를 iBatis가 다 해준다는거

아직은 여기까지 밖에 모르겠다. ㅋ
더 삽질을 해봐야 뭔가 알 수 있을 듯. 쿄쿄쿄쿄.
:
Posted by 뽀기
2008. 1. 22. 17:23

iBatis 예제 따라하기~! 그거/Tech2008. 1. 22. 17:23

iBatis를 해보고자 예제 실습을 따라했다.

# 필요한 파일

1. Member.xml
2. SqlMapConfigExample.properties
3. SqlMapConfigExample.xml
4. Member.java
5. MemberApp.java

# 필요한 것들

1. MySql, Oracle, MSSQL 등등의 DB
2. 1번 DB에 접속할 수 있는 접속 정보(URL, ID, PASSWD, DB Name 등등)



# 실습 순서

1. DB에 접속하여 Member table의 schema를 확인한다
   SQL> desc MEMBER
   (#id#, #passwd#, #name#, #jumin1#, #jumin2#, #email#, #url#, #addr#, #tel_no#, #regdate#)
2. 1번에서 확인한 사항을 바탕으로 DTO(Member.java)를 생성한다.
    private String id;
    ... 중략...
    private String regdate;

    public String getId() {
        return id;
    }
    ...중략...
    public void setId(String id) {
        this.id = id;
    }
    ....중략...
3. SqlMapConfigExample.xml 파일을 만든다.
  <properties resource="SqlMapConfigExample.properties"/>
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
       <property name="JDBC.Driver" value="${driver}"/>
       <property name="JDBC.ConnectionURL" value="${url}"/>
       <property name="JDBC.Username" value="${username}"/>
       <property name="JDBC.Password" value="${password}"/>
    </dataSource>
  </transactionManager>
  <sqlMap resource="Member.xml"/>
4. SqlMapConfigExample.properties 파일을 생성한다.
   driver=com.mysql.jdbc.Driver
   url=jdbc:mysql://localhost:3306/jsptest
   username=lucky
   password=lucky
5. Member.xml 파일을 생성하여 select, insert, update, delete 를 실행하기 위한 query를 정의한다.
 <select id="getMember" resultClass="Member">
  SELECT ID, PASSWD, NAME, JUMIN1,  ...중략... WHERE ID = #value#
 </select>
 <insert id="insertMember" parameterClass="Member">
  INSERT INTO MEMBER(ID, ...중략...) VALUES(#id#, ...중략...)
 </insert>
 <update id="updateMember" parameterClass="Member">
  UPDATE MEMBER ...중략...
 </update>
 <delete id="deleteMember" parameterClass="Member">
  DELETE ...중략...
 </delete>
6. compile
    $ javac -classpath .;..\..\..\lib\ibatis-2.3.0.677.jar *.java
7. run
    $ java -classpath .;..\..\..\lib\ibatis-2.3.0.677.jar;..\..\..\lib\mysql-connector-java-5.0.4-bin.jar MemberApp


# 주의사항
MemberApp.java 소스 중에

String resource = "SqlMapConfigExample.xml";
Reader reader = Resources.getResourceAsReader(resource);

이런 내용이 있는데, Resources.getResourceAsReader() 이 method가
resource를 classloader 기준으로 찾기 때문에
위의 xml 파일들이 class 파일이 위치한 곳에 같이 있어야 한다.

처음에 eclipse 에서 해보려고, package 만들어서 class 만들고 xml 파일은 다른 폴더에 저장하고 별~~ 삽질을 다 해봤으나 계속 "Could not found resource" 라는 exception만 뱉어냈었다.
eclipse에서의 문제 해결은 못하고, 우선 실행을 해봐야겠기에 전부 한 폴더에 몰아놓고 테스트 했다.











'그거 > Tech' 카테고리의 다른 글

Velocity 따라하기 - 1번 예제 -  (0) 2008.01.31
iBatis 따라하기 2 (중고차 정보)  (0) 2008.01.23
[JDK 1.4 VS JDK 1.5] Boolean.TRUE 와 true  (0) 2007.11.05
[Network] OSI 7 Layer  (0) 2007.10.31
Tomcat에서 JDBC driver 설정~!  (0) 2007.10.22
:
Posted by 뽀기