관련 사이트 : http://simple.sourceforge.net/home.php


자바를 위한 XML 직렬화처리 및 설정을 해주는 높은 성능의 프레임워크다.

- Simple framework with powerful capabilities

- Can handle cycles in the object graph

- It requires absolutely no configuration

- Extremely rapid development with XML

- Converts to and from human editable XML

- Contains an XML templating system


위의 특징을 가지고 있는 프레임워크다. 자세한 내용은 사이트에 가서 확인하기 바란다.

아래 튜토리얼을 확인하기 바란다.

tutorial : http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php



간단한 예제코드

1. 먼저 Simple framework를 다운로드 받는다.

< Example.java >

  
package javastudy.simplexml;

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root
public class Example {
    
    @Element
    private String text;
    
    @Attribute
    private int index;

    public Example() {
        super();
    }

    public Example(String text, int index) {
        super();
        this.text = text;
        this.index = index;
    }

    public String getText() {
        return text;
    }

    public int getIndex() {
        return index;
    }
    
}

<SimpleXmlTest.java> 테스트 코드

  
package javastudy.simplexml;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;

import java.io.File;

import org.junit.Test;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;

/**
 * simple Xml serialization 프레임워크를 이용하여 객체를 XML로 변환처리 테스트
 * @author 허니몬
 * 
 * 고려사항 : 
 *  1. Java 객체를 우선 정의해줘야한다.
 */
public class SimpleXmlTest {

    /**
     * Example 클래스의 구조를 example.xml으로 변환하여 xml파일을 생성한다.
     * 이때, 객체 안에 담겨있는 데이터는 @Attribute @Element 애노테이션에 
     * 의해 xml의 attribute와 element로 정의된다. 
     */
    @Test
    public void simpleObjectToXmlTest() {
        Serializer serializer = new Persister();
        Example example = new Example("Example message", 123);
        File result = new File("example.xml");
        
        try {
            serializer.write(example, result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    @Test
    public void simpleXmlToObjectTest() {
        Serializer serializer = new Persister();
        File source = new File("example.xml");
        
        Example example = null;
        try {
            example = serializer.read(Example.class, source);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        assertThat(example.getText(), is("Example message"));
        assertThat(example.getIndex(), is(123));
    }
}


<example.xml> 위의 코드에서 생성된 xml

  

   Example message


의 형태를 띄게 된다. 그 이외의 상세한 내용에 대해서는...

차근차근 해보도록 하자. 요즘 머리에 주입되는 정보들을 처리하느라 힘들다.




사용용도 : 객체(Java source)를 뼈대로 해서 xml파일을 생성하려고 할 때 사용할 수 있을 것이며,

이렇게 생성된 XML에 담긴 정보를 객체에 주입할여 인스턴스를 생성할 수 있을 것이다.


[개발철학] Simple more Simple

단순명료(單純明瞭)함.

  나의 개발철학은 이 한마디로 정리할 수 있을 듯 하다. 다른 이들이 보아도 나의 개발철학은 단순명료함을 유지하여 적은 시간을 투자하여 빠른 이해와 높은 활용성을 얻도록 하는 것을 목적으로 하고 있다. 나와 동문수학한 다른 이들을 도와주기 위해 그들이 작성한 코드를 가만히 들여보고 있자면, 한숨이 절로 나오는 경우가 있다. 자신이 지정한 변수가 어떤 타입인지 모르고 전혀 엉뚱한 타입으로 받아서 생기는 오류(이클립스와 같은 IDE 툴을 사용하는데도 종종 볼 수 있었다)에서 시작해서 자신이 생각해낸 알고리즘이 아니라, 단순히 인터넷 검색을 통해 나와있는 코드를 그대로 복사해서 붙이면서 발생한 이해불능의 기능으로 인해서 읽기 어려움에 빠진다. 그것을 보면서 나는 저렇게 해서는 안되겠다는 생각을 다짐하고 또 다짐했다. 그와 동시에 이런 나의 생각을 내 개발습관 속에 서서히 녹아들도록 만들었다. 철저하게 코딩스타일을 유지하며 낯설은 부분에서는 이해하기 쉽도록 주석을 첨가하고, 가급적이면 한줄에 하나의 명령어만을 구현하도록 노력했다. 코드는 자기가 봤을 때도 이해하기 쉽고 다른 사람이 봤을 때도 이해하기 쉽게 만들어져야 한다.

   C언어를 배우는 초기에는 컴퓨터의 제약조건들 때문에 한줄에도 많은 명령어를 구현하려고 노력했었다. 하지만, 지금에 와서 PC의 성농은 비약적으로 증가되었으며, 객체지향언어가 발달하고 널리 사용되면서 굳이 적은 코드파일 크기를 고집할 필요성이 약해지고 있다. 이런 상황에서 나는 코드의 가독성과 이해력을 높이기 위해서라면, 한 줄로 끝날 계산도 가급적이면 나누고 나누어서 표현을 하려고 노력한다. 그것이 나의 Simple more Simple 개발철학이다. 이런 나의 개발철학은 나의 개발물들을 후에 다른 사람들이 수정할 일이 생겼을 때 수정하여 사용하기 쉽도록 하여 내 코드의 재활용성을 높여줄 것이다.

  간혹 프리랜서로 일한 사람들의 코드를 보면 쉽게 이해할 수 없는 부분들이 많은 경우가 있다. 이에 대한 문서화도 제대로 되지 않아서 급하게 수정해야할 경우 난해한 경우가 생긴다. 프리랜서로서 그렇게 해야 다시 자신들을 불러줄 거라고 생각하는지 모르겠지만, 개인적으로 그런 습관을 가지고 있는 프리랜서라면 나는 다시는 안 쓴다.  깔끔하고 이해하기 쉬운 코딩스타일을 가지고 있으면서 문서화를 잘하는 프로그래머와 계속 함께 일하고 싶어할 거니까. 나 역시 그런 프로그래머가 되려고 노력할 것이다.

구인정보를 읽다가 개발철학에 대해서 묻는 질문에 대해서 잠시 곰곰히 생각을 해보았다. 나는 단순히 일자리가 없어서 개발자가 되려는 것이 아니라, 이 분야에서 계속 일하고 싶기 때문에 5개월동안 교육을 받은 것이고, 오랫동안 개발자로서 인정받고 성장하기 위해서는 내 개발철학을 가지고 소신껏 살아갈 필요가 있는 것이다. 그래서 개발철학을 생각해본다.

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts