수진개발서
[SNS Project] 리펙토링 - 좋아요 및 취소 메서드분리
프로젝트/SNS만들기 2023. 1. 9. 16:16

목표 - 자신이 단 댓글, 좋아요는 알람이 가지 않도록 하기 - 좋아요 서비스 로직 메서드 분리 코드 LikeService(이전 코드) public String controlLike(Long postId, String userName) { //유저와 게시물의 존재 유무 확인 ValidateUserPostDto validateUserPost = validateService.validateUserPost(userName, postId); //like db에 user과 post가 같은게 존재하는지 확인 Optional like = likeRepository.findByUserAndPost(validateUserPost.getUser(), validateUserPost.getPost()); //좋아요를 처음 누..

article thumbnail
[SNS Project] Post 삭제 시 Like, Comment 삭제하기 (영속성 전이, Soft Delete)
프로젝트/SNS만들기 2023. 1. 7. 15:36

✅목표 Post삭제 시 연관 되어 있는 Comment, Like 삭제 포스팅을 읽기 전에 아직 영속성 전이와 Soft Delete를 알지 못한다면 아래의 포스팅을 먼저 읽기를 권장한다. https://alcoholble.tistory.com/11 https://alcoholble.tistory.com/7 [JPA] Soft Delete 적용하기 Soft Delete가 왜 필요한가? SNS 프로젝트를 진행하면서 한가지 상황을 가정해보았다. 누군가가 법적으로 침해되는 게시물이나 댓글을 작성하여 신고를 하려고한다. 하지만 그 회원이 탈퇴를 하면 alcoholble.tistory.com [JPA] 영속성 전이, 고아객체(Cascade) sns프로젝트를 진행하면서 해당 Post가 지워지기 되면 함께 관계되어있던 ..

[SNS Project] 마이피드 테스트
프로젝트/SNS만들기 2023. 1. 6. 02:08

sns만들기 프로젝트 3일차 마이피드 controller 테스트 코드를 작성하였다. 요구사항은 다음과 같다. 요구사항 - 마이피드 조회 성공 - 마이피드 조회 실패(1) - 로그인 하지 않은 경우 코드 PostControllerTest 이전의 좋아요 테스트와 다른 사항은 없으며 mock 라이브러리를 사용하여 테스트를 진행하였다. @Test @DisplayName("마이피드 조회 성공") @WithMockUser //인증된 상태 void myPeed_success() throws Exception { String url = "/api/v1/posts/my"; //데이터 만들기 PostGetResponse postGetResponse = PostGetResponse.builder() .id(1L) .titl..

[SNS Project] 마이피드 기능 구현
프로젝트/SNS만들기 2023. 1. 6. 02:05

sns만들기 프로젝트 3일차 마이피드 기능을 구현하였다. 요구사항은 다음과 같다. 요구사항 - 마이피드 - 내가 작성한 글만 보이는 기능 - 제목, 글쓴이, 내용, 작성날짜 포함 - 목록 기능은 페이징 기능이 포함된다. (Pageable 사용) - 한 페이지당 20개, 총 페이지 개수 포함, 작성날짜 기준으로 sort - 마이피드 조회 GET /posts/myJson방식으로 리턴 - response 형태: { "resultCode": "SUCCESS", "result":{ "content":[ { "id": 4, "title": "test", "body": "body", "userName": "test", "createdAt": "2022-12-16T16:50:37.515952" } ], "pageabl..