PHP 프로그래밍

본문 바로가기
사이트 내 전체검색


Web Programming >> PHP Programming
[목차]
제21장 온라인 서점 쇼핑몰 만들기

    1. 쇼핑몰의 설계

 

지금까지 우리는 많은 예제를 통해서 PHP를 운용하고 데이터 베이스를 다루는 방법에 대해서 공부해왔다. 이제는 응용 프로그램 제작의 마지막 단계인 쇼핑몰 제작에 도전할 차례다. 실제로 인터넷에서는 다양한 종류의 쇼핑몰들이 운영되고 있다. 자동차, 꽃, 서적, 가전제품, 컴퓨터 등등 돈을 주고 살 수 있는 거의 모든 제품들이 쇼핑몰을 통해서 가상의 공간에서 팔리고 있는 실정이다. 많은 쇼핑몰의  종류 중에서 우리가 만들 쇼핑몰은 온라인 서점이다. 이 쇼핑몰은 크게 두가지의 기능으로 분류되는데 하나는 관리자의 측면이고 다른 하나는 사용자 중심의 기능이다. 관리자는 웹사이트를 유지 보수하고 쇼핑몰의 상품과 고객에 대한 모든 정보를 다루게 된다. 그리고 사용자는 가상의 쇼핑 공간에서 상품들을 구경하고 구매하는 작업등을 하게 된다.

그러면 제작에 들어가기 전에 앞에서 구현하게 될 쇼핑몰의 전체적인 구성을 설계해 보자.

 

1.1 관리자 기능
 

먼저 관리자의 기능부터 살펴보자. 관리자는 앞에서 얘기한 것처럼 상품에 대한 정보와 고객에 대한 정보 그리고 쇼핑몰을 운영하는데 필요한 여러 가지의 기능들을 담당하게 된다. 관리자가 이 쇼핑몰에 로그인했을 때 응용 프로그램에서 처리해야 하는 작업은 대략 다음과 같다.

  • 관리자 로그인 및 인증
  • 상품 관리
    • 상품 목록 조회
    • 상품의 등록
    • 상품의 정보 변경
    • 상품 삭제
  • 구매 내역 확인

관리자는 쇼핑몰의 내용을 수정하거나 변경하는 권한을 가지고 있기 때문에 아무나 관리자로서 접속하도록 해서는 안될 것이다. 그래서 관리자에게 부여된 아이디와 비밀번호를 가지고 서버에 접속해서 관리자가 가지는 고유 작업을 할 수 있도록 하기 위해서는 관리자의 인증 과정이 반드시 필요하겠다.

그리고 상품 관리에 있어서 관리자는 현재 운영되고 있는 쇼핑몰의 전체 상품 목록을 조회하고 새로운 상품을 등록할 수 있으며 이미 등록되어 있는 상품이 가지는 정보를 변경하거나 삭제하는 권한을 가진다.

마지막으로 구매자가 작성한 구매 신청내용을 확인하고 관리하는 기능을 가지기 위해서 판매 현황을 볼 수 있도록 관리자의 권한을 설정한다.

 

1.2 구매자의 기능
 

사용자 중심으로 처리해야 하는 기능은 다음과 같다.

  • 상품 목록 조회
  • 선택한 상품의 정보 조회
  • 장바구니
    • 장바구니 내용 확인
    • 장바구니에 상품 추가
    • 장바구니에서 상품 삭제
    • 장바구니의 상품 주문하기
  • 주문 정보 입력

쇼핑을 위해서 온라인 쇼핑몰에 접속한 사용자는 현재 이 쇼핑 공간에서 구매할 수 있는 상품의 목록을 볼 수 있어야 한다. 여러 종류의 상품이 있다면 같은 종류의 상품별로 구분된 상품의 목록을 볼 수 있도록 하자. 그리고 마음에 드는 상품이 있다면 그 상품의 자세한 설명이나 내용을 보기 위해서 각각의 상품마다 세부 내용을 두어 사용자가 이를 조회할 수 있도록 한다.

장바구니는 쉽게 말하면 쇼핑 중에 가지고 다니는 눈에 보이지 않는 쇼핑 카트라고 할 수 있다. 이 장바구니는 쇼핑몰에 접속한 사용자 개인마다 하나씩 제공되어 쇼핑이 끝날 때 까지 사용자를 위해서 존재하게 된다. 사용자는 장바구니에 구매를 원하는 상품을 넣을 수 있고 이미 장바구니에 담겨진 상품을 원래의 상품이 있던 자리에 다시 가져다 놓을 수 도 있다.

실제로 시장이나 가게에서 장바구니에 담겨져 있는 상품을 구매하기 위해서는 계산대에서 계산을 하게 되는데 이러한 과정이 바로 '주문 정보입력'이다. 이 과정에서 사용자는 장바구니의 물건들을 구매하겠다는 의사를 전달하고 주문에 필요한 갖가지 정보를 입력하게 되낟. 우리는 실제 쇼핑몰의 제작 과정에서 이러한 각각의 기능들을 구현할 것이다.

 

1.3 데이터 베이스의 설계

쇼핑몰은 여러 개의 데이터베이스 내부의 테이블들이 가지고 있는 내용을 참조하고 수정 또는 삭제하면서 운영된다. 쇼핑몰에 사용되는 데이터베이스의 종류에는 관리자가 사용하는 데이터베이스와 구매자가 사용하는 데이터베이스 그리고 관리자와 구매자가 서로 정보를 공유하는 데이터베이스의 세가지로 나눌 수 있다.

 

관리자용 데이터베이스

관리자는 상품의 정보를 수록하고 있는 데이터베이스를 다루게 된다. 이 데이터베이스가 가지는 상품 테이블에는 상품의 이름이나 가격 또는 재고 수량과 같은 상품에 대한 자세한 정보가 포함되어 있다. 그리고 또 다른 테이블에는 구매자들이 입력한 구매 신청 정보가 있다. 구매 신청 정보로는 구매자의 이름, 배달 주소, 연락처, 구매 물품 등이 있을 수 있을 것이다. 아래의 그림은 관리자가 참조하는 데이터 베이스를 나타낸 것이다.

 

구매자용 데이터베이스

구매자 역시 상품의 조회를 위하여 상품의 정보를 수록하고 있는 데이터베이스를 다루게 된다.  이 데이터베이스에는 상품의 이름이나 가격 또는 재고 수량과 같은 상품에 대한 자세한 정보가 포함되어 있다. 그리고 선택한 상품을 일시적으로 저장하기 위한 장바구니용 데이터베이스에는 구매자들이 입력한 구매 신청 정보가 있다. 구매신청 정보로는 구매자의 이름, 배달주소, 연락처, 구매물품 등이 있다. 아래의 그림은 구매자가 참조하게 되는 데이터 베이스를 나타낸 것이다.

이렇게 관리자와 구매자의 데이터 베이스는 많아 보이지만 실제로 관리자용 데이터베이스와 구매자용 데이터베이스는 공유하는 부분이 많다. 즉, 아래의 그림에서 처럼 실제로 존재하는 데이터베이스는 세 가지이고 이 들을 각각 관리자와 구매자가 공유해서 사용하는 것이다. 단 한가지 주의할 점은 비록 하나의 데이터베이스를 공유한다고 할지라도 사용 권한은 각각 다르게 된다.

 

1.4 쇼핑몰 전체의 동작

위에서 설명한 내용들을 종합해서 쇼핑몰 전체의 상세한 동작을 알아보기로 하자.

먼저 관리자가 로그인했을 경우부터 살펴보자.

관리자가 쇼핑몰에 로그인 신청을 하면 서버에서는 관리자용 아이디와 비밀번호를 요구하게 된다. 인증 과정을 거텨서 관리자는 관리자용 페이지를 보게 된다. 이 부분은 앞에서 이미 수없이 다루었던 내용이므로 다시 설명하지 않아도 될 것이라 생각한다.

아래의 그림은 관리자가 로그인 했을 때 그 인증 과정을 나타낸 것이다.

 

관리자가 인증 과정을 통해서 관리자 페이지로 이동하게 되면 가장 먼저 보이는 것은 현재 쇼핑몰에 존재하는 모든 상품의 목록이다. 여기에서 관리자는 상품의 정보 수정, 상품 삭제, 상품 추가, 그리고 판매 현황 주의 한가지를 선택해서 작업을 할 게 된다.

상품 추가 작업에서는 상품에 대한 정보 예를 들어 가격, 수량, 상품 이름 등의 여러가지 내용을 입력하고 입력이 끝나면 새로 고쳐진 목록을 볼 수 있다. 정보 수정 작업은 선택한 상품에 대한 정보를 보여준다. 상품 관리의 마지막 기능인 상품 삭제 작업은 선택한 상품을 목록에서 제거하고 결과 목록을 관리자에게 보여준다.

그리고 판매 현황 작업은 지금까지 구매자들이 입력한 구매 신청 정보를 열람할 수 있도록 한다. 이를 통해서 관리작는 어떤 고객이 어떤 상품들을 구매하였고 총 결제 금액은 얼마이며 배달할 주소와 연락처 등을 파악할 수 있게 된다.

이상의 내용이 관리자가 로그인 해서 작업을 선택했을 때의 동작이다. 이 모든 기능들은 다음의 그림과 같이 데이터베이스가 가지고 있는 상품 테이블, 그리고 파매 테이블과 연관해서 이루어지게 된다.

 

그러면 사용자의 입장에서 쇼핑몰의 동작을 살펴보자.

사용자는 전체의 상품 중에서 조건에 맞는 상품을 검색할 수 있다. 검색된 목록이 사용자에게 보여진다. 그리고 검색된 목록 중에서 상품을 선택하면 상품의 자세한 정보가 보여진다. 이상의 기능은 상품 검색에 관한 것이다.

이번에는 장바구니에 대한 사용자의 기능을 살펴보자. 사용자는 구매를 원하는 사품을 장바구니에 추가할 수 잇다. 장바구니에 상품이 추가되면 장바구니에 저장된 상품의 목록이 보이고 목록을 보는 중에 사용자는 장바구니에 저장된 내용을 삭제할 수 있다. 만일 장바구니에 저장된 사용이 삭제된다면 새로운 장바구니의 바뀌어진 목록을 보인다.

그리고 나서 마지막으로 사용자가 저장된 상품을 구매 신청하면 구매자의 상세 정보를 입력하는 화면이 보인다. 여기에서는 구매자의 이름과 배달 주소, 연락처 등을 입력하게 된다. 입력이 끝나면 신청이 저장된었음을 알려주고 판매 테이블에 구매자가 입력한 정보와 장바구니에서 선택한 상품의 목록을 함께 저장한다. 구매 신청이 끝나면 장바구니의 상품 목록을 삭제된다.

이상의 내용이 사용자에 대한 작업을 나타낸 것이다. 사용자의 작업들의 흐름과 데이터베이스와의 관계를 정리해 보면 아래의 그림과 같이 나타낼 수 있다.

 

이제는 실제 제작에 들어가기 전의 두 번째 준비 단계로서 데이테베이스를 만들어야 한다. 지금까지 설명한 것처럼 데이터베이스에 있는 여러 개의 태이블들이 서로 연관되어 동작하므로 데이터베이스의 구성은 주의 깊게 만들도록 한자.

 

 

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.