실습 내용

유저 피드 조회 API

model

GetUserFeedRes

_isMyFeed : 자신의 피드인지 타인의 피드인지 구분

getUserInfo : 유저의 정보

getUserPosts : 유저의 게시물 리스트

 

GetUserInfoRes

nickname : 유저 닉네임

name : 유저 이름

profileImgUrl : 유저 프로필 url

website : 웹사이트 url

introduction : 소개글

follwerCount : 팔로워 수

followingCount : 팔로잉 수

postCount : 게시물 수

 

GetUserPostsRes

postIdx : 게시물 idx

postImgUrl : 게시물 사진 url

 

UserController

getUserFeed

GET 메소드를 사용

1. userIdx를 Body로 받아와서 userProvider의 retrieveUserFeed에 userIdx와 함께 넘겨줌

(본인의 피드를 조회하는 것인지, 타인의 피드를 조회하는 것인지 구분하기위해 2개의 userIdx 사용)

2. retrieveUserFeed로 받아온 값인 getUserFeedRes를 반환

 

 

UserProvider

retrieveUserFeed

1. checkUserExit(userIdx)를 통해 매개변수로 받아온 userIdx가 정말 존재하는 것인지 확인

2. 만일 userIdxByJwt와 userIdx가 동일하지 않다면 타인의 피드를 조회하는 것이므로 isMyFeed = false로 설정

3. userDao의 selectUserInfo의 결과값을 getUserInfo에 반환

4. userDao의 selectUserPosts의 결과값을 getUserPosts에 반환

5. 위에서 받아온 isMyFeed, getUserInfo, getUserPosts를 매개변수로 하여 새 객체 getUserFeed를 최종적으로 반환

 

 

UserDao

selectUserInfo

해당 userIdx를 가진 유저의 정보를 반환하는 쿼리문

 

selectUserPosts

매개변수로 받아온 userIdx가 작성한 게시물 리스트 조회 쿼리문

 

checkUserExist

매개변수로 받아온 userIdx가 정말 존재하는 userIdx인지 확인하는 쿼리문

 

 

Postman

 

게시물 리스트 조회 API

model

GetPostsRes

postIdx : 게시물 idx

userIdx : 유저 idx

nickname : 유저 닉네임

profileImgUrl : 유저 프로필 url

content : 게시물 내용

postLikeCount : 게시물 좋아요 수

commentCount : 게시물 댓글 수 

updateAt : 게시물 업데이트 시간

likeOrNot : 게시물 좋아요 여부

imgs : 게시물 사진 리스트

 

 

GetPostImgRes

postImgIdx : 게시물 이미지 idx

imgUrl : 게시물 이미지 url

 

PostController

getPosts

GET 메소드를 사용

1. 파라미터 값으로 userIdx를 받아와서 postProvider의 retrievePosts의 매개변수로 넘겨줌

2. retrievePosts로 받아온 getPostsRes 리스트를 반환

 

 

PostProvider

retrievePosts

1. checkUserExist를 통해 매개변수로 받아온 userIdx가 존재하는지 확인

2. postDao의 selectPosts에 userIdx값을 넘겨줌

3. selectPosts로 받아온 getPosts 리스트를 반환

 

 

PostDao

selectPosts

getPostsRes에 해당하는 정보를 조회하여 반환하는 쿼리문

 

 

Postman

 

후기

model에 들어갈 정보가 많으면 GetUserInfoRes와 같이 객체로 구현하여 model을 가독성 있게, 그리고 효율적으로 작성할 수 있음을 배웠다.

좀 더 객체를 효과적으로 활용하는 법을 익혀야겠다. 

본격적인 개발에 들어가니 재미있었지만 동시에 dao에서 발생하는 무수한 오류를 고치느라 힘들었다.

system.out.println(exception);으로 하나하나 오류 내용을 다 찍어봤는데, 모두 dao에서 발생하는 오타로 인한 오류들이었다.

개발을 한참 전에 했지만, 개발 당시에 변수 혹은 함수에 대한 주석을 많이 달아놓지 않았던 것이 아쉬웠다.

복사했습니다!