혼자 여행 가긴 싫은데... 😢😢
혼자 여행가기 싫은 사람들을 위한 여행 커뮤니티, 같이 여행 갈 여행메이트를 구할 수 있으며 실시간으로 다른 회원과의 채팅으로 여행 정보를 물어볼 수 있습니다.
게시판으로 같이 여행 갈 여행 메이트 구하는 모집 페이지, 여행지에서 사고 판 물건을 거래할 수 있는 거래 페이지, 다른 회원들을 위해 여행지에 대한 경험을 공유하는 리뷰 페이지 또한 글쓴이의 여행 타입을 분석하여 나와 맞는 여행 특성인지 알 수 있는 여행 MBTI들로 구성되어 있습니다.
| 이름 | 역할 | 기능 |
|---|---|---|
| 강승규 | 팀장 / 채팅 | 프론트엔드 |
| 김시언 | 게시판 | 프론트엔드 |
| 김재호 | 총괄 | 풀스택 |
| 엄정식 | 채팅 | 백엔드 |
| 이채림 | 회원 | 풀스택 |
| 정범수 | 게시판 | 백엔드 |
| 이름 | |
|---|---|
| 프론트엔드 | |
| 백엔드 | |
| DB |
https://www.figma.com/design/nc1D7av1s0GGj9xY48Q5DH/TRAVELMAKER?node-id=0%3A1&t=89nA830d1BsoRpDI-1
Header
- 사용자는 로그인 유무에 따라 보여지는 항목이 달라집니다. [로그인, 회원가입] -> [마이페이지, 로그아웃]
회원 정보 영역
- 사용자의 프로필 등록 여부, 로그인 상태에 따라 보여지는 내용이 달라집니다.
회원 슬라이더
- 프로필을 등록한 사용자들을 조회할 수 있습니다.
회원가입
- 사용자로부터 정보를 입력받아 회원가입을 진행합니다.
- JS를 활용하여 입력값을 모두 입력받을 수 있도록 하며, 중복확인 과정을 통해 중복된 ID가 없도록 합니다.
- 비밀번호는 salt를 할당받아 SHA-256으로 해싱합니다.
로그인
- ID와 PW를 입력받아 회원 정보가 일치하면 로그인에 성공합니다.
- 로그인 성공 시 Session, Session Storage에 회원 정보를 할당합니다.
프로필
- 회원 한줄 소개, 여행유형, 사진 업로드가 가능합니다.
마이페이지
- 프로필이 등록되지 않은 회원은 프로필 등록 페이지로 이동됩니다.
- 회원 정보, 프로필, 작성한 게시글 등을 확인 및 이동이 가능합니다.
타회원 조회
- 다른 회원의 정보, 프로필, 작성한 게시글 등을 확인 및 이동이 가능합니다.
- 1대1 채팅방으로 이동할 수 있습니다.
게시판 테이블 구조
- 상속 관계 매핑 전략
- @Inheritance(strategy = InheritanceType.JOINED) : 상위 클래스 Post Entity에 설정 (정규화에 강점)
- @DiscriminatorValue : 하위 클래스(Join, Review, Carrot)에서 설정하고, Post Entity를 상속 받아 사용한다.
- 결과로 아래 ERD형태로 데이터가 저장된다. 유형에 따라 3가지 형태의 게시글이 등록되지만, post 테이블에 모든 게시물의 데이터가 있기 때문에 1개의 댓글 테이블로 모든 게시글의 댓글을 연결하여 사용 가능하다.
게시판 작성
- 로그인된 회원만 게시글 작성이 가능하도록 합니다. 로그인이 되지 않은 회원은 로그인 페이지로 이동됩니다.
- 게시글 유형(리뷰, 모집, 중고거래)에 따라 저장되는 형태가 달라집니다.
- KakaoMap API를 활용하여 여행위치, 거래위치 정보를 저장합니다.
- 게시물 작성 성공시 회원 테이블의 회원 게시물 작성 수가 반영됩니다.
게시판 삭제
- 글을 작성한 사용자는 본인이 작성한 게시글을 조회하면 삭제 버튼을 볼 수 있으며, 클릭시 등록한 게시물이 삭제됩니다.
게시판 목록 조회
- 게시판 이미지와, 제목, 조회수, 댓글 수 등 게시판 정보를 보여주며 6개 단위로 페이징 처리하여 보여줍니다.
게시판 상세 조회
- 게시글 상세 정보 조회가 가능합니다.
- 조회시 조회수가 증가합니다.
- 작성자 타회원 조회 페이지로 이동이 가능합니다.
게시판 댓글 작성
- 로그인 된 회원은 댓글 작성이 가능합니다.
- 로그인 하지 않을 경우 '로그인을 진행해주세요'라는 alert문구를 보여줍니다.
- 댓글 작성시 회원 테이블의 회원 댓글 수가 반영됩니다.
게시판 댓글 조회
- 해당 게시글에 작성된 댓글 조회가 가능합니다.
- 이름, 내용, 시간 형태로 6개 단위로 페이징 처리하여 보여줍니다.
1대1 채팅 기능
- 회원은 다른 회원과 1대1 채팅이 가능합니다.
- 타회원조회 페이지를 통해 채팅방 생성이 가능하며, 기존의 채팅방이 존재하면 기존 채팅방으로 이동됩니다.
채팅방 목록
- 사용자는 생성된 채팅방 목록을 조회할 수 있습니다.









