날짜별 글 목록: 2008년 9월 24일

POJO와 관련된 용어들..

POJO(Plain Old Java Object)가 몬지 확실히 알고 갑시다.. ㅋㅋ
아래는 미물의 개발 세상님의 블로그에서 발췌한 내용입니다.

*  VO – Value Object.
 테이블에 매핑되는 레퍼 클래스로서 값을 표현하는 객체로서 고유의 identity를 갖지 않는것을 말한다. 그리고 속성에 따라 정의된 객체이고 pass by value로 넘겨지게 되므로  원격 호출이 아닌 로컬 호출이 된다.
* PO – Persistence Object.
 database identity를 포함하고 있는 객체, 캐싱됨.
* BO – Business Object
 Data source에 접근하여 데이트를 얻거나 저장하는 것을 목표로하고 비즈니스 로직을 포함하고 있는 객체이다. .Business Object는 Session Bean, Entity Bean 또는 별도의 Java Object로 구현된다.
* TO – Transfer Object
 Client가 사용하기 위해 데이터 전송에 사용될 조합된 객체. Value  Object와 유사함.
* POJO – Plain Ordinary Java Object
 원격 콤포넌트가 아닌 로컬 Object이고 더이상 EJB 콘테이너에 의존하지 않고 콘테이너 외부에서 단위 테스트가 가능하고 DTO(Data Transfer Object)로도 사용 가능한 것이라고 할까요.

위키피디아에서 정의한 내용을 살펴보면…

Contextual variations
As of November 2005, the term “POJO” is mainly used to denote a Java object which does not follow any of the (major) Java object models, conventions, or frameworks such as EJB.

All Java objects are POJOs, therefore ideally speaking a POJO is a Java object not bound by any restriction other than those forced by the Java Language Specification. I.e., a POJO should not have to

Extend prespecified classes, as in
public class Foo extends javax.servlet.http.HttpServlet{ …Implement prespecified interfaces, as in
public class Bar implements javax.ejb.EntityBean{ …Contain prespecified annotations, as in
@javax.ejb.Entitypublic class Baz{ …However, due to technical difficulties and other reasons, many software products or frameworks described as POJO-compliant actually still require the use of prespecified annotations for features such as persistence to work properly.

결국 POJO는 간단하게 Getter, Setter 메쏘드등을 가지고 있는 Java Object라고 보면 되겠습니다.
http://c2.com/cgi/wiki?PlainOldJavaObject 의 글도 참고해 보세요.. ^^

File에 내용 추가하기..

간단하게 아래의 코드로 File에 내용을 추가한다.

		try {
			// ask user for file name to write to
			FileWriter out = new FileWriter("out.txt", true);
			BufferedWriter writer = new BufferedWriter(out, 64); // buffersize를 줘서 성능을 높이자..
			writer.write("fooooooooooooooooooooooo~~");
			writer.newLine();
			writer.flush();
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

위의 FileWriter out = new FileWriter(“out.txt”, true); 에서 out.txt 파일이 없는 경우에 파일은 생성한다. FileWriter 생성자에서 true 인자를 사용해서 파일에 추가하고, BufferedWriter는 buffersize를 설정해서 성능을 높일 수 있다. ^^