Sanggu's blog




최상단 광고 코드

 추천 사이트

 애자일 이야기 : http://agile.egloos.com
 서명덕 기자의 인터넷 : http://itviewpoint.com
 비지니스 뉴스 : http://www.ciobiz.co.kr
 MOCOMSYS : http://www.mocomsys.com
 Apache Software : http://www.apache.org
 소프트웨어 기술경력관리: http://career.sw.or.kr
 한이음 (지식경제부): http://www.hanium.or.kr
 IT 기술 뉴스: http://www.bloter.net/
 IBM 티볼리 까페: http://cafe.naver.com/tivolitool.cafe
 JAVA jar 검색 : http://www.findjar.com
 VM Ware 가상화: http://www.vmware.com

2009년 12월 24일 목요일

grep으로 하위 디렉토리 문자열 찾기

* grep으로 문자열 찾기
find . -exec grep -n '문자열' {} \; -print

* 문자열 text로 저장
find . -exec grep -n '문자열' {} \; -print > test.log

2009년 11월 24일 화요일

Derby alter table (add, rename)

1. Add column (derby)

Alter table table ADD column test_column VARCHAR(32);

2. rename column (derby)

Alter table table RENAME column test_column VARCHAR(32);

클라우드 컴퓨팅

'클라우드 컴퓨팅'이란, 확장성이 뛰어나고 추상화된 거대한 IT 리소스를 인터넷을 통해 서비스로 제공하는 컴퓨터의 형태이다.

고도의 확장성, - 급격한 트랜잭션의 증가나 이용자수 변화에 대해 신속하고 유연하게 처리능력을 증감할 수 있는 컴퓨터 리소스를 가리킨다.
추상화된 리소스 - 기존의 방식처럼 하드웨어나 소프트웨어 라이센스를 '구매해서 소유한다'라는 개념과는 거리가 멀다.

Saas - Software as a service
Paas - Platform as a service
Haas - Hardware as a service

2009년 11월 17일 화요일

derby JDBC connect



* jdbc  class load 할때 Driver.getConnection(connection_url) 을 사용한다.
jdbc:derby://server_name;user=login;password=****


* 아래는 derby connection sample이다.
import java.sql.*;


public class Connection
{
    public static void main(String [] args)
   {
        try {
              //derby driver
              Class.forName("org.apache.derby.jdbc.ClientDriver");
             //derby connection
             Connection conn =  DriverManager.getConnection ("jdbc:derby://localhost:1527//home/sgtae/MI;user=mi;password=mi");


             }
             catch (java.lang.ClassNotFoundException e)
            {
                System.err.println("ClassNotFoundException: "+e.getMessage());
             }
             catch (SQLException e)
             {
                System.err.println("SQLException: "+e.getMessage());
             }
       }
}

2009년 11월 3일 화요일

JsonObject와 JsonConfig 연계





JsonConfig는 Json object와 Java object와 연계성을 갖기 위해 사용된다.
예를 들어) Person 이라는 object가 있을시에, Json Object 객체를 Person에 매핑 시켜주고 Json object를 가진 또다른 Person instance를 생성할 수 있다.
Person class
public class Person 
{
    private String name;
    
    public String getName()
    {
     return this.name;
    }
    
    public void setName(String name)
    {
        this.name = name;
    }
} 
//person 인스턴스 p 생성
Person p = new Person();
p.setName("이름");

//p 인스턴스를 json Object로 생성
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( p );

//Jsonconfig 생성
JsonConfig jsonConfig = new JsonConfig();

//rootClass에 Person Object set
jsonConfig.setRootClass( Person.class );

// JsonObject와 JsonConfig의 Person 객체를 매핑한 Person P2 인스턴스 생성
Person p2 = (Person) JSONSerializer.toJava( jsonObject, jsonConfig );

p2.getName() 하면 "이름" 이 나옵니다.^^

2009년 11월 1일 일요일

볼튼 첼시 하이라이트 [09.11.01]

이청용 - 45분 출전 (전반전)

볼튼 수비수 퇴장으로, 이청용이 전반 만 뛴게 아쉽습니다.
이번 년도 첼시의 전력은 우승할 정도로 막강합니다.
하이라이트 URL 클릭
http://www.youtube.com/watch?v=h0mwGg7anxA

2009년 10월 29일 목요일

Derby 사용

1. Derby Client 접속 형태
Derby Database 접속방법은 embedded, client 형태인 2가지 나뉜다.
  • Embedded 접속 : 데이타베이스가 자바의 한 부분으로써 실행되고 , 같은 JVM을 공유한다. 그 결과 임베디드 방식은 port open이 필요없고 user, password만 가지고 자신의 lo서버의  Derby DB Server에 바로 접속한다.  외부에서는 Derby DB Server에 접속 할 수 없다.(즉, 자신이 만든 application에 DB가 필요한 경우 내장해서 application과 함께 배포하여 사용할때 유용하다.)
  • Client 접속 : TCP/IP 방식인 JDBC thin client 방식처럼 ip, port, user, password 의 접속 정보를 가지고 외부의 여러 client에서 Derby DB Server에 접속하여 사용할 수 있다.

Derby Server에 접속(connection) 방법인 embedded로 접속하는 경우 외에, client 환경으로 접속하는 경우가 많다.
그 이유는 embedded 경우로 접속할 경우,  embedded만 DB server에 접속 할수 있고 다른 client에서 접속 할 수 없기 때문이다.

2. 임베디드 방식 접속
>ij

ij version 10.4
ij> connect 'jdbc:derby:firstDB;user=sgtae;password=password';  
ij>
3. client 접속 방식 접속
ij> connect 'jdbc:derby://remote ip or domain:port/db명;user=sgtae;password=password';

client는 임베디드 방식과 달리 IP, Port를 갖는다.
4.feed back
ERROR XJ040: Failed to start database DB
see the next exception for details.
ERROR XSDB6: Another instance of Derby may have already booted
the database DB

이와 같은 경우는 임베디드 형태로 이미 DB Server에  접속되어 있으므로 ,더 이상 Derby client로 접속할 수 없다는 Error 메시지이다.
이 경우,  이미 임베디드 형태로 접속되어 있던 방식을  Client 접속 방법으로 새로 띄운다면, 다른 Client에서도 여러 connection으로 붙을 수 있을 것이다.

2009년 10월 22일 목요일

Linux port 열기

1. 리눅스 port 열기.
리눅스 port를 열기 위해서는  iptables를 통해서, 포트를 열고 막고를  할 수 있습니다.

아래의 예제 부분만 따라 하시면 해당 port에 대해 모두 열 수 있습니다.
Inbound (외부에서 서버로 들어오는) , Outbound( 서버에서 외부로 나가는 )  모두 port를 열기 위해서는 아래의 iptables로 INPUT, OUPUT 을 해주면 모두 열립니다.
권한은 root에서 해주시기 바랍니다.

iptables -I INPUT 1 -p tcp --dport port -j ACCEPT
iptables -I OUTPUT 1 -p tcp --dport port -j ACCEPT


예를 들면 ) FTP port 21번을 열고 싶다.
iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --dport 21 -j ACCEPT

port 만 맞게 넣어주면 됩니다.

2009년 10월 21일 수요일

linux 비트 버전 확인

root>  uname -m


비트 확인 내용
- 32-bit x86-compatible (i386/i686)
- 64-bit AMD64 and Intel EM64T (x86_64)
- 64-bit Intel Itanium2 (ia64)
- 64-bit IBM eServer iSeries and pSeries and POWER (ppc64)
- 31-bit IBM S/390 (s390)
- 64-bit IBM eServer zSeries (s390x)

2009년 10월 7일 수요일

JBI - componenet framework

JBI - component framework.

1. overview.

JBI의 component요소(Sevice Engine, Binding component)를 JBI 환경과 인터페이스에  install/uninstall, life cycle 그리고 error 지시를 제공하는 것입니다.
JBI framework은 아래의 항목 반드시 제공하여야 합니다.

- Component installation context. - component를 install/unistall시에 access ,자원 및 정보 제공을 해야 함.
- Component context. - component를 초기(init())화 할시에 access, 자원 및 정보제공.
- Class Loading. - Class Loader시에 (즉, compoenet instance 생성시) component에 대해, bootstrap과 실행시간을 제공해야 함.
component에게 JBI library로는 표준 class loader계층, component access, 공유를 제공해야 함.
- Error indication. - JBI spec의 구성에 맞추어 개발시 에러에 관해서는 Exception class를 제공하게 되는데, 여러가지 error type을 제공해야 한다.
JBI는 특정 인터페이스를 구현하기 위해 다음과 같은 기능을 제공 :

- Bootstrap - JBI의 관리 기능으로서, install/uninstall에 대해 제공.
- Component - JBI의 구성요소 서비스 단위(SE, BC)
- Component life cycle - component life cycle.
- Service unit manager. - service 단위의 구성요소에 depoly에 관한 제어. (선택적 사항)

2. Component의 관리 기능

 [1]  Bootstrapper.

- componentdml install/uninstall은 JBI의 관리시스템에 의해 실행.
- component는 bootstrap interface스를 구현하는 class의 이름으로 제공되야 한다.
(방식 - Bootstrap.init() )
 [2]. Component Interface

 - 각 componenet는 반드시 component interface에 대해서 구현이 되어야 함.
 - implementation class 이름은 관리 시스템의 install description을 제공해야 함.
 - 그리고 componenet interface는 아래와 같은 access에 대한 제공을 해줘야 함.

 1) component의 life cycle.
 2) component의 service unit manager

3. Component Life cycle
- 각 component들은 componentLifeCycle interface에 의해 구현되어야 한다.
그로인해 component interface를 통해 액세스를 하게된다.
- life cycle은 ComponentLifeCycleMBean으로 구현되며 필요한 component 상태를 변경할 수 있도록
ComponentLifeCycle interface를 사용한다.

4. Service Unit Manager
- 각 component들은 선택적으로 service manager unit을 제공할 수 있다.
serviceUnintManager interface를 통해 구현 가능.


JBI 공급 환경 특징 (요소)

1. Component Context
- component를 초기화 할시에 자원 또는 정보 제공은 아래와 같습니다.
- Component Name
- installation Root
- Workspace Root
- MBean Name service (JMX MBean object name)
- MBean Server
- Naming context
- Delivery channel.
- Endpoint Activation/deactivation

2. Installation (Bootstrap)
- Component name.
- Component class name.
- Class path elements
- Component context. (init() 을 위해 access 제공)

* getComponentName (), getInstallRoot (), getMBeanNames (), getMBeanServer (),
   getNamingContext (), getTransactionManager (), getWorkspaceRoot ()

- Installation root directory
- Component installation descriptor.

3. Logger.
Java.util.logging.Logger 사용.
Class Loading
component instance를 생성하는데 사용되는 클래스 로더 제공. ( Installation time, Execution time)

(예를 들면, jvm class loading 될때, Bootstrap loading --> extension loading --> System class loading)
[1]. Class and Resource Loading Styles and Loader Ordering

1) Initialing loader 생성
2) shared library class loader search
3) component's shared library loader as a single parent.
4) Each shared library loader
5) JBI 상위 클래스 loader로서, shared class 사용.
6) 그 외의 library loader.
[2]. Shared Libraries
일반적으로 둘 이상의 JBI 구성 요소에서 공유되는 Java 클래스를

[3]. Execution Class Loader

  1) Class Loading Ordering Rules
  2) Delegation Style
  3) Installation and Uninstallation of Shared Libraries
  4) Component Viewpoint
 [4]. Bootstrap Class Loader

  1) Class Loading Ordering Rules
   2) Delegation Style

Error Indication

기본적으로 Java exception을 사용.
1) DeploymentException
- administrative tool을 사용하여deployment 실패시. 상세정보를 나타낸다.

2) MessagingException.
- NMR에 의하여 생성, 조작, 전송 및 교환 및 메시지를 수신할때 throw 됩니다.

JBI 특징

JBI 간략한 특징



JBI는 plug-in component를 이용해서 nomalize한 메시지로 변환을 통해 시스템을 통합할 수 있는 자바 기반의 표준.

* 특징
JBI는 각기 다른 컴포넌트들과 직접적으로 통신하지 않고,,JBI 환경 인터페이스만 제공한다.
컴포넌트 사이의 메시징 라우팅을 담당한다. Service 제공자와 소비자간의 decoupling이 중요 point.
추가적으로 message processing, monitoring을 위한 key제공.
MI architecture 에는 크게 아래의 방향으로 이루어진다.

BC(Binding component) --> Adapter의 한 형식으로 외부 프로토콜을 접속을 해야 한다.
(HTTP, JMS, File 형식 지원)
DC(Delivery channel) --> BC 에서 DC로 message를 전달하고 받기 위해서는 DC로 request, response 한다.

NMR (Normal messaging router) --> DC에서 받은 message가 MI component를 올바르게 돌아다니게 하는것이 NMR이 하는 임무.
BC나 SE에서 직접 NMR로 붙지 않고, DC가 붙는다.
즉. request (External Component --> BC --> DC --> NMR --> DC --> SE)
      response (SE --> DC --> NMR --> DC --> BC --> External Component)
SE 에서 SE 전송 또한 마찬가지이다. (SE1 --> DC --> NMR --> DC --> SE2)

SE(Service Engine) --> Service Engine으로 (XSLT, BPEL, Rule service)를 제공하는 SE가 존재 한다.

* Service life cycle.

Deployment는 자원관리로서 각 unit은 아래와 같은 프로세스를 진행하게 된다.
empty --> depoly --> (shutdown) --> init --> (stopped) --> start --> (started)
              <-- undeploy <--        <-- shutdown <--         <-- stop

Endpoint  란?

End point는 메시지를 주고 받는 개념을 나타낸다.
하나의 서비스는 여러개의 endpoint를 노출시킬 수 있다.
endpoint는 Address, Binding, Contract 3가지로 구분할 수 있다.
Address 예를 들면. http://localhost:8080/services/

Binding은 메시지를 주고받는 방법에 대한 정의
Transport, Encorder, Security, Reliability, Protocol


contract 는 2가지로 나뉘며.
Service Contract
- interface와 interface를 상속받는 class로 구성
- interface에 Service Contract를 계약함
- 멤버는 Operation Contract를 계약해야 함.

Data Contract는 프로그램간의 상호작용이 어떻게 일어나는지에 대해 공식적인 선언.

Message Exchange Pattern.

JBI 모델 서비스는 WSDL 2.0 이용해 component들에 의해 작성되거나 사용되어 지는데, WDSL 서비스는 description은 항상 아래의 정의를 갖는다.

Message Type : XML 스키마
Operations:
- operation name
- Message Exchange - 소비자와 제공간의 순서나 방향같은 것을 나타낸다.
- Message Types

2009년 10월 6일 화요일

Agile CI build process

이전에 문서로 정리한것을 blog에.


개발 프로세스 통합 build 환경.
1. Intro.

Project 관리를 효율적으로 하기 위하여 통합 build 환경을 구성하려고 한다. Build 환경은 web 환경에서 클릭 한번으로 build flow(SVN sync ? source build(source , test code) ? junit test ? 배포)를 가능하게 한다. Build 환경 구성의 목적은 “가장 적은 비용으로 최소한의 버그와 최적화된 application 생성 및 유지보수” 를 위해서는 build 환경 구성은 필수적이다. 또한 개발 IDE(eclipse, visual studio)에 independency 하다.


* 통합 build tool이 없는 경우 진행 사항.
1. Source code를 svn으로 submit.
2. Svn sync 받은 후 compile, error 경우 어느부분인지 console 또는 개발 IDE 또는 console에서 확인.
3. Compile한 후 필요한 파일 package.
4. 추출한 파일들 해당 server에 수작업으로 deploy.
위와 같은 방법을 build 할 때마다 매번 반복해야 함.

* 통합 build tool이 있는 경우 진행 사항.

1. 개발자들이 svn으로 submit.
2. 통합환경 CI에서 button 클릭.
3. 자동으로 (sync -> compile -> unit test -> package ->?deploy)후 결과 email로 통보







2. Development tools environments

1) CI 도구
CCNET : CI 로 build web application을 제공한다. 중요한 점은 svn sync 및 email alert, build (force , scheduler)를 할 수 있다. ( IIS- .net framework 2.0~ )

2) Build System
maven : Ant와 비슷한 build tool이지만 Maven은 프로젝트의 종속(dependency)관계, 개발자/소유자, 버전 별로 관리할 수 있다는 측면에서 Project Management 측면이 강화되었다고 할 수 있다. 또한 Document, Reporting 제공하고 중요한 ant의 build script를 통합할 수 있다.

3) Test Framework
JUnit : java source 코드를 위한 test code. 해당 class의 method는 TDD로 작성이 필요하며, source code와 test code는 one by one 이면 좋다. Bug가 있을 source code를 집중적으로 TDD 할 필요가 있다.

4) Source code 관리
TortoiseSVN-1.6.2 : svn client

3. CCNET 구성도

Button 한번 click으로 다음 단계를 진행시킴.

1. source sync (CVS, SVN)
2. build (ant, msbuild, maven)
3. unit test (Junit, Nunit)
4. source upload (target server)
5. Email alert
6. Build schedule trigger

4. Maven build tool과 continuum

Maven을 기반으로한 라이브러리 관리 방식은 Maven Repository에서 라이브러리를 관리하고 이를 Local Repository에 download하는 방식이다.

CCNET 과 비슷한 CI tools 로서, Maven build tool의 Repository 관리 , Maven project를 관리 할 수 있는 tool이다. 그러나 중요한 점은 해당 project의 source compile, test, mail alert, 등 통합 빌드 환경을 구성하는 것은 CCNET과는 비슷하다.

5. build process tools을 정리.

* Java language 아닐 경우.

tools
dependency
소스코드 관리
SVN
tools

Build 스크립트 or Tools
MSbuild , etc.
dependency
CI tool
CCNET
IIS, .net framework
Test framework
NUnit, NUintTest++

프로젝트 관리
Gforge


* Java language이고 Build script Ant 사용시.

tools
dependency
소스코드 관리
SVN
tools

Build 스크립트 or Tools
ANT
dependency
CI tool
CCNET
IIS, .net framework
Test framework
NUnit

프로젝트 관리
Gforge


* Java language이고 Build script Maven 사용시.

tools
dependency
소스코드 관리
SVN
tools
Build 스크립트 or Tools
MAVEN
JRE
CI tool
CONTINUUM
JRE
Test framework
JUnit

프로젝트 관리
Gforge

2009년 10월 5일 월요일

Maven 실행

Maven 실행 및 설치에 관련된 내용입니다. repository(dependency library) 관리체계로 ant보다 훨씬 강력합니다.

Maven 환경.


1. 설치

1) http://maven.apache.org 에서 Maven 최신 설치.
2) 압축푼 후 시스템 환경변수 PATH에 Maven_home/bin 추가.

Prompt에서 "mvn -version"을 실행하여 Maven이 정상적으로 설치되었는지 확인할 수 있다



2. Maven에서 Java Project 생성

1) Maven은 각 프로젝트의 성격에 맞도록 Template 프로젝트를 제공하고 있다

2) Maven의 이 같은 기능을 Archetype이라고 한다.

3) Application project 일 경우

mvn archetype:create -DgroupId=net.javajigi -DartifactId=mysample

Web application 일 경우

mvn archetype:create -DgroupId=net.javajigi -DartifactId=mywebapp -DarchetypeArtifactId=maven-archetype-webapp



3. Maven 실행 방법

1) Source Compile

 디폴트로 생성된 하위 디렉토리로 이동한다음. 명령어 실행
  mvn compile

2) Test source compile
    mvn test-compile

3) 구현한 테스트 코드 실행.
     mvn test

4) Compile한 구현 코드를 jar, war로 압축하는 명령어 실행
    mvn package

5) Local repository에 등록
    mvn install

6) Remote repository에 등록
    mvn deploy


4. Maven의 dependency

1) Maven 이 위와 같이 Dependency 라이브러리를 관리할 수 있는 이유는 Maven이 모든 오픈 소스 라이브러리에 대하여 중앙 Repository를 가지고 있기 때문이다.
C:\Documents and Settings\Administrator\.m2\repository

Maven dependency 문제.

pom.xml 설정에서 종속성 있는 library를 다운로드 받아 빌드를 하게 된다.
무료 오픈소스 인경우는 문제없이 자동 다운로드를 받게 되나, 상용 library 경우 자동으로 repository에 다운로드 받지 못하며, 빌드에 실패 하게 된다.
예를 들어)



이 경우 jms에서 문제가 발생하게 되어 빌드 fail이 발생한다. 이와 같은 경우는 다음과 같이 설정을 하면 된다. 즉) 직접 해당 library를 install 해 주는 방법이다.

mvn install:install-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar -Dfile=/pathto/

-Dfile에 실제 존재하는 파일명을 넣고 command를 실행하면, repository에 해당 파일이 설치 되는 것을 볼 수 있다.

2009년 10월 3일 토요일

[청소년 월드컵] 한국 대 미국 동영상

아. 정말 멋지게 싸웠네요.ㅋ
3대 0 대승으로 조 2위 진출..
파라과이하고 16강 붙습니다.~ㅋㅋ

[청소년 월드컵] 한국 대 미국 클릭 (출처 - Utube)

2009년 10월 2일 금요일

청소년 월드컵 경기일정

아.. 이번 미국전은 반드시 이겨 16강 진출 했으면..
5년전인가. 본선에서 미국과 2대2로 비겨 16강 동반 진출 했지만.
이번에는 무조건 이기야지 16간다고 합니다. 이제 3시간 뒤면 시작하네요.
한국이 3대 1로 이길것 같다는 예감이.ㅋㅋㅋ 대한민국 화이팅.
참 sbs에서 방송합니다~

경기 일정

2009년 9월 27일 (일), 오전 1시 45분 한국 vs 카메룬 0:2 패

2009년 9월 29일 (화), 오후 11시 한국 vs 독일 1:1 무

2009년 10월 3일 (토), 오전 1시 45분 한국 vs 미국

2009년 10월 1일 목요일

TDD 동영상

LineReader 실습으로 김창준씨와 강규영씨가 직접 작업한 동영상 입니다.

http://xper.org/LineReaderTdd/

환경
Develop tool --> eclipse
Language --> Java
TDD tool --> junit

[천추태후] 금나라 시조

내가 좋아하고 즐겨보던 천추태후가 지난주 막을 내렸다.

사실 역사 왜곡이라는 이야기도 많았지만, 어느정도는 사실에 기반하여 재미를 주기 위해 각색했다고 생각 한다.

가장 흥미로운 것중 하나가 천추태후에서도 금나라의 시조에 대해 언급을 하는 부분이 있다.


그래서 한번 범위를 좁혀가며 찾아보기로 했다..
첫째, 신라 사람이 금나라의 시조인가? 아니라면 고구려 및 백제의 후손은?
둘째, (신라, 고구려 및 백제) 사람이라면 누가? (천추태후에선 마의태자 후손?)

이전 영화를 기억하는가?

<마지막 황제>라는 중국 영화를 보면 다음과 같은 장면이 나온다. 재판장에서 판사가 한 젊은이에게 묻는다.

"너의 이름이 무엇이냐?"
젊은이는 대답한다.
"아이신지료 푸이(愛新覺羅 傅儀)."
판사가 고개를 갸우뚱하며 말한다.
"참 이상한 성이구나."
바로 청나라 마지막 황제 부의가 모택동에게 재판을 받는 장면이다
[출처 : <천추태후>  오마이뉴스]

 여기서 아인신지료를 한자로 읽는 다면 '애신각라'  신라를 사랑하고 기억하라 는 뜻이다.
일설에 따르면, 마의태자는 항복에 반대하였고 그의 후손이 여진으로 금나라를 세웠다고 한다. '금' 이라는 이름 또한 '김'씨에서 연관된것 이고, 금을 계승한 청나라 역시 신라를 조상으로 생각했다고 한다.

또한 임진왜란 때 청나라에선 조선을 돕겠다고 했으나, 친명배금 정책을 폈던 조선은 그 요청을 받아들이지 않았다는 얘기도 있다.
여러 정황이나 기록을 미루어 보았을 때 마의태자에 대한 또 다른 학설은 어느 정도 신빙성을 가지고 있고 <천추태후> 제작진에서도 이를 드라마의 내용으로 활용했다고 생각한다.
재미와 즐거움을 주는 부분도 작가의 몫이라고 생각한다.

2009년 9월 30일 수요일

삼성 야구 우표.



14년전 1995년 종로에서 우표박람회가 열렸다.. 

그곳을 지나가는 중 야구 관련 우표를 팔고 있는 것이 아닌가?ㅋ

야구(LG팬) 를 좋아하는 나로서는 LG우표를 사고 싶어,  LG 우표 주세요 했으나...

다 팔리고 삼성 야구 우표만 몇장 남아 있을 뿐이었다.

이 기회가 아니면 다시는 살 수 없을것 같아, 삼성 팀 우표를 바로 사게 되었다..

아직도 내 우표 전집안에 삼성 우표는 잘 간직 되고 있다..ㅋㅋ

삼성 선수들 -  류중일, 김상엽, 김성래, 동봉철, 강기웅, 박충식, 양준혁, 김태한 (다들 쟁쟁하네요.~~^^)

모모



책장위에 꽂혀 있는 책이름은 '모모'. 어떠한 책인지 궁금해서 한번 찾아 보았다.
누구나 알고 있듯이 <모모>는 인간의 삶에서 가장 소중한 시간의 신비한 비밀에 대해 쓴 책이다. 하지만 지금 이 순간 한국의 독자들은 숨겨져 있는 또 다른 소중한 의미를 찾을 수 있을 것이다.이 책은, 성공을 위해서 모든 것을 희생하다가 쓰라린 실패를 맛보고 있는 어른들에게, 이 책을 읽는 동안에 예전에 가슴 속에서 살아 숨쉬던 따스한 정, 상상의 세계, 행복한 감정 들을 일깨워 주고 있다. 그 동안에 우리는 할머니가 한겨울밤에 들려 주던 솔깃한 이야기의 세계를 잃어버리고 점점 삭막해져가기만 한 것은 아닐까? 막다른 골목길에 몰리고 있는 듯한 지금 어른들에게도 이 책이 소용 있을 것이다. <모모>는 독일 사람이 쓴 우리 나라 사람들 이야기다.


목차
1부 모모와 친구들
제1장 어느 커다란 도시와 작은 소녀
제2장 뛰어난 재능과 아주 평범한 싸움
제3장 폭풍 놀이와 진짜 소나기
제4장 말 없는 노인과 말을 잘 하는 청년
제5장 많은 사람들을 위한 이야기와 한 사람만을 위한 이야기

2부 회색 신사들
제6장 똑 떨어지는 엉터리 계산
제7장 모모는 친구들을 찾아가고, 한 명의 적이 모모를 찾아온다
제8장 많은 꿈과 몇 가지 의혹
제9장 열리지 않은 좋은 모임과 열린 나쁜 모임
제10장 맹렬한 추격과 느긋한 도주
제11장 악당들의 모략
제12장 모모, 시간의 근원지에 가다

3부 시간의 꽃
제13장 그곳에서의 하루, 이곳에서의 한 해
제14장 너무 많은 음식과 너무 짧은 대답
제15장 기기를 다시 찾았다 잃다
제16장 풍요 속의 궁핍
제17장 크나큰 두려움과 더 큰 용기
제18장 뒤를 돌아보지 않고 앞만 바라보면?
제19장 포위된 이들은 결단을 내려야 한다
제20장 뒤를 쫓던 자들을 뒤쫓기
제21장 새로운 것이 시작되는 끝

작가의 짧은 뒷이야기
옮긴이의 말

2009년 9월 29일 화요일

JSON on JAVA programming.

JSON on JAVA programming (첫번째)

JSON programming을 사용하는 곳은 web page에서 client로 javascript에서 사용이 많이 될것이다.
그러나 이에 못지 않게, java programming에서 많이 사용되고 있다.
예를 들면 우리는 DOM parsing을 memory와 처리속도 문제로 인해, 다른 방법을 강구하게 된다.
그렇다면 JSON을 한번 사용해 보기 바란다.

public String getStringByXML2Json(String sourceFilePath)
{
File file = new File(sourceFilePath);
JSONObject jsonObject = (JSONObject) new XMLSerializer().readFromFile(file);

return jsonObject.toString();
}

public JSONObject getJsonObjectByXML2Json(String sourceFilePath)
{
File file = new File(sourceFilePath);
JSONObject jsonObject = (JSONObject) new XMLSerializer().readFromFile(file);

return jsonObject;
}

public JSONObject getJsonObjectByString(String text)
{
JSONObject jsonObject = JSONObject.fromObject(text);
return jsonObject;
}

public Object getJavaObjectByJsonObject(JSONObject jsonObject)
{
JSONSerializer jsonSerial = new JSONSerializer();
Object object = jsonSerial.toJava(jsonObject);
return object;

public String getXMLByJsonObject(JSONObject jsonObject)
{
String xml = new XMLSerializer().write(jsonObject);
return xml;

}

public String getXMLByJsonString(String jsonString)
{
JSONObject json = JSONObject.fromObject(jsonString);
String xml = this.getXMLByJsonObject(json);
return xml;
}

/*
* json reflection
*/
/*
public void testJSONinnerObjectByReflection()
{
JsonFactory jsonFactory = new JsonFactory();
String json = "{ name:\"태상구\" }";
JSONObject jasonObj = JSONObject.fromObject( json );
jsonFactory.addAttribute("p", jasonObj.get("name"));

Map classMap = new HashMap();
classMap.put( "p", jasonObj );

JSONObject jsonObject = JSONObject.fromObject( jsonFactory );
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass( JsonFactory.class );
jsonConfig.setClassMap( classMap );
Object java = JSONSerializer.toJava( jsonObject, jsonConfig );

//print
JsonFactory jsonFactory2 = (JsonFactory) java;
Object ba = jsonFactory2.getAttributes().get( "p" );
System.out.println(((String) ba) );
}

2009년 9월 28일 월요일

공부하는 독종이 살아남는다.



2달전 , 뇌를 어떻게 사용하고, 공부하는 방법을 알고자 이책을 구매 하였다.

간략히 책에 대해 소개하자면..
대한민국을 대표하는 정신과 전문의 이시형 박사가 뇌과학적 근거를 통해 불황을 극복하는 창조적 인재로 거듭날 수 있는 공부법을 말하고 있는 책이다. 이 책은 ‘모든 것이 흔들리는 불확실하고 불안한 시대, 무엇을 할 것인가?’란 물음에 대한 답을 제시하고 있다.
사실, 내가 항상 생각했던것은 우리가 IT 또는 여러가지 공부를 하다보면, 보고 듣고, 연구하고, 공부를 할때 삽질? 한것중 몇 %를 자신의 것으로 만들수 있을까.. 또한 어떻게 하면 학습 능률을 더욱더 끌어 올리기 위해선 어떤 노력을 해야 하는지 궁금하였다. 이 책엔 그러한 방법을 제시하고 있다.
오늘도 우리의 경쟁자들은 공부를 하고 있다. 그들을 앞서기 위해선 노력하고, 재미있는 방법으로 공부하는 방법밖엔 없을듯....~

제 책장에 있으니, 언제든지 가져다 보십시요. ^^

====== 목차 ========
Part01 나이들어하는 공부가 진짜다
무엇을 해야 살아남는가
나를 살리는 창조, 창조를 위한 공부 전략
창조가 경쟁력이다
학교에서는 절대 못 배우는 공부법
'저위험 고수입', 인생 최고의 투자처
써먹지 못하면 진짜 공부가 아니다
나이 들어 하는 공부가 더 잘되는 여섯가지 이유
'이 나이에'라는 생각이 가장 위험하다

Part02 뇌과학을 알면 공부의 길이 보인다
공부는 머리로만 하는게 아니다
뇌를 달래면 공부가 쉽다
시작이 반! 두뇌 측좌핵의 작업흥분과정
적군이 되는 호르몬 vs 아군이 되는 호르몬
짧고 강하게! 30분간의 세로토닌 효과를노려라
뇌가 좋아하는 여섯가지 자극
공부 잘 하는 사람들의 다섯가지 습관

Part03 공부 능력 두배로 키우는 잠재의식 활용법
모든 행동은 잠재의식의 영향을 받는다
자면서도 문제를 해결하는 잠재의식의 신비
문제해결의 이차선 도로, 의식과 잠재의식
잠재의식의 창고를 가득 채워라
공부도 창조도 감정이 한다
기본은 언어력이다
구체적 목표를 세우는 '서브 골 작전'
잠재의식을 자극하는 이미지법

Part04 공부테크니션의 여덟 가지 필살기
효율적 공부의 매뉴얼을 익혀라
첫번째_몸과 마음을 준비시키는 집중의 비법
두번째_초고도 집중력을 기르는 일점 집중의 비법
세번째_생각과 감정을 깔끔하게 정리하는 순간 전환의 비법
네번째_하루를 48시간처럼 쓰는 시간 창출의 비법
다섯번째_긴장과 이완을 적절히 조화시키는 휴식의 비법
여섯번째_필요한 정보만 골라담는 정보 습득의 기술
일곱번째_잊거나 깜빡하지 않게 하는 정보 기억의 기술
여덟번째_필요할 때만다 쏙쏙 꺼내 쓰는 정보활용의 기술
급할 때 활용하는 벼락치기 공부
'효과 두 배, 즐거움 두 배', 스터디 메이트와 함께 공부하기

Part05 불황에도 끄떡없는 '창재'로 거듭나라
천재보다 환영받는 이름, '창재
창조력은 생존의 문제다
최고의 창재, 빌 게이츠의 비밀
누구에게나 강점 지능이 있다
우리가 미처 몰랐던 우뇌의 힘
창조적 환경과 창재의 상관관계
마음만 먹으면 누구나 창재가 된다
성패는 과학적 훈련 방법에 달렸다