'자바자격증'에 해당되는 글 3건

  1. 2007.12.11 SCJD-2. SCJD 대비 연습 프로젝트 개요

개요

붕붕영화 예매시스템 프로젝트는 Sun Certified Java Developer (이하 SCJD)시험을

준비하는 분들에게 도움이 될 주제들을 포괄하고 있습니다.

SCJD 시험에서 실질적인 도움이 될 수 있도록 Concurrent Thread Control,

Network Based Programming을 심도있게 다루려고 합니다.

SCJD 시험에서 요구하는 대로 GUI 환경은 Swing컴포넌트를 이용합니다.

 

()붕붕영화는 전국적인 멀티플렉스 영화관을 소유한 성장하는 회사입니다.

()붕붕영화의 CEO ()붕붕영화의 멀티플렉스 영화관에서 상영하는 영화정보를

검색하고,좌석을 예매할 수 있는 애플리케이션이 필요하다고 생각합니다.

()붕붕영화 CEO ()붕붕회사 시스템 개발부에게 붕붕영화 예매시스템 개발을

지시합니다.

현재 시스템 개발부는 붕붕영화 예매시스템에 필요한 기본적인 데이터베이스를 만들었고,

자바 전문가를 영입해서 자사의 영화 예매시스템을 아주 경쟁력 있는 애플리케이션으로

만들려고 합니다.  이때 여러분이 자바 전문가로 추천되어 ()붕붕영화 시스템 개발부에

합류하게 되었습니다.

여러분이 ()붕붕영화 시스템 개발부에 합류하기 전 시스템 개발부에서 붕붕영화 예매

시스템에서 사용할 데이터베이스를 만들어 놓았는데,이 데이터베이스는 관계형 데이터베이스가 아니라 제한된 기능을 갖는 파일로 구성된 데이타베이스였습니다.

파일로 구성된 이 데이터베이스는 데이터를 읽고,쓸수 있는 등의 기본적인 기능만 갖고

있습니다. 이 데이타베이스를 네트워크 기반으로 사용될 수도 없었고, 데이타베이스를

이용할 때 사용할 수 있는 UI(User Interface)도 아직 없습니다.

 

 

구현목표

()붕붕영화 예매시스템에서 필요한 GUI(Graphic User Interface)를 만들어야 합니다.

()붕붕영화 예메시스템의 개발플랫폼이 자바이므로 자바언어를 이용하여 Swing 컴포넌트

를 이용하여 GUI를 구현합니다.

현재 단순히 읽고,쓰기만 할 수 있는 데이터베이스 기능을 확장시킵니다.

검색할 수 있는 기능과 여러 Thread가 동시에 작업을 할 수 있도록 데이타베이스를 Thread

Safe하게 구현합니다. 이를 위해서 특정한 레코드만을 Lock 할 수 있는 레코드 Lock기능을

구현합니다.

로컬에서만 운영될 수 있는 데이터베이스를 네트워크 기반으로 운영할 수 있도록

네트워크 기반 클라이언트도 데이터베이스를 사용할 수 있도록 데이터베이스 기능을 확장

합니다.

 

위와 같은 기능을 구현하는데 최대한 간명한 코드를 사용합니다. 

자바 플랫폼으로 개발을 할 때 가장 기본적인 문서화 도구인 "javadoc"을 이용하여

붕붕영화 예매시스템 프로젝트에 참가하는 모든 클래스에 대한 문서화를 구현합니다.

 

아키텍쳐

 

붕붕영화 예매시스템의 아키텍쳐는 네트워크 기반의 클라이언트-서버의 구조입니다.

네트워크 기반의 클라이언트-서버를 구성할 때 TCP기반의 Socket을 이용할 수도 있고,

혹은 RMI 기반으로 서비스를 구성할 수 도 있습니다.

네트워크 기반의 클라이언트와 서버간에 정보를 주고 받을 때 정보를 실어날으는 도구로는

Serialized 객체를 이용합니다.

 

붕붕영화 예매시스템 애플리케이션을 실행시킬 때 애플리케이션에 환경정보를 줄 수 있는

부분은 데이터베이스 서버의 DNS이름과 포트번호,데이타베이스 파일의 이름,

java.rmi.server.codebase , security 정책을 담은 파일명들입니다.

 

레코드 Lock, 레코드 Unlock, 검색 기능

()붕붕영화 시스템 개발부에서 만든 로컬에서 읽고,쓰기만을 지원하는 데이터베이스의

기능을 확장시켜 검색 및 네트워크 기반 클라이언트를 동시에 서비스 할 수 있도록 개선

해야 하며 이를 위해서 데이타베이스에 다음의 기능은 반드시 추가되어야 합니다.

 

- 레코드 Lock, 레코드 Unlock 기능

데이터베이스를 여러 개의 Thread가 동시에 사용해야 하기 때문에 Thread

레코드 Lock,읽기,쓰기,수정,레코드 Unlock등을 순서대로 진행한다면 데이터베이스는

반드시 일관성과 무결성을 가져야 합니다.

Thread A 가 데이터베이스의 내용을 수정했을 때,그 수정되기 전의 데이타 내용을 

보여주고 있는 Thread B가 수정된 내용을 실시간으로 반영해야할 할 필요는 없습니다.

예제 18 - 1은 레코드 Lock , 레코드 Unlock을 의미하는 메소드입니다. 데이타베이스는

레코드를 Lock, Unlock하고자 하는 클라이언트를 위하여 예제 18 - 1의 메소드를 반드시

구현해야합니다.

 

/**

* 레코드 Lock

* @param recno  Lock 해야하는 레코드 번호

*/

public void lock(int recno) throws IOException

 

/**

* 레코드 Unlock

* @param recno Unlock 해야하는 레코드 번호

*/

public void unlock(int recno)

예제 18 - 1

 

- 레코드 검색기능

  붕붕영화에 대한 검색을 하고 조건에 맞는 영화레코드를 찾아냅니다.

예제 18 - 2  레코드 검색 메소드입니다. 레코드 검색을 하고자 하는 클라이언트를

위하여 예제 18 - 2의 메소드를 반드시 구현해야 합니다.

 

  /**

  * 레코드 검색

* 검색조건 query의 내용은 name=value,name=value,name=value 형태로 구성됩니다.

* query제목=매트릭스 레볼루션,회차=1라면 ()붕붕영화 데이터베이스에서

* 1회에 상영하는 매트릭스 레볼루션에 대한 레코드를 찾습니다.

* 조건문의 값이 만약 "any"라면 그 값은 와일드카드(*)로 생각합니다.

* “제목=매트릭스 레볼루션,회차=any”라면 몇회에 상영하는지 상관없이

* “매트릭스 레볼루션에 대한 레코드를 찾습니다.

  */

public List finds(String query)

예제 18 - 2

패키징

붕붕영화 예매시스템 모듈은 반드시 .jar 형태이어야 합니다.

붕붕영화 예매시스템에 필요한 모든 클래스와 파일들은 반드시 .jar 형태로 패키징

되어야합니다.

붕붕영화 예메시스템 패키징을 구성하는 부분은 다음등을 포함합니다.

 

- 데이터베이스 파일 db.db

- 붕붕영화 예매시스템 javadoc 문서

- 붕붕영화 예매시스템 디자인 설명 파일

- 붕붕영화 예매시스템 실행방법,실행 커맨드

- db.db 파일의 위치

 

자 그럼 프로젝트로 뛰어 들어가 볼까요?

'자바 SCJD Projects' 카테고리의 다른 글

SCJD-6.리모트 인터페이스  (0) 2008.01.21
SCJD-5.검색과 레코드 Locking  (0) 2007.12.24
SCJD-4.확장 데이타베이스의 구조와 기능  (0) 2007.12.18
SCJD-3. 기본 클래스  (0) 2007.12.13
SCJD-1. 자격증소개  (6) 2007.12.11
Posted by
,