Final Project
1. 어플리케이션 구조

2. 아키텍처 특징
1. dao를 통해 JDBC로 접근하게 함으로써 메인로직과 관심사를 분리
2. Status와 유저역할(Role)을 Enum 타입으로 구성
3. JdbcDriver라는 클래스를 통해 DB연결
4. Container 클래스를 통해 의존성, 공통 리소스를 관리
-> Service 객체와 Dao 객체들을 한번만 생성해서 재사용할 수 있도록 관리 (Spring Franework의 DI 구현)
-> 재사용성 향상 및 결합도 감소
3. 개발한 기능
| 유저 | 상품 관리 | 상품 전시 | 상품 상세 페이지 | |
| 1 | 회원가입 | 상품 등록 | 상품 보여주기 | 상품 상세 설명 |
| 2 | 로그인 | 상품 수정 | 상품 가격순 정렬 | |
| 3 | 회원정보 수정 | 상품 삭제 | 상품 검색 기능 | |
| 4 | 비밀번호 변경 | 상품 재고 관리 | ||
| 5 | 탈퇴 |
4. 어플리케이션 흐름도

5. 설명서
* 환경설정 *
1. ojdbc가 포함 되어있지 않기 때문에 첨부한 라이브러리 ojdbc17.jar와 oraclepki.jar를 라이브러리 추가 해주시면 감사하겠습니다.
2. utils 패키지의 JdbcDriver 클래스의 URL을 환경에 맞게 변경 부탁드립니다.


연결이 되었으면 관리자모드, 일반 유저모드 두가지가 있기 때문에 관리자모드 부터 진행하겠습니다.
1 - 회원가입 (관리자 계정 생성)
사용자 유형은 1번 (관리자)로 설정해주세요.

2 - 로그인

로그인에 성공하면 관리자 메뉴로 들어가집니다.
3 - 상품관리
[2] 상품 관리를 선택합니다.

3-1 - 상품 등록
[1] 상품 등록을 선택합니다.

이후 상품 정보를 입력합니다.
*주의: 종료일자는 꼭 오늘 이후로 입력해주세요.


DB에 잘 입력된 것을 확인할 수 있습니다.
3-2 - 상품 수정

방금 등록했던 상품을 수정하겠습니다.


잘 바뀐것을 확인할 수 있습니다.
3-3 - 상품 삭제


ID가 13번인 상품이 삭제된 것을 확인할 수 있었습니다.
3-4 - 상품 재고 관리
재고 수정 확인을 위해 다시 상품을 하나 만들어 주겠습니다.

재고 수량은 100개로 선택하였습니다.
다시 상품 관리로 들어가서 [4] 상품 재고 관리에서 수량을 0(품절)으로 바꾸겠습니다.


다음과 같이 재고가 0이 된것을 확인할 수 있습니다.
*그리고 이후 살펴볼 일반유저가 제품을 확인할때도 재고가 0인 상품은 보이지 않도록 설정하였습니다.
3-5 - 상품 판매 중지
상품 판매를 중지할 상품의 ID를 입력하면 상품 판매가 중지됩니다.


판매 날짜를 어제로 설정함으로써 상품판매를 종료시키는 방법으로 구현하였습니다.
이것 또한 일반 유저가 상품을 볼 때 상품판매가 종료되면 보이지 않도록 처리했습니다.
4 - 회원정보 수정
다음과 같이 이메일, 이름, 휴대전화 번호를 새롭게 입력합니다.


다음과 같이 잘 바뀐것을 확인할 수 있습니다.
4-1 - 비밀번호 수정

다음과 같이 현재 비밀번호를 입력하고 일치하면 새로운 비밀번호로 변경할 수 있습니다.

암호화된 비밀번호도 새로운 비밀번호에 따라 변경되게 됩니다.
4-2 - 회원 탈퇴

탈퇴처리를 합니다.

이후 로그인 시도를 하면 로그인이 안됩니다.
5 - 회원가입 (일반 유저 계정 생성) & 로그인
사용자 유형은 2번 (일반 사용자)로 설정해주세요.

이후 로그인을 진행합니다.

로그인에 성공하면 다음과 같은 일반 사용자 메뉴를 만날 수 있습니다.

6 - 상품 목록 보기

다음과 같이 [1] 상품 목록 보기를 선택하면 상품의 리스트가 뜹니다.
여기서 의문이 드는 점은 아까 등록했던 상품이 보이지 않는다는 것 입니다.
이유는 재고를 0으로 설정했었기 때문에 상품 리스트에 보이지 않는 것입니다.
7 - 상품 가격 정렬 기능

다음과 같이 [2] 가격 낮은순으로 보기를 누르면 가격을 기준으로 정렬되어 나오게 됩니다.
8 - 제품 상세설명 보기

다음과 같이 더욱 상세하게 보고싶은 상품의 번호를 입력하면 해당 제품을 상세하게 볼 수 있습니다.

3. 돌아가기를 눌러 사용자 메뉴로 돌아갑니다.
9 - 상품 검색
"바이아우어" 라는 검색어로 검색합니다.

다음과 같이 검색한 결과를 보여주게 되며, 검색창에서도 제품을 상세보기 할 수 있습니다.
10 - 로그아웃

[6] 로그아웃을 눌러 다시 로그인 화면으로 돌아갑니다
'🚀Project' 카테고리의 다른 글
| 플레이데이터 백엔드 개발 5기 19주 차 회고 (3) | 2024.07.09 |
|---|---|
| [최종프로젝트] 3일차 회고 (0) | 2024.07.06 |
| [최종프로젝트] 2일차 회고 (0) | 2024.07.06 |
| [최종프로젝트] 1일차 회고 (0) | 2024.07.03 |
| Trouble Shooting (0) | 2024.04.22 |