kimByeoungHyun / W7_CloneProject

백앤드 완성본입니다.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

항해99 9기 C반 1조 클론코딩

🌁프로젝트 주제

벨로그 사이트 클론코딩

📅 프로젝트 기간 : 2022.10.28 ~ 2022.11.03

👨‍👩‍👧‍👦 Our Team

공은희 김병현 원민재 오기쁨 박지윤 조민지
@euni1004 @KimByeungHyun @meruberu @joyfive @verocony @minzzjo
BE BE BE FE FE FE

📝 Technologies & Software Used

https://joyfive.notion.site/C-1-SA-582e3f58ec414bdaa30730374620cf47

🏀 Trouble Shooting

이번주에는 여러개의 파일을 올리는 작업을 진행했고 그 과정에서 여러개의 파일이 받아지지않는 문제가 생겼습니다.

  • 기존에 쓰던 방식과 다르게 MultipartHttpServletRequest을 찾아 사용, 저 타입은 multipartfile을 list로 받아오는 타입

좋아요를 완성하고 테스트하는 단계에서 레포지토리에 찾았을때 하나의 값이 나와야하는데 두개 값이 나온다는 오류가 생김

  • 프론트와 연결시에는 생기지 않을 오류였지만 postman으로 테스트하는 중에 같은 게시물에 같은 유저가 두번 좋아요를 눌러서 생긴 문제
    • 같은 유저가 같은 게시물에 두번 좋아요를 하지못하도록 중복체크를 한번 진행함

진행하다보면 하루에 한번정도 S3 access denied 뜨는 오류가 발생함

  • 어떤 이유인지 모르겠으나 계정에 등록되어있는 IM이 유출되었다는 알림을 받고 IM을 재생성함

📋 API Table

기능 method url request header response header request response
회원가입 POST /team01/member/signup {
“userName” : “fasd”,
“userId” : “af”,
“pw” : “fadf”,
“pwCheck” : “fadf”,
“intro” : “adf”,
}
{
“status” : 200,
“msg” : {“회원가입이 완료되었습니다.”},
“data” : null
}
중복확인 POST /team01/member/idCheck {
“userId” : “asdf”
}
{
“status” : 200,
“msg” : {“사용가능한 아이디입니다.”},
“data” : null
}
로그인 POST /team01/member/login {
“Access_Token” : “fasdfafasf”
}
{
“userId” : “dfa”,
“pw” : “fasd”
}
{
“status” : 200,
“msg” : {userName + “님 반갑습니다.”},
“data” : {
“userId” : “ asdf”,
"userName":"asdf ",
“userImgUrl” : “ad ”,
“intro” : “ sdaf”,
}
}
게시물작성 POST /team01/post {
“Access_Token” : “fasdfafasf”
}
{
“file” : [“ada”, ”adsf”],
”contents” : {
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“postTag”: [“asdf”, ”das”],
}
}
{
“status” : 200,
“msg” : {“게시글 등록”}
“data” : null
}
게시물수정 PUT /team01/post/{postid} {
“Access_Token” : “fasdfafasf”
}
{
“postContent” : “fasdf”,
}
{
“status” : 200,
“msg” : {“게시글 수정”}
“data” : null
}
게시물삭제 DELETE /team01/post/{postid} {
“Access_Token” : “fasdfafasf”
}
{
“status” : 200,
“msg” : {“게시글 삭제”}
“data” : null
}
좋아요 POST /team01/likes/{postid} {
“Access_Token” : “fasdfafasf”
}
{
“status” : 200,
“msg” : {“좋아요 완료”}
“data” : null
}
좋아요 취소 DELETE /team01/likes/{postid} {
“Access_Token” : “fasdfafasf”
}
{
“status” : 200,
“msg” : {“좋아요 취소ㅜㅜ”}
“data” : null
}
게시글 전체조회 좋아요순/시간순 GET /team01/getAllPostByLike
/team01/getAllPostByTime
{
“status” : 200,
“msg” : {“”},
“data” : {[
“postId” : 1,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : “수정됨”,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12
“countCmt” : 0,
],
[
“postId” : 2,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : null,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12,
“countCmt” : 0,
]}
}
게시글 상세조회 GET /team01/getPost/{postid} {
“Access_Token” : “fasdfafasf”
}
{
“status” : 200,
“msg” : “”,
“data” : {
“userName” : “asdf”,
“userImg” : “adf”,
“tag”: [“asdf”, ”das”],
“postTitle” : “adf”,
“postContent” : “ads”,
“postImg” : “adfadf”,
“countTime” : “5일전”,
“modifiyPost” : “수정됨”,
“userLike”: true,
“countLike” : 23,
“comments” : [
{
“userName” : “asdf”,
“userImg” : “adf”,
“comment” : “ afsf”
“commentId” : “”,
},
{
“userName” : “asdf”,
“userImg” : “adf”,
“comment” : “ afsf”
“commentId” : “”,
}
]
}
}
댓글작성 POST /team01/comment/{postId} {
“Access_Token” : “fasdfafasf”
}
{
“comment” : “댓글내용”
}
{
"status": 200,
"data": {
"userName": "병현",
"userImgPath": "images/normal_profile.jpg",
"comment": "댓글작성",
"commentId": 1
},
"msg": "댓글 작성 완료"
}
댓글삭제 DELETE /team01/coment/{commentId} {
“Access_Token” : “fasdfafasf”
}
{    
"status": 200,    
"data": null,    
"msg": "댓글이 삭제 되었습니다"
}
검색 GET /team01/search/?content=searchKeyword {
“status” : 200,
“msg” : {“”},
“data” : {[
“postId” : 1,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : “수정됨”,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12
“countCmt” : 0,
],
[
“postId” : 2,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : null,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12,
“countCmt” : 0,
]}
}
마이페이지 한줄소개 수정 POST /team01/myPage/intro {
“Access_Token” : “fasdfafasf”
}
{
"intro": “한줄자기소개”
}
마이페이지 프로필 수정 POST /team01/myPage/img {
“Access_Token” : “fasdfafasf”
}
{
”file” : 파일
}
마이페이지 조회 GET /team01/getMyPage?id=userId {
“Access_Token” : “fasdfafasf”
}
{
”status” : 200,
”msg” : null,
”data”: "myPageReqDto" :
{[
“postId” : 1,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : “수정됨”,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12
“countCmt” : 0,
],
[
“postId” : 2,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : null,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12,
“countCmt” : 0,
]},
"tag" : ["sdf","dsaf","dsaf","sdf"]
}
태그로 게시물찾기(태그, 사용자아이디) GET /team01/searchTag/user?tag=tag&id=userId {
“status” : 200,
“msg” : null,
“data” : {[
“postId” : 1,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : “수정됨”,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12
“countCmt” : 0,
],
[
“postId” : 2,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : null,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12,
“countCmt” : 0,
]}
}
태그로 게시물찾기(태그) GET /team01/searchTag/allr?tag=tag {
“status” : 200,
“msg” : null,
“data” : {[
“postId” : 1,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : “수정됨”,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12
“countCmt” : 0,
],
[
“postId” : 2,
“postImg” : “ada”,
“postTitle” : “adfa”,
“postContent” : “fasdf”,
“countTime” : “5일전”,
“modifiyPost” : null,
“countDay” : “오늘”,
“userImg” : “safad”,
“userName” : “asdf”,
“countLike” : 12,
“countCmt” : 0,
]}
}

📜 ERD Table

image

Video Lable

About

백앤드 완성본입니다.


Languages

Language:Java 100.0%