본문 바로가기

Programming/개인 프로젝트

[중고거래사이트 - 1] Use Case 작성 및 ERD 다이어그램 작성

반응형

개인 프로젝트로 번개장터를 벤치마킹한 중고거래 사이트를 구현하고자 한다. 번개장터의 일부 기능만 구현한다.

프로젝트명은 토마토 계란 볶음이다. 이유는 내가 토마토 계란 볶음을 먹으면서 이 프로젝트를 떠올렸기 때문이다.

 

화면설계

화면 설계는 카카오의 oven을 활용했다.

 

https://ovenapp.io/view/pKNRIFvnVU39qCaNWvZBrjhLYvkTErG1/

 

메인화면(로그아웃) (1 of 7)

 

ovenapp.io

 

Use Case

<사용자>
회원가입
- 사용자가 서비스의 회원이 될 수 있는 회원가입 기능이 필요하다.
- 사용자가 회원이 되는데 필요한 필수정보를 입력 및 확인하는 기능이 필요하다.
- 사용자가 고유한 ID를 가지도록 ID 중복검사 기능이 필요하다.
- 사용자의 ID와 함께 본인 인증을 위해 필요한 이메일 중복검사 기능이 필요하다.
- 사용자의 주소지 검색 및 등록 기능이 필요하다.

로그인/로그아웃
- 사용자가 서비스를 이용할 수 있도록 하는 로그인 기능이 필요하다.
- 사용자가 서비스 이용을 중지할 수 있도록 하는 로그아웃 기능이 필요하다.

사용자 아이디/비밀번호 찾기
- 사용자가 회원가입 시 입력한 이름과 연락처를 통해 아이디를 찾는 기능이 필요하다.
- 사용자가 회원가입 시 입력한 아이디와 연락처를 통해 비밀번호를 찾는 기능이 필요하다.

회원정보 수정
- 사용자가 회원가입 시 작성한 정보를 수정할 수 있는 회원정보 수정 기능이 필요하다.
  - 비밀번호 수정
  - 주소지 수정

회원탈퇴
- 사용자가 서비스 이용을 완전히 중지하는 회원탈퇴 기능이 필요하다.

<상품>
- 사용자가 판매하는 상품을 등록할 수 있는 기능이 필요하다.

<상점>
- 사용자가 내상점 페이지에서 내상점 정보를 수정하는 기능이 필요하다.
- 사용자가 내상점 페이지에서 자신이 판매하는 상품을 볼 수 있는 기능이 필요하다.
- 사용자가 내상점 페이지에서 자신의 상점에 대한 상점후기를 볼 수 있는 기능이 필요하다.

<검색>
- 사용자가 메인 페이지 좌측 카테고리 클릭을 통해 카테고리별 상품을 볼 수 있는 기능이 필요하다.
- 사용자가 페이지 상단 검색바를 통해 카테고리, 상점, 지역별 검색을 할 수 있는 기능이 필요하다.

<후기>
- 용자가 다른 사용자의 상점에 후기를 남기는 기능이 필요하다.

<채팅>
- 사용자가 상품 상세 페이지의 연락하기를 누르면 해당 상품 판매자와 채팅을 하는 기능이 필요하다.

 

ERD 다이어그램

https://www.erdcloud.com/d/wDntiAdqwpEpYorzW

 

중고거래사이트

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

 

ERD Cloud에서 작성했습니다.

Oracle 데이터베이스 기준으로 작성했습니다.

 

ERD 다이어그램 작성에 시간이 많이 소모되었다. 실제 작업 시간보다 다른 개발자의 작업물을 참고하고, 데이터베이스를 다시 공부하는데 시간을 많이 사용했다. 국비지원 교육에서의 조별과제 이후로 직접 ERD 다이어그램을 작성하는 것이 처음이었다. 게다가 조별과제 당시 주도적으로 DB 설계를 하지 않아서 더욱 생소하게 느껴졌다. 머리가 하얘졌다.

 

'아, 여기서 끝인가.. 벌써..'라는 생각과 함께 한숨을 내쉬었다. 처음부터 이렇게 막히게 될 줄은 몰랐다. 빨리 개발을 시작해야 하는데 첫걸음부터 돌부리에 걸려 코방아를 찧을 줄이야. 마음속에 잠시 분노와 자괴감의 폭풍이 휘몰아쳤다. 하지만 화내고 슬퍼해봤자 해결되는 것은 아무것도 없다. 어쨌든 해야 한다. 다시 마음을 다잡고 모르는 내용을 하나씩 살펴보았다. 개념에 대한 완벽한 이해는 잠시 접어두었다. 일단 '결과물'을 만들어내는 것이 중요하니까. 만들고 공부하는 과정을 몇 시간 반복하다 보니 결과물이 완성되었다. 기쁜 마음에 ERD Cloud에서 제공하는 내보내기 기능을 눌러 SQL을 다운로드하고 SQL Developer에서. sql 파일을 그대로 적용했다. 결과는 대실패.

 

'아, 여기서 끝인가.. 벌써..'라는 생각과 함께 한숨을 내쉬지는 않았다 이번엔. 조악하지만 결과물을 만들었고, 잘못된 부분을 파악하고 수정하면 잘 될 것이라는 자신감이 생겼기 때문이다. 가만히 살펴보니 PK/FK 구성이 잘못되었다. 내친김에 작업물 전체를 살펴보니 불필요한 테이블을 하나 발견했다. 의외의 수확이었다. 더 나아가 공부하는 마음으로 직접 테이블 관계를 하나씩 파악하면서 제약조건 설정 작업을 했다. 그렇게 (일단) ERD 다이어그램이 완성되었다. 

 

나 잘했지 하고 자랑하는 글이 아니다. 잘한 것 없다. 단지 이번 프로젝트의 흐름을 촘촘하게 기록하고 싶다는 욕심이 생겼다. 오늘의 나를 되돌아보면서 잘한 점과 아쉬운 점을 곱씹어보는 것이 성장의 밑거름이 되지 않을까 생각한다. 

반응형