개발에 있어서 가장 중요한 문서는

프로세스 명세서, 화면 설계서, 데이터 베이스 구조(ERD)라고 생각한다.

최소한 이 3가지는 있어야 개발 할 수 있다고 생각하고

이 3가지를 정리하면 웬만한 프로그램도 이해할 수 있다고 생각한다.

화면 설계서는 웹에서 실행시켜보는 것으로 대체하고

나머지 2가지에 대해서 정리했다.


JPetStore는 다음 그림에서 보는 것 같이

일반적인 쇼핑몰과 동일한 기능을 제공하고 있다.


먼저, 쇼핑몰에서 동물에 대한 분류(개, 고양이 등)를 선택하고,

세부 설정에 따라 원하는 동물을 찾아들어 간다.

(검색을 이용 할 수도 있다.)

맘에 드는 동물에 대한 정보를 본 후 ,

카트에 담기(Add to Cart)를 눌러 장바구니(cart)에 담는다.

(화면과 다음 흐름을 맞춰서 보면 이해 하기 쉽다.)


장바구니에서 주문을 하면(Proceed to Checkout)

로그인 창이 나타난다.

로그인 정보는 ID와 비밀번호를 j2ee와 j2ee로 동일하게 입력하면 된다.

(또는 ACID / ACID)

로그인을 하고 결제(주문) 정보를 입력하면

완료 메시지와 구매 리스트를 볼 수 있는 구조로 개발 되었다.

이 흐름은 다음 그림과 같은 URL로 되어 있다.

위 그림과 같이 클릭해 보면

웹 브라우저의 주소 입력창에 나타나는

URL (파마메터 포함)이 다음 그림과 같은 것을 알수 있다.

이 구조로 소스를 찾아보면

개발 흐름을 쉽게 파악할 수 있을 것이다.


다음으로 사용된 데이터 베이스 구조를 살펴 보면(ERD)

다음 그림과 같다.

resource/database/jpetstore-hsqldb-schema.sql파일의 내용을

AmaterasERD로 정리했다.

왼쪽에는 동물 분류와 세부 정보, 오른쪽에는 구매자 정보, 중앙에 주문 정보를 배치했다.

위 그림은 논리모드(Logical Mode),

아래 그림은 물리 모드(Physical Mode)를 갈무리 한 것이다.

주문 테이블(order)에서 ship(ship addr, shipcity...)은

직역으로 선적자로 적었지만 의미상 수신자,

bill(billaddr, billcidy...는 계산자로 번역했지만

주문자로 이해하는 것이 맞다.

전체적인 테이블 구조는 일반적이라

관계(Relation) 중심으로 기억해 두면 될 것 같다.

jpetstore.erd

 

다만, 로그인 관리(signon) 테이블을

계정(account)테이블과 별도로 구성하고

사용자 아이디를

로그인 테이블에서는 username,

계정 테이블에서는 userid로 다르게 명명하고

길이(length)도 25와 80으로 다르게 부여한 것은 이상하다.

같게 기능을 하고 같은 값을 사용하는 것을

왜 다르게 구현했는지...







'Java > JPetStore' 카테고리의 다른 글

1. JPetStore  (2) 2016.11.06
2. JPetStore 설치  (2) 2016.11.06
4. JPetStore - 코드 둘러보기  (1) 2016.11.06

+ Recent posts