- 교육에 관련된 중고 물품을 카테고리 별로 분류하여 쉽고 빠른 상품조회
- 일대일 채팅을 통한 직거래 방식
김혜연 (34%) | 양세현 (33%) | 황현준 (33%) |
---|---|---|
채팅,마이페이지 요구사항 분석 |
회원,메인페이지 DB관리 |
상품,판매자정보 UML관리 |
- 사용자는 판매자도 될 수 있고, 구매자도 될 수 있도록 가입 시 역할 구분 없음
- 채팅 방에는 이전 채팅 메시지가 보관되어 있어야 함
⚠️ 역할 구분이 없어서 채팅 방 입장 시 접속자 식별 과정이 복잡해짐
📌 chatroom 테이블을 만들어 채팅 방 입장 시 필요한 정보 일괄 관리
- URL parameter 역할에 따라 구별 ( 구매자 - 상품id / 판매자 - 상품id, 구매자 id )
- 구매자의 최초 접속 시, chatroom 테이블 정보 생성
- 판매자는 구매자의 최초 접속 이후에 채팅 방에 접근할 수 있도록 구현
- WebSocket 서버는 HttpServletContext 와 독립적임
⚠️ 일대일 채팅을 구현하려면 WebSocket session 식별이 필요
📌 WebSocket 서버 내에 접속자 관리 Map 생성하여 메시지 타겟팅
- ConcurrentHashMap 구조의 접속자 Map 생성
- 채팅 방 접속 시, 해당 session 및 chatroom 테이블 정보를 Map 에 등록
- 메시지는 Map 내의 session 중 chatroom 테이블 정보가 일치하는 대상에게만 전송
- 상품 정보 수정 시 기존의 이미지가 삭제되지 않음
📌 업로드 경로의 올바른 설정
기능 | 설명 |
---|---|
메인페이지 | 1. 구매가능 상품 조회 2. 상단 바에서 판매등록, 로그인/회원가입/마이페이지 접근 |
상품정보 | 1. 상품 상세정보, 판매자의 다른 상품 조회 2.현재 접속자의 role 여부에 따라 채팅하기/채팅방목록 버튼 표시, 상품수정 버튼 표시 [구매자] 3. 채팅하기 - 판매자와의 채팅방 바로 입장 [판매자] 4. 채팅방목록 - 해당 상품의 채팅방 페이지로 이동한 후 개별 구매자와의 채팅방 입장 가능 상품수정 - 상품 정보 및 이미지 수정, 삭제 가능 |
회원가입/로그인 | 1. 이메일 중복 확인 2. 이메일과 비밀번호 유효성 검사 3. 로그인 회원은 role 구분 명시적으로 하지 않고 모두 될 수 있음 4. 로그인 정보 확인 로직은 필터 단에서 체크 |
채팅 | 1. 로그인 회원, 해당 상품 판매자 입장가능한 일대일 채팅방 2. 상품 간단정보 조회 및 이전 채팅내역 조회 가능 3. 판매자는 거래확정 가능 |
마이페이지 | 1. 회원정보 수정 및 탈퇴 접근 2. 구매 내역 / 판매 내역 / 현재 대화중 채팅방 조회 및 해당 페이지 접근 |
판매등록 | 1. 메인 상단 바에서 판매등록 접근 |
판매자정보 | 1. 판매자 인적 정보 조회 2. 판매자의 현재 판매중인 다른 상품 조회 및 해당 페이지 접근 |