IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  자바 | SOA와 웹서비스 | 오픈 소스  >

RESTful한 웹 서비스 만들기

REST와 RESTlet 프레임워크에 대한 소개

developerWorks
Go to the previous page15 페이지 중 7 페이지Go to the next page

문서 옵션

샘플 코드


제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


데이터 계층

이 절에서는 RESTful한 서비스가 재사용할 상위 데이터 계층을 만드는 기존 도메인 객체를 서술한다.

도메인 객체

"본격적으로 시작하자: RESTful한 API 만들기" 부분에서 알아본 것처럼 Acme Racing 측에서는 예전 프로젝트 동안 데이터 계층에 투자했고 새로운 웹 서비스에서도 이 데이터 계층을 재사용해주길 바라고 있다. 물론 이렇게 함으로써 여러분의 일은 훨씬 더 쉬워질 것이다. 간단히 요약하면 데이터 계층은 Race, Runner, Result라는 세 가지 비즈니스 객체로 구성된다. 이것들은 스프링(Spring)과 하이버네이트(Hibernate)에 의해 효과적으로 관리되고 있지만 이 프레임워크는 여러분에겐 가려져 있어 그저 잘 동작하는 JAR 파일 하나만 갖고 있다는 정도만 알면 된다(즉, 여러분이 쉽게 새로 경기를 생성하고 기존 주자를 검색하는 등 그 정도면 된다).

이 비즈니스 객체들은 경기와 주자 인스턴스를 가져오는 일을 상당히 쉽게 해주는 검색 메서드 몇 개를 지원한다. 객체들은 하부 데이터베이스와 지속성을 갖거나 갱신되거나 제거될 수 있다. 이는 각각 save(), update(), remove() 메서드를 통해 이뤄진다.

예를 보자. Race 객체는 일련의 검색 메서드를 지원하며 지속성을 지닌 데이터를 다루기가 쉽다. Race 객체의 API는 Listing 10에 보인 것처럼 직관적이다.


Listing 10. Race의 API
                    
Collection<Race> findAll();
Race findById(long id);
Race findByName(String name);
void create(Race race);
void update(Race race);
void remove(Race race);

Race 인스턴스는 Listing 11에 나열한 것처럼 여러 속성을 갖는다.


Listing 11. Race의 속성
                    
private long id;
private String name;
private Date date;
private double distance;
private Set<Runner> participants;
private Set<Result> results;
private String description;

Race의 모든 속성은 속성값을 얻어오는 메서드(getter)와 설정하는 메서드(setter)를 통해 접근할 수 있다. 또한 항목들(participantsresults 등)에는 개개 항목에 대한 추가 기능을 지원한다. 따라서 Race 객체에는 Listing 12에 나타낸 것처럼 addParticipant() 메서드를 갖는다.


Listing 12. RaceaddParticipant() 메서드
                    
public void addParticipant(final Runner participant) ;

이처럼 도메인 모델을 이용하는 작업은 상당히 쉽다.




위로



Go to the previous page15 페이지 중 7 페이지Go to the next page
    IBM 소개 개인정보 보호정책 문의