웹에 데이타를 전송해 주기 위해서, 데이타를 캐시하고 있는 서버에서 데이타를 json 포맷으로 가지고 있습니다.
라이브러리는 google-gson을 사용합니다..  json simple이나 jacson json processor에 비해서 속도는 뒤 떨어지지만, library의 사용성(?), 편리함(?) 때문에 사용을 하고 있습니다.. 데이타 저장을 위해서 json 포맷이다 보니, character set에 따라 크기, 즉 메모리나 데이타의 전송량이 달라지기 때문에, utf-8로 인코딩을 하고 byte[]의 길이를 체크해 보니.. 사이즈가 똑 같네요.. ^^;;
흠.. 소스 뒤져보니, utf-8로 인코딩을 하네요.. ㅋㅋ

http://code.google.com/p/google-gson/
http://google-gson.googlecode.com/svn/tags/1.5/docs/javadocs/index.html
http://sites.google.com/site/gson/gson-user-guide

저작자 표시
라이브러리..
 이넘 덕분에 프로그래밍이 많이 쉬워졌죠.. 특히, 자바진영에서는 Apache 재단의 지원이 매우 강력한 힘이 되고 있는게 현실이죠..
라이브러리를 사용하기 위해서는 의존하고 있는 라이브러리도 함께 있어야 제대로 동작을 하겠죠..
그리고, 라이브러리는 자신을 사용하는 클라이언트에게 에러 상황(Exception)에 대한 내용도 알려주겠죠?..

ㅎㅎ
위 상황을 가정하면, 왜 라이브러리가 로깅을 해야 될까요??
로깅이 debugging을 위한 거라고 가정을 한다면, 그 몫은 에러 상황을 리턴받은 클라이언트 몫이 아닐까요??

흠.. 정답이 없어서 모라 하긴 그렇지만..
개인적으로 라이브러리가 로깅을 하는것은 좋지 않다고 생각을 하는데..
혹시 저와 다른 생각이 있으신 분들은 답글 좀..  ^^
 



저작자 표시

json simple library

from Tools 2010/05/18 17:13
헐 좋네용.. ^^
C#은 3.5버전부터 API 수준에서 json 포맷을 지원하니..
자바도 7부터는 지원을 했으면 좋겠네요.. ^^

http://code.google.com/p/json-simple/

'Tools' 카테고리의 다른 글

eclipse에서 apache ivy로 binary 의존성 확인  (0) 2010/06/22
무료 CAPTCHA 서비스  (0) 2010/06/16
json simple library  (0) 2010/05/18
java c/c++, c# 호출방식  (0) 2010/04/29
eclipse에서 java source 보기  (0) 2010/03/16
Tag // json, Library
구글 프로젝트 호스팅의 도움을 받아서 코드 및 문서를 이동합니다.
기본적인 문서는 아래의 위치를 참고하세요..
http://code.google.com/p/sjava-logging/wiki/
http://code.google.com/p/sjava-logging/wiki/Introduce

그리고, 소스는 아래의 위치를 참고하세요.
http://code.google.com/p/sjava-logging/source/checkout
http://code.google.com/p/sjava-logging/source/browse/
http://code.google.com/p/sjava-logging/source/list

다시한번, 구글이 좋아지네요.. ^^

sjava-config 1.1

from My Project 2009/07/03 14:17
config 파일을 모니터링하는 부분의 코드가 변경이 되었습니다.
기존의 net.sjava.config.util.Watcher 클래스를 Timer를 이용하는 TimerTask로 변경을 하였습니다.
사용법은 http://www.sjava.net/121를 참고하시면 됩니다.

바이너리

'My Project' 카테고리의 다른 글

sjava-logging 1.0 Level  (0) 2009/07/13
sjava-logging 1.0  (0) 2009/07/09
sjava-config 1.2  (0) 2009/07/08
sjava-config 1.1  (0) 2009/07/03
sjava-config 1.0  (0) 2009/06/30

sjava-config 1.0

from My Project 2009/06/30 10:37
설정파일을 저장하고 가져오는 라이브러리입니다.
sjava-config는 http://www.jconfig.org/jconfig를 보고 필요한 형태(xml만 지원)로만 개발했습니다.
여러형태의 설정파일을 읽어올 수 있도록 common한 기능은 추상 클래스로 빼고 설정을 읽는 코드는 하위 클래스에서 구현을 합니다.

설정파일의 형태는 아래와 같습니다.
sjava-config.xml
<?xml version="1.0" encoding="utf-8"?>
<sjava-config>
    <!-- array variable delimeter is "," -->
    <!-- sjava-config 설정, 아래 설정은 지우지 마세요 -->
    <sjava-service name="config">
        <key name="watch" value="true" /> <!-- true, false -->
        <key name="interval" value="60" /> <!-- 60 seconds -->
    </sjava-service>
   
    <!-- 로그서버 설정 -->
    <sjava-service name="log">
        <key name="host" value="111.111.111.111,222.222.222.222" />
        <key name="port" value="20003" />
    </sjava-service>
</sjava-config>

그리고 위 파일(sjava-config.xml)은 classpath에 위치를 해야 읽을 수 있습니다.

ConfigTest.java
package net.sjava.config.demo;

import net.sjava.config.ConfigHandler;

/**
 * Code Coverage Test Class using EclEmma
 * @author mcsong@gmail.com
 * @since 2009. 6. 29.
 */
public class ConfigTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
       
        ConfigHandler configHandler = ConfigHandler.getInstance();
        System.out.println(configHandler.isLoading() ? "loading true" : "loading fail");
       
        System.out.println("- get vlaue test ---");
        System.out.println(configHandler.getValue("config", "watch"));
        System.out.println(configHandler.getValue("config", "interval"));
        System.out.println(configHandler.getValue("log", "host"));
        System.out.println(configHandler.getValue("log", "port"));
        System.out.println(configHandler.getValue("auth", "host"));
        System.out.println(configHandler.getValue("auth", "port"));
       
        System.out.println("- default value test ---");
        System.out.println(configHandler.getValue("config", "watch", "false"));
        System.out.println(configHandler.getValue("config", "interval", "11"));
        System.out.println(configHandler.getValue("log", "host", "222.222.222.222"));
        System.out.println(configHandler.getValue("log", "port", "20003"));
        System.out.println(configHandler.getValue("auth", "host", "222.222.222.222"));
       
        System.out.println("- array value test ---");
        for(int i = 0; i < configHandler.getValues("log", "host").length; i++) {
            System.out.println(configHandler.getValues("log", "host")[i].toString());
        }
       
        for(int i = 0; i < configHandler.getValues("auth", "host").length; i++) {
            System.out.println(configHandler.getValues("auth", "host")[i].toString());
        }
       
        System.out.println("- add value ---");
        configHandler.addValue("test", "host", "1.1.1.1");
        System.out.println(configHandler.getValue("test", "host"));
       
        System.out.println("- modify value ---");
        configHandler.setValue("test", "host", "2.2.2.2");
        System.out.println(configHandler.getValue("test", "host"));
       
        System.out.println("- modify values ---");
        String[] values = {"2.2.2.2", "3.3.3.3"};
        configHandler.setValues("test", "host", values);
       
        for(int i = 0; i < configHandler.getValues("test", "host").length; i++) {
            System.out.println(configHandler.getValues("test", "host")[i].toString());
        }
    }

}

바이너리

소스

'My Project' 카테고리의 다른 글

sjava-logging 1.0 Level  (0) 2009/07/13
sjava-logging 1.0  (0) 2009/07/09
sjava-config 1.2  (0) 2009/07/08
sjava-config 1.1  (0) 2009/07/03
sjava-config 1.0  (0) 2009/06/30