본문 바로가기

나만의 작업

Jersey의 JSON Support Jersey에서 JSON을 지원하는 방법은 두가지가 있다. * JAXB Based JSON support * Low-Level JSON support 일단, JAXB 기반의 JSON 지원하는 방법을 알아보면, JSON하고 XML data format을 쉽게 produce/consume하면 시간절약을 할 수 있다. 왜냐면 Java model, JAXB를 이용한 annotated된 POJO를 쓰기..
Jersey의 Exception Handling Jersey에서는 WebApplicationException 클래스를 이용하여 Exception Handling한다. WebApplicationException을 잡아야 하고, 예외를 Response로 매핑한다. 예외를 위한 response가 null이 아니면 응답을 생성, null이면 서버 오류 응답을 생성 런타임 예외나 미리감지되는 예외(checked exception) 기호에 따라 사용 미리 감지되지 않는 예외나 ..
Jersey의 Return Type Jersey에서 사용할 수 있는 Return Type에는 void Response GenericEntity  Java Type 네가지 타입이 있다. void : 204 status code (성공. message body가 empty) Response : null 리턴 값은 204 status code. GenericEntity / Other : 리턴값이 null이 아니면 200 status code를 사용하고 ..
Jersey의 MessageBodyReader/Writer JAX-RS는 MessageBodyReader와 MessageBodyWriter를 통해 HTTP 메세지 바디와 자바 타입간의 마샬링과 언마샬링을 해준다. MessageBodyReader의 생긴 모습을 보면, (이 인터페이스를 구현하여 원하는 모습의 자바타입 객체로 변신시킬 수 있다.) public interface MessageBodyReader<T> { boolean isReadable(Class<?> typ..
JAX-RS @Produces와 @Consumes * Content negotiation Representation을 서버에서 클라이언트로 받을 때 정보를 넘겨줄때 두가지 전략이 있다. (뷰를 판단하는 방법) 1. 하나는 다른 URI를 주는것.  http://www.flyburi.com/user/buri.pdf http://www. flyburi.com/user/buri.xml 이렇게 다른 파일 확장자를 주는 방법 2. 다른 하나는 같은  URI를 주고 미디어타입의 리스트를 A..
JAX-RS의 구성 1. Root Resource Classes * 웹 리소스을 구현하기 위해 JAX-RS 어노테이션을 사용하는 자바 클래스  적어도 하나의 메소드에 @Path을 사용한 POJO Root resource class들은 JAX-RS runtime에 인스턴스화된다.  @Path 어노테이션이 달린 Resource 클래스 @Path("/hi") public class HiResource {     @..
What is Jersey? 구글에서 "Jersey"를 치면 제일 처음으로 Map에서 저지섬이 나오고 두번째 링크로는 역시 위키피디아의 저지섬이 나온다. 세번째 링크가 되어서야 내가 원하는 jersey 공식 홈페이지가 나온다.  Jersey는 SUN에서 개발하는 REST 방식의 웹 어플리케이션을 지원하는 JAX-RS의 구현체의 이름이다. Jersey is the open source (under dual CDDL+GPL license), production qu..
What is JAX-RS? JAX-RS(Java™ API for RESTful Web Services)는 자바 플랫폼에서 경량화된 REST 방식의 웹 애플리케이션 구현을 지원하는 자바 API이다. SOAP기반의 SOA 연동은 자바 애플리케이션을 무겁게 한다는 비판과 함께, 최근 웹 애플리케이션의 경향인 AJAX기반으로 JSON이나 RSS와 같이 간결한 프로토콜을 사용한 연동이 보편화되면서 쉽게 구현할 수 있도록 Java EE에 JAX-RS 라는 사양이 포함되고 있다. (출..
What is REST? REST는 2000년도에 Roy Fielding의 박사학위 논문에서 네트워크 시스템의 구조적 형식(architecture style)을 설명하기 위해 만들어진 용어이다. 최근도 아니고 이미 뜰만큼 뜬 REST에 대해 정리해보자. 정의 REST stands for "REpresentational State Transfer" REST is an architecture style not a standard : REST는 비표준 아키텍쳐..
[Spring] @Autowired의 Before/After Spring framework 2.5에 추가된 @Autowired annotation에 관한 글을 보고 정리. 알고있는 내용이기에~ 그냥 가볍게 Before 와 After code Before - @Autowired annotation이 없었을 때  applicationContext.xml에서 설정 <bean id="empDao" class="EmpDao" /> <bean id="empManager" class=..
[오라클] 초성검색 오라클 데이터 중에 'ㄱ'으로 시작되는 것! 찾을려면~  막상 생각나지 않는데~ 알고보면 간단하다! 뜨아 WHERE NAME >= '가' AND NAME < '나' 
자주 쓰지 않아서 잊어버리는 간단한 Oracle SQL문들 1. 제약조건 추가 alter table XXX add constraint uq_XXX unique(xxx); 2. 제약조건 확인 select constraint_name, table_name  from user_constraints  where table_name = 'XXX'; CONSTRAINT NAME은 USER_CONSTRAINTS VIEW를 통해 확인 가능. 모든 CONSTRAINT는 DATA D..
Thinkfree Office Live 한국어 서비스 시작 오랫만의 포스팅이~  Thinkfree Office Live 국내에 서비스를 오픈하는 내용이네요~ 드디어~ 오픈!~^_^ "무료 웹 오피스 + 무료 웹하드 + 간단한 협업 + 전세계 문서검색"으로 이루어진 Thinkfree Office Live는 "빠른시작"으로 로그인하지 않고 문서 미리보기, 파일변환, 공유, 검색등이 가능합니다. 급한 문서를 받았는데 어떤 내용인지 보기만 하면 되는데~  해당 컴퓨터에 오피스가 안깔..
[dW] JUnit과 TestNG 자세히 살펴보기 JUnit 테스트 픽스쳐는 특정 로직이 테스트 전후에 실행되도록 보장하는 하나의 약정이므로 손쉽게 재활용할 수 있다. JUnit 4 이전 버전에서는 setUp() 메소드에서 각 메소드마다 필요한 일들을 명시하면, 각 테스트 메소드가 실행되기 전에 각각 한번씩 실행이 되었다. 하지만  픽스쳐에 따른 상당한 오버헤드가 있었고 이 메소드를 한번만 하게 하려면 한번만 실행되도록 지정하는 방법이 번거로웠지만, JUnit 4에서는 모든 테스트에 ..
[dW] 사람을 위한 자동화: 연속 테스팅 개발자라면 프로그램을 짤때마다 항상~ 고민되는 테스트를 어떻게 최대한 구멍없이 하여  멀쩡한 프로그램을 짤까~~가  늘~ 고민중의 하나이겠지요. Junit을 이용하여 단위테스트를 하긴 하지만, Database를 사용한다면 기본적인 CRUD 테스트 메소드 말고 내 눈에 안보이는 구멍난 부분을, 더 많은 기능을 복잡하게 하는 부분을 어떻게! 어떻게!! 테스트해야할까.. 고민에 빠져서 자료를 찾아보니...   사람을 위한 자동화: 연속 테..
[dW] 초보자를 위한 유닉스 팁과 기교, Part 4 이 튜토리얼에선 본(Bourne) 셸 스크립트로 프로그래밍을 작성하여 처리하는 예제가 있습니다. 제가 모르는 것만 정리해 둡니다~ 더 자세한 내용은 링크를.. 이용해 주세요^^ 주석 : 셸에서 # 기호는 주석 행을 뜻한다. (쓸일이 없어서 몰랐군..) bc를 이용하여 진법 변환하기 bc는 임의의 정밀도를 제공하는 계산기 언어(arbitrary precision calculator language)로, 대다수 유닉스 배포판에서 제공..
[iBatis] iBatis에서 Log4j를 이용하여 쿼리를 로그로 남기려면? iBatis에서 Log4j를 이용하여 쿼리를 로그로 남기려면~~ log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG 쿼리 출력 내용을 보면, 새줄 기호(\n)가 모두 사라져서 쿼리 문장을 보기..
[iBatis] 자동 생성 Key 이전에 포스팅했던 2008/08/29 - [나만의 작업/iBatis] - [iBATIS] 4. How to 내용에 있는 "Auto Generation Key" 부분에서 추가할 것이 있어서 좀 더 자세한 내용. iBatis in Action 에서 발췌. 거의 모든 데이터베이스는 새롭게 삽입되는 레코드마다 자동으로 기본 키를 생성해 주는 기능을 가지고 있는데, 삽입을 완료한 후 생성된 기본키를 알 필요가 있다면....? 자동 생성..
[iBatis] 자바빈즈와 Map 타입의 결과 iBatis in Action책을 보다가 기억해 놓을 내용을 발췌해 놓는다. iBatis framework는 결과 매핑에 (Integer, Long 혹은 그 외의 원시 타입의 래퍼 클래스 이외에) Map 이나 자바빈즈 객체를 사용할 수 있다. 이 두가지 접근 방법의 장점과 단점 접근 방식 : 자바빈즈 장점 : 성능, 컴파일 시 강력한 타입 검사, 컴파일 시 이름 검사, IDE에서의 리팩토링 지원, 형변환이 줄어듬 단점 : 코드량..
Oracle instant client 설치(Mac OSX, Windows) Oracle을 설치하지 않고, Oracle사에서 제공해주는 client이용하여 원격에 있는 Oracle 접속하기~ 1. Mac OSX에서 설치법 1) 다운로드 http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/macsoft.html 여기서 간단히 Instant Client Package - Basic과 Instant Client Package - S..