은행 서비스를 통해 계좌를 개설하고 유저간에 돈을 거래할 수 있으며 입,출금 내역을 조회할 수 있다.
인기 게시판을 통해 추천을 많이 받은 게시글을 조회할 수 있다.
CRUD 게시판을 만들고 포인트를 이용하여 사용자 권한에 따라 접근할 수 있는 게시판을 제작한다.
검색 기능을 통해 자주 검색되는 단어를 모아볼 수 있다.
쪽지를 주고 받으며 삭제 시 DB에서는 삭제 안되지만 사용자의 UX에서는 삭제할 수 있다.
신고를 받은 유저는 ADMIN이 제재내역을 검토 후 제재할 수 있다.
댓글 CRUD를 수행할 수 있다.
- 프로젝트 명 : 은행 커뮤니티
- 개발 인원 : 1명 (허진성)
- 개발 기간 : 2023—01-13 ~ 진행중
- 주요 기능 :
- 은행 - 계좌 개설(3개 은행), 계좌 이체, 입출금 내역 조회, 계좌 찾기, 이체 유효성 검사, 타은행 이체시 수수료 발생
- 게시판 - CRUD 기능, 추천 및 비추천, 조회수, 페이징, 검색 기능, 인기 게시글 조회, 인기 검색어 조회
- 댓글 - CRUD 기능
- 사용자 - Oauth 2.0 로그인, 구글, 로그인, 회원 정보 수정, 유효성 및 중복 검사, Security 로그인, 비밀번호 찾기
- 포인트 - 포인트를 이용하여 회원 승급이 가능하며 회원 등급에 따른 게시판 접근 기능
- 쪽지 - 사용자 간의 쪽지를 주고받을 수 있으며 수신함과 발신함 구현, 쪽지 삭제 구현
- 신고 - 불량 유저에 대해 신고를 할 수 있으며 그에 따른 포인트 차감 및 유저 등급 강등 기능
- 개발 언어 : JAVA 11, mustache, javascript, css
- 개발 환경 : SpringBoot 2.7.5, gradle 7.2, Srping Data Jpa, Spring Security, Spring OAuth 2.0
- 데이터 베이스 : MySql, AWS RDS
- 형상관리 : Github, Notion
- 배포 : AWS EC2
- 간단 소개 : 구현하고싶은 기능이 떠오를 때마다 구현하기 위한 CRUD 게시판
- 회원 가입 페이지
-
유효성 검사
- 닉네임은 최소한 2 ~ 10자 사이이며, 특수문자를 제외한 한글 (ㄱ
ㅎ, 가힣), 알파벳 대소문자(az, AZ), 숫자(0~9)로 구성 - 이메일 형식 패턴 적용해 확인
- 한 개의 칸이라도 공백 혹은 빈칸이 있는지 확인하고 있다면, "OOO는 필수 입력 값입니다."의 메시지 보여주기
- 비밀번호는 최소 8~16자 이상이며, 영문 대 소문자, 숫자, 특수문자를 사용하게 하기
- 닉네임은 최소한 2 ~ 10자 사이이며, 특수문자를 제외한 한글 (ㄱ
-
중복 확인
- 데이터베이스에 존재하는 아이디를 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 아이디입니다."의 메시지를 보여주기
- 데이터베이스에 존재하는 이메일을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 이메일입니다."의 메시지를 보여주기
- 데이터베이스에 존재하는 닉네임을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 닉네임입니다."의 메시지를 보여주기
- 모든 검사가 통과되었다면 로그인 페이지로 이동시키기
-
비밀번호 찾기
- 비밀번호를 분실했을 경우 이메일과 아이디를 통한 검증으로 비밀번호 변경
- 입력된 비밀번호와 기존의 비밀번호가 같을 경우 동일한 비밀번호라고 안내 메세지 보여주기
- 입력한 두 비밀번호가 서로 다를 경우 비밀번호가 다르다고 안내 메세지 보여주기
- 로그인 페이지
-
검증되지 않은 회원일 경우 아래의 페이지만 이용 가능
- 회원가입 페이지
- 로그인 페이지
- 자유 게시판 목록 조회 페이지
- 자유 게시판 상세보기 페이지
- 게시글 검색 페이지
- 비밀번호 찾기 지페이지
- 그 외 로그인을 하지 않거나 올바르지 않은 경로로 접속한 사용자가 로그인이 필요한 경로에 접속한 경우 로그인 페이지로 이동
-
로그인 검사
- 아이디와 비밀번호가 일치하지 않을 시 "아이디 또는 비밀번호가 일치하지 않습니다. "의 메시지를 보여주기
- 이외의 다른 에러 메시지 또한 처리하기
- 모든 검사가 통과되었다면 로그인 후 main 페이지로 이동시키기
- 회원 정보 수정
- 회원정보 수정은 닉네임, 비밀번호만 가능
- 수정란이 빈칸 혹은 공백으로 된 경우 “공백 또는 입력하지 않은 부분이 있습니다.”의 메시지 보여주기
- 닉네임이 중복확인을 통해 중복일 경우 “이미 사용중인 닉네임입니다.” 메시지 보여주기
- 닉네임은 최소 2
10자이며, 특수문자를 제외한 한글 (ㄱㅎ, 가힣), 알파벳 대소문자(az, AZ), 숫자(09)만 가능 - 비밀번호 수정 또한 최소 8자~16자이며, 영문 대 소문자, 숫자, 특수문자를 사용하게 하기
- 수정 완료 시 수정 날짜 업데이트해주기
- 소셜 로그인 기능
- 구글, 네이버를 이용한 로그인
- 데이터베이스에 이미 존재하는 이메일이 있을 시 기존 회원 데이터 정보를 유지하기
- 소셜 로그인 사용자도 닉네임, 비밀번호 설정이 가능하고, 일반 로그인도 가능하게 하기
- 게시글 검사
- 게시글 작성, 수정 시 제목과 내용은 공백 혹은 빈칸으로 작성하지 않도록 하기
- 내가 작성한 글만 수정, 삭제 가능하게 하기
- 로그인을 하지 않고 글 작성 버튼을 누른 경우 로그인 페이지로 이동
- 내가 작성한 게시글에 대해서는 조회수 증가하지 않게하기
- 댓글 검사
- 댓글은 로그인한 사용자만 작성 가능하게 하기
- 댓글 작성 및 수정시 빈칸 혹은 공백으로 된 경우 “공백 또는 입력하지 않은 부분이 있습니다”의 메시지 보여주기
- 댓글 수정 및 삭제는 해당 댓글 작성자만 가능하게 하기
- 게시글 삭제 시 해당 댓글 데이터도 같이 삭제되게 하기
- 포인트
- 일반 유저의 경우 모두 포인트 0점으로 시작
- 게시글 작성 시 + 100점, 댓글 작성시 + 50점
- 포인트가 총 200점이 넘으면 일반 유저에서 VIP 유저로 승급되며 비밀 게시판 이용 가능하게 하기
- 게시글 추천/비추천
- 추천 및 비추천은 각 게시글당 1번씩만 누를 수 있게 하기
- 추천/비추천을 누른 상태에서 추천/비추천을 누르면 추천/비추천을 감소하기
- 추천/비추천을 누른 상태에서 비추천/추천 을 누르면 무효
- 인기 게시판
- 추천수를 많이 받은 게시글이 상위에 정렬되게 하기
- 만약 추천수가 같을 경우 비추천수가 적은 순으로 정렬되게 하기
- 만약 비추천수가 같을 경 생성일을 오름차순으로 정렬되게 하기
- 10개씩 페이징하여 출력
- 검색어 순위
- 검색어 순위는 검색량이 많은 단어에 대해 상위 10개만 페이징 없이 출력하기
- 검색한 단어가 10개 미만일 경우 해당 갯수만큼 랭킹 번호 삽입하기
- (현재는 MySql로 구현했으나 Redis를 조금 더 공부해서 구현하고 싶은 기능)
- 은행
- 3개의 은행 : 기업은행, 부산은행, 경남은행 중 3개의 계좌 중 한 군데에서만 계좌 신설 가능
- 계좌 신설시 10000원의 포인트를 해당 은행의 ADMIN에서 신설 축하금으로 보내줌
- 계좌 찾기를 통해 본인의 계좌번호 확인 가능
- 계좌 이체로 상대방의 계좌에 입금 가능하며 타 은행과 거래시 1500원의 수수료를 ADMIN의 은행에 지불
- 이체 후 잔액 표시
- 입출금 내역 조회 가능하며 시간순으로 정렬
- 계좌 유효성 검사를 통해 계설된 계좌에 한해서만 거래 가능
- 쪽지
- 게시글을 통해 다른 사용자에게 쪽지를 보낼 수 있음
- 유저 목록에서 다른 사용자에게 쪽지를 보낼 수 있음
- 자신에게 보내는 쪽지는 못보내게 하기 위해 알림 메세지 보여주기
- 보낸 쪽지는 나와 받는 사람만 열람 가능
- 받은 쪽지는 나와 보낸 사람만 열람 가능
- 쪽지 수신함, 발신함은 최신순으로 페이징하여 정렬
- 쪽지를 읽고 삭제시 사용자 UX에서만 삭제되고 DB에는 그대로 잔재
- 쪽지 작성시 제목과 내용은 빈칸으로 작성할 수 없게 하기
- 신고
- 게시글을 통해 게시글 작성자 신고하기
- 신고 내역은 ADMIN 권한을 가진 사용자만 접근 가능하게 하기
- 신고 내역 작성시 제목과 내용은 빈칸으로 작성할 수 없게 하기
- 신고 내역 삭제 시 사용자 UX에서만 삭제되며 DB에는 그대로 잔재
- 신고 내역 열람 후 검토하여 해당 사용자 포인트 차감 및 회원 등급 강등
- 비밀게시판
- 회원 포인트가 200점 이상인 유저는 VIP 회원으로 자동 승급되며 비밀 게시판 열람 가능
- 비밀 게시판의 댓글도 작성 가능
- 일반 게시판과 똑같이 제목과 내용은 빈칸으로 작성할 수 없게 하기
- 비밀게시판은 인기 검색어, 인기 게시판에 조회되지 않게 하기
https://www.notion.so/5-API-85fc5b625484446bbc3bea6631401058

https://www.notion.so/6-e8de440614224155b6e79c13f79f79e6
https://www.notion.so/43dd746d01cd45d2824339b361442c34?v=c58ec3dec8aa4497ad00a08cb41a67c1



















































