java 3

Proxy

이번 포스팅에서는 지난 reflection 소개에 이어서, Java에서 제공하는 reflection 중 하나인 dynamic proxy(이하 proxy)에 대해 알아보도록 하겠습니다. Proxy라는 단어에서 생각해볼 수 있는 것 웹 서핑을 하다 보면 "프락시 서버"라는 용어를 한 번쯤 들어보셨을 겁니다. 저 서버는 내가 직접 접근할 수 없는 웹 페이지를 나 대신 접근해서 보여주는 서버지요. 그렇다면 Java에서 proxy란 무엇일까요? 위 프락시 서버의 경우와 마찬가지로 어떤 동작들을 대신 해주는 것이라고 어렴풋이 생각해볼 수 있지 않을까요? 간단한 스위치 예제들을 통해서 proxy에 대해 알아보도록 하겠습니다. 1. 대신할 동작 정의하기 먼저, 대신할 동작이 무엇인지 알아야 합니다. Java에서는 동작..

ARCHIVES 2015.09.22

JDO(Java Data Objects)와 Datanucleus 소개

JDO란? JDO(Java Data Objects)는 자바 객체를 데이터베이스(또는 여러 파일 형식)으로 저장할 수 있게 하는 표준 API 입니다. JDO 표준은 객체 모델을 직접 데이터 모델로 사용할 수 있게 해줍니다. 즉 객체를 핸들링하는 방식을 통해 직접 데이터베이스의 데이터를 다룰 수 있습니다. JDO는 표준 API이며 이를 구현한 여러 구현체가 있습니다. 현재 Apache JDO 홈페이지에 따르면 다음과 같은 JDO 구현체가 있습니다. Name License JDO Spec Datastore(s) DataNucleus Access Platform NonCommercial 1.0, 2.0, 2.1, 2.2, 3.0, 3.1 RDBMS, db4o, NeoDatis, LDAP, Excel XLS, E..

ARCHIVES 2015.09.22

Reflection

이번 포스팅에서는 reflection이 무엇인지, Java는 어떻게 reflection을 지원하는지 알아보도록 하겠습니다. Reflection이란? 위키피디아에서는 "프로그램이 그 프로그램의 구조와 동작을 실행시간(runtime)에 살펴보고 수정하는 능력"이라고 설명하고 있습니다. 한국어 위키피디아에서는 "반영"이라는 단어를 사용했는데, "내성(內省)"이나 "내관(內觀)"이 의미적으로 더 부합되지 않나 생각해봅니다. 그렇다면 어떻게 프로그램이 자신의 구조와 동작을 살펴보고 수정할 수 있을까요? 사실 실행중인 프로그램과 그 프로그램이 다루는 자료는 모두 메모리에 있는 0과 1의 향연에 지나지 않습니다. 프로그램이란 CPU가 수행할 연산들을 나열한 자료일 뿐이죠. 여기까지 읽으셨다면, 프로그램이 자기 자신을..

ARCHIVES 2015.09.22