1. 실습 내용
1.1. 유저 피드 조회 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

1.2. 게시물 리스트 조회 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


2. 후기
model에 들어갈 정보가 많으면 GetUserInfoRes와 같이 객체로 구현하여 model을 가독성 있게, 그리고 효율적으로 작성할 수 있음을 배웠다.
좀 더 객체를 효과적으로 활용하는 법을 익혀야겠다.
본격적인 개발에 들어가니 재미있었지만 동시에 dao에서 발생하는 무수한 오류를 고치느라 힘들었다.
system.out.println(exception);으로 하나하나 오류 내용을 다 찍어봤는데, 모두 dao에서 발생하는 오타로 인한 오류들이었다.
개발을 한참 전에 했지만, 개발 당시에 변수 혹은 함수에 대한 주석을 많이 달아놓지 않았던 것이 아쉬웠다.
'동아리 > UMC 2기' 카테고리의 다른 글
[UMC 7주차] 프레임워크 사용하기 (0) | 2022.09.01 |
---|---|
[UMC 6주차] Restful API와 프레임워크 (0) | 2022.08.27 |
[UMC 5주차] 데이터베이스 실전 (0) | 2022.08.27 |
[UMC 4주차] 데이터베이스 이론 및 설계 (0) | 2022.06.30 |
[UMC 3주차] 리눅스 환경 구축 (0) | 2022.06.29 |