From 8c8cddef7ecfb2cd34eff9c45f0546a55a52a2a3 Mon Sep 17 00:00:00 2001
From: minjae <wjsalswp303@gmail.com>
Date: Thu, 15 Feb 2024 20:23:57 +0900
Subject: [PATCH 01/10] =?UTF-8?q?[fix]=20=EA=B4=80=EC=8B=AC=EA=B8=80=20?=
 =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/generated/umc/IRECIPE_Server/entity/QMember.java   | 2 ++
 src/main/java/umc/IRECIPE_Server/service/MemberService.java | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/main/generated/umc/IRECIPE_Server/entity/QMember.java b/src/main/generated/umc/IRECIPE_Server/entity/QMember.java
index a35afb9..8f4d4a8 100644
--- a/src/main/generated/umc/IRECIPE_Server/entity/QMember.java
+++ b/src/main/generated/umc/IRECIPE_Server/entity/QMember.java
@@ -51,6 +51,8 @@ public class QMember extends EntityPathBase<Member> {
 
     public final StringPath personalId = createString("personalId");
 
+    public final ListPath<Post, QPost> postList = this.<Post, QPost>createList("postList", Post.class, QPost.class, PathInits.DIRECT2);
+
     public final StringPath profileImage = createString("profileImage");
 
     public final ListPath<Qna, QQna> qnaList = this.<Qna, QQna>createList("qnaList", Qna.class, QQna.class, PathInits.DIRECT2);
diff --git a/src/main/java/umc/IRECIPE_Server/service/MemberService.java b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
index ff6cede..abaf920 100644
--- a/src/main/java/umc/IRECIPE_Server/service/MemberService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
@@ -228,7 +228,7 @@ public List<Post> getLikedPostList(String personalId, Integer page) {
 
         List<Post> postList = new ArrayList<>();
         for(MemberLikes memberLikes : postIdPage.toList()){
-            Long id = memberLikes.getId();
+            Long id = memberLikes.getPost().getId();
             Post tmp = postRepository.findByStatusAndId(Status.POST, id);
             postList.add(tmp);
         }

From 9d74058a4667cd11b42549a59d58bc862b377059 Mon Sep 17 00:00:00 2001
From: minjae <wjsalswp303@gmail.com>
Date: Fri, 16 Feb 2024 10:36:02 +0900
Subject: [PATCH 02/10] =?UTF-8?q?[fix]=20=EB=8B=A8=EC=9D=BC=20=EC=A1=B0?=
 =?UTF-8?q?=ED=9A=8C=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/java/umc/IRECIPE_Server/service/PostService.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/main/java/umc/IRECIPE_Server/service/PostService.java b/src/main/java/umc/IRECIPE_Server/service/PostService.java
index a6f4823..aecca25 100644
--- a/src/main/java/umc/IRECIPE_Server/service/PostService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/PostService.java
@@ -108,7 +108,10 @@ public ApiResponse<?> getPost(Long postId, String userId){
 
         Post post = findByPostId(postId);
 
-        boolean likeOrNot = memberLikesRepository.findByMemberAndPost(post.getMember(), post).isPresent();
+        Member member = memberRepository.findByPersonalId(userId)
+                .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));
+
+        boolean likeOrNot = memberLikesRepository.findByMemberAndPost(member, post).isPresent();
 
         return ApiResponse.onSuccess(PostConverter.toGetResponseDTO(post, post.getMember(), likeOrNot));
 

From 511730a713aec280cafc0a56b6888671e2ebd295 Mon Sep 17 00:00:00 2001
From: minjae <wjsalswp303@gmail.com>
Date: Fri, 16 Feb 2024 11:54:20 +0900
Subject: [PATCH 03/10] =?UTF-8?q?[fix]=20=EB=8B=A8=EC=9D=BC=20=EC=A1=B0?=
 =?UTF-8?q?=ED=9A=8C=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/umc/IRECIPE_Server/converter/PostConverter.java  | 3 ++-
 .../umc/IRECIPE_Server/dto/response/PostResponseDTO.java  | 3 +++
 src/main/java/umc/IRECIPE_Server/service/PostService.java | 8 +++++++-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
index 70f37cc..74a44e7 100644
--- a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
+++ b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
@@ -39,7 +39,7 @@ public static PostResponseDTO.getTempDTO toTempResponseDTO(Post post){
 
 
 
-    public static PostResponseDTO.getDTO toGetResponseDTO(Post post, Member member, boolean likeOrNot){
+    public static PostResponseDTO.getDTO toGetResponseDTO(Post post, Member member, boolean likeOrNot, boolean myPost){
         return PostResponseDTO.getDTO.builder()
                 .postId(post.getId())
                 .title(post.getTitle())
@@ -56,6 +56,7 @@ public static PostResponseDTO.getDTO toGetResponseDTO(Post post, Member member,
                 .createdAt(post.getCreatedAt().toLocalDate())
                 .reviewsCount(post.getReviewList().size())
                 .likeOrNot(likeOrNot)
+                .myPost(myPost)
                 .build();
     }
 
diff --git a/src/main/java/umc/IRECIPE_Server/dto/response/PostResponseDTO.java b/src/main/java/umc/IRECIPE_Server/dto/response/PostResponseDTO.java
index 8e24fdd..925c16e 100644
--- a/src/main/java/umc/IRECIPE_Server/dto/response/PostResponseDTO.java
+++ b/src/main/java/umc/IRECIPE_Server/dto/response/PostResponseDTO.java
@@ -108,6 +108,9 @@ public static class getDTO{
         @Schema(description = "해당 사용자가 관심 눌렀는지", defaultValue = "false")
         private boolean likeOrNot;
 
+        @Schema(description = "내가 쓴 글인지 아닌지", defaultValue = "false")
+        private boolean myPost;
+
         @Schema(description = "게시글 생성일")
         private LocalDate createdAt;
     }
diff --git a/src/main/java/umc/IRECIPE_Server/service/PostService.java b/src/main/java/umc/IRECIPE_Server/service/PostService.java
index aecca25..e8a0971 100644
--- a/src/main/java/umc/IRECIPE_Server/service/PostService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/PostService.java
@@ -113,7 +113,13 @@ public ApiResponse<?> getPost(Long postId, String userId){
 
         boolean likeOrNot = memberLikesRepository.findByMemberAndPost(member, post).isPresent();
 
-        return ApiResponse.onSuccess(PostConverter.toGetResponseDTO(post, post.getMember(), likeOrNot));
+        boolean myPost = false;
+
+        if(member == post.getMember()){
+            myPost = true;
+        }
+
+        return ApiResponse.onSuccess(PostConverter.toGetResponseDTO(post, post.getMember(), likeOrNot, myPost));
 
     }
 

From 5f2253447f829bac6eabb1c7881c012940af8396 Mon Sep 17 00:00:00 2001
From: jun23314 <dlwnsfml@naver.com>
Date: Fri, 16 Feb 2024 13:05:31 +0900
Subject: [PATCH 04/10] =?UTF-8?q?=EA=B4=80=EC=8B=AC=EA=B8=80=20=EC=A1=B0?=
 =?UTF-8?q?=ED=9A=8C=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/MemberController.java          |  3 ++-
 .../converter/MemberConverter.java            | 16 --------------
 .../converter/PostConverter.java              | 22 ++++++++++++++++++-
 .../IRECIPE_Server/service/MemberService.java | 18 +++++++++++++--
 4 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/src/main/java/umc/IRECIPE_Server/controller/MemberController.java b/src/main/java/umc/IRECIPE_Server/controller/MemberController.java
index 0785f23..a509143 100644
--- a/src/main/java/umc/IRECIPE_Server/controller/MemberController.java
+++ b/src/main/java/umc/IRECIPE_Server/controller/MemberController.java
@@ -18,6 +18,7 @@
 import umc.IRECIPE_Server.apiPayLoad.exception.handler.PostHandler;
 import umc.IRECIPE_Server.common.S3.S3Service;
 import umc.IRECIPE_Server.converter.MemberConverter;
+import umc.IRECIPE_Server.converter.PostConverter;
 import umc.IRECIPE_Server.dto.MemberRequest;
 import umc.IRECIPE_Server.dto.MemberResponse;
 import umc.IRECIPE_Server.dto.MemberLoginRequestDto;
@@ -134,7 +135,7 @@ public ApiResponse<?> showLikedPosts(
         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
         String userId = authentication.getName();//personal id
 
-        return ApiResponse.onSuccess(MemberConverter.postsLikedListDto(memberService.getLikedPostList(userId, page)));
+        return memberService.getLikedPostList(userId, page);
     }
 
     @Operation(summary = "토큰 재발급 API", description = "토큰 재발급")
diff --git a/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java b/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java
index a85c192..4c5d2c5 100644
--- a/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java
+++ b/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java
@@ -119,20 +119,4 @@ public static List<MemberResponse.getPostsDto> postsListDto(Page<Post> postPage)
                 .collect(Collectors.toList());
     }
 
-    public static List<MemberResponse.getPostsDto> postsLikedListDto(List<Post> postList){
-        return postList.stream()
-                .map(val -> MemberResponse.getPostsDto.builder()
-                        .title(val.getTitle())
-                        .subhead(val.getSubhead())
-                        .level(val.getLevel())
-                        .score(val.getScore())
-                        .content(val.getContent())
-                        .likes(val.getLikes())
-                        .imageUrl(val.getImageUrl())
-                        .category(val.getCategory())
-                        .fileName(val.getFileName())
-                        .build())
-                .collect(Collectors.toList());
-    }
-
 }
diff --git a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
index 70f37cc..2b2fed2 100644
--- a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
+++ b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
@@ -65,7 +65,27 @@ public static PostResponseDTO.updateDTO toUpdateResponseDTO(Post post){
                 .build();
     }
 
-    public static List<PostResponseDTO.getAllPostDTO> toGetAllPostDTO(Page<Post> postPage, Map<Long, Boolean> likeMap){
+    public static List<PostResponseDTO.getDTO> toGetAllPostDTO(Page<Post> postPage, Map<Long, Boolean> likeMap){
+        return postPage.stream()
+                .map(m -> PostResponseDTO.getDTO.builder()
+                        .postId(m.getId())
+                        .title(m.getTitle())
+                        .subhead(m.getSubhead())
+                        .imageUrl(m.getImageUrl())
+                        .likes(m.getLikes())
+                        .score(m.getScore())
+                        .reviewsCount(m.getReviewList().size())
+                        .writerImage(m.getMember().getProfileImage())
+                        .writerNickName(m.getMember().getNickname())
+                        .createdAt(m.getCreatedAt().toLocalDate())
+                        .likeOrNot(likeMap.get(m.getId()))
+                        .category(m.getCategory())
+                        .content(m.getContent())
+                        .build())
+                .collect(Collectors.toList());
+    }
+
+    public static List<PostResponseDTO.getAllPostDTO> toGetAllPostListDTO(List<Post> postPage, Map<Long, Boolean> likeMap){
         return postPage.stream()
                 .map(m -> PostResponseDTO.getAllPostDTO.builder()
                         .postId(m.getId())
diff --git a/src/main/java/umc/IRECIPE_Server/service/MemberService.java b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
index abaf920..5eab521 100644
--- a/src/main/java/umc/IRECIPE_Server/service/MemberService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
@@ -2,6 +2,8 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.Flow.Publisher;
 import lombok.RequiredArgsConstructor;
@@ -14,6 +16,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
+import umc.IRECIPE_Server.apiPayLoad.ApiResponse;
 import umc.IRECIPE_Server.apiPayLoad.code.status.ErrorStatus;
 import umc.IRECIPE_Server.apiPayLoad.exception.handler.AllergyHandler;
 import umc.IRECIPE_Server.apiPayLoad.exception.handler.MemberHandler;
@@ -22,6 +25,7 @@
 import umc.IRECIPE_Server.common.enums.Status;
 import umc.IRECIPE_Server.converter.MemberAllergyConverter;
 import umc.IRECIPE_Server.converter.MemberConverter;
+import umc.IRECIPE_Server.converter.PostConverter;
 import umc.IRECIPE_Server.dto.MemberRequest;
 import umc.IRECIPE_Server.dto.MemberResponse;
 import umc.IRECIPE_Server.dto.MemberLoginRequestDto;
@@ -208,8 +212,9 @@ public Page<Post> getWrittenPostList(String personalId, Integer page) {
         return postPage;
     }
 
+    //회원 관심글 보기
     @Transactional
-    public List<Post> getLikedPostList(String personalId, Integer page) {
+    public ApiResponse<?> getLikedPostList(String personalId, Integer page) {
         Page<MemberLikes> postIdPage;
         Pageable pageable = PageRequest.of(page, 10);
 
@@ -237,9 +242,17 @@ public List<Post> getLikedPostList(String personalId, Integer page) {
             throw new MemberHandler(ErrorStatus.POST_NOT_FOUND);
         }
 
-        return postList;
+        // memberLike 에서 찾으면 관심 눌렀던 게시글, 못 찾으면 관심 안 누른 게시글
+        Map<Long, Boolean> likeMap = new HashMap<>();
+        for (Post post : postList) {
+            Boolean likeOrNot = memberLikesRepository.findByMemberAndPost(mem, post).isPresent();
+            likeMap.put(post.getId(), likeOrNot);
+        }
+
+        return ApiResponse.onSuccess(PostConverter.toGetAllPostListDTO(postList, likeMap));
     }
 
+    //토큰 재발급
     @Transactional
     public Member refresh(Member member){
         if(tokenRepository.existsByMember(member)){ // 이미 refresh token이 있다면
@@ -251,6 +264,7 @@ public Member refresh(Member member){
         return member;
     }
 
+    //회원 탈퇴
     @Transactional
     public void deleteMember(String personalId){
         Optional<Member> member = memberRepository.findByPersonalId(personalId);

From 3f8142882739ebc55d6da94492b6e2a41614e517 Mon Sep 17 00:00:00 2001
From: jun23314 <dlwnsfml@naver.com>
Date: Fri, 16 Feb 2024 13:09:25 +0900
Subject: [PATCH 05/10] =?UTF-8?q?=EC=9E=98=EB=AA=BB=20=EC=88=98=EC=A0=95?=
 =?UTF-8?q?=ED=95=9C=EA=B1=B0=20=EC=9B=90=EC=9C=84=EC=B9=98=ED=95=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/java/umc/IRECIPE_Server/converter/PostConverter.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
index 2b2fed2..65df78d 100644
--- a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
+++ b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
@@ -65,7 +65,7 @@ public static PostResponseDTO.updateDTO toUpdateResponseDTO(Post post){
                 .build();
     }
 
-    public static List<PostResponseDTO.getDTO> toGetAllPostDTO(Page<Post> postPage, Map<Long, Boolean> likeMap){
+    public static List<PostResponseDTO.getDTO> toGetAllPostListDTO(List<Post> postPage, Map<Long, Boolean> likeMap){
         return postPage.stream()
                 .map(m -> PostResponseDTO.getDTO.builder()
                         .postId(m.getId())
@@ -85,7 +85,7 @@ public static List<PostResponseDTO.getDTO> toGetAllPostDTO(Page<Post> postPage,
                 .collect(Collectors.toList());
     }
 
-    public static List<PostResponseDTO.getAllPostDTO> toGetAllPostListDTO(List<Post> postPage, Map<Long, Boolean> likeMap){
+    public static List<PostResponseDTO.getAllPostDTO> toGetAllPostDTO(Page<Post> postPage, Map<Long, Boolean> likeMap){
         return postPage.stream()
                 .map(m -> PostResponseDTO.getAllPostDTO.builder()
                         .postId(m.getId())

From 0e89bc1a8f17cd2cdc25096e55549fe847907b7a Mon Sep 17 00:00:00 2001
From: jun23314 <dlwnsfml@naver.com>
Date: Fri, 16 Feb 2024 13:28:48 +0900
Subject: [PATCH 06/10] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=9E=91?=
 =?UTF-8?q?=EC=84=B1=20=EA=B8=80=20=EB=B3=B4=EA=B8=B0=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/MemberController.java             |  4 ++--
 .../converter/MemberConverter.java               | 16 ----------------
 .../IRECIPE_Server/service/MemberService.java    | 11 +++++++++--
 3 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/src/main/java/umc/IRECIPE_Server/controller/MemberController.java b/src/main/java/umc/IRECIPE_Server/controller/MemberController.java
index a509143..089bf6d 100644
--- a/src/main/java/umc/IRECIPE_Server/controller/MemberController.java
+++ b/src/main/java/umc/IRECIPE_Server/controller/MemberController.java
@@ -114,7 +114,7 @@ public ApiResponse<MemberResponse.JoinResultDto> joinLogin(
 
     @Operation(summary = "작성 글 API",description = "사용자가 작성한 글 보기")
     @GetMapping(value = "/written")
-    public ApiResponse<List<MemberResponse.getPostsDto>> showWrittenPosts(
+    public ApiResponse<?> showWrittenPosts(
             @RequestParam(name = "page") Integer page
     ){
         if(page < 0) throw new PostHandler(ErrorStatus.INVALID_PAGE);
@@ -122,7 +122,7 @@ public ApiResponse<List<MemberResponse.getPostsDto>> showWrittenPosts(
         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
         String userId = authentication.getName();//personal id
 
-        return ApiResponse.onSuccess(MemberConverter.postsListDto(memberService.getWrittenPostList(userId, page)));
+        return memberService.getWrittenPostList(userId, page);
     }
 
     @Operation(summary = "관심 글 API",description = "사용자가 좋아요 누른 글 보기")
diff --git a/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java b/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java
index 4c5d2c5..9055591 100644
--- a/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java
+++ b/src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java
@@ -103,20 +103,4 @@ public static MemberResponse.getPostsDto postsDto(Post post){
                 .build();
     }
 
-    public static List<MemberResponse.getPostsDto> postsListDto(Page<Post> postPage){
-        return postPage.stream()
-                .map(val -> MemberResponse.getPostsDto.builder()
-                        .title(val.getTitle())
-                        .subhead(val.getSubhead())
-                        .level(val.getLevel())
-                        .score(val.getScore())
-                        .content(val.getContent())
-                        .likes(val.getLikes())
-                        .imageUrl(val.getImageUrl())
-                        .category(val.getCategory())
-                        .fileName(val.getFileName())
-                        .build())
-                .collect(Collectors.toList());
-    }
-
 }
diff --git a/src/main/java/umc/IRECIPE_Server/service/MemberService.java b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
index 5eab521..c7c5efb 100644
--- a/src/main/java/umc/IRECIPE_Server/service/MemberService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
@@ -192,7 +192,7 @@ public Member login(MemberLoginRequestDto.JoinLoginDto request){
     }
 
     @Transactional
-    public Page<Post> getWrittenPostList(String personalId, Integer page) {
+    public ApiResponse<?> getWrittenPostList(String personalId, Integer page) {
         Page<Post> postPage;
         Pageable pageable = PageRequest.of(page, 10);
 
@@ -209,7 +209,14 @@ public Page<Post> getWrittenPostList(String personalId, Integer page) {
             else if(page == 0) throw new PostHandler(ErrorStatus.MEMBER_DONT_HAVE_POSTS);
         }
 
-        return postPage;
+        // memberLike 에서 찾으면 관심 눌렀던 게시글, 못 찾으면 관심 안 누른 게시글
+        Map<Long, Boolean> likeMap = new HashMap<>();
+        for (Post post : postPage) {
+            Boolean likeOrNot = memberLikesRepository.findByMemberAndPost(mem, post).isPresent();
+            likeMap.put(post.getId(), likeOrNot);
+        }
+
+        return ApiResponse.onSuccess(PostConverter.toGetAllPostDTO(postPage, likeMap));
     }
 
     //회원 관심글 보기

From a42865e8a2cdd61ffc38f7f239f14fcd98395898 Mon Sep 17 00:00:00 2001
From: jun23314 <dlwnsfml@naver.com>
Date: Fri, 16 Feb 2024 15:00:14 +0900
Subject: [PATCH 07/10] =?UTF-8?q?pull=20develop=20=ED=9B=84=20=EC=88=98?=
 =?UTF-8?q?=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/java/umc/IRECIPE_Server/converter/PostConverter.java | 3 ++-
 src/main/java/umc/IRECIPE_Server/service/MemberService.java   | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
index 31112c0..89d91b1 100644
--- a/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
+++ b/src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
@@ -66,7 +66,7 @@ public static PostResponseDTO.updateDTO toUpdateResponseDTO(Post post){
                 .build();
     }
 
-    public static List<PostResponseDTO.getDTO> toGetAllPostListDTO(List<Post> postPage, Map<Long, Boolean> likeMap){
+    public static List<PostResponseDTO.getDTO> toGetAllPostListDTO(Member member, List<Post> postPage, Map<Long, Boolean> likeMap){
         return postPage.stream()
                 .map(m -> PostResponseDTO.getDTO.builder()
                         .postId(m.getId())
@@ -82,6 +82,7 @@ public static List<PostResponseDTO.getDTO> toGetAllPostListDTO(List<Post> postPa
                         .likeOrNot(likeMap.get(m.getId()))
                         .category(m.getCategory())
                         .content(m.getContent())
+                        .myPost(m.getMember().equals(member))
                         .build())
                 .collect(Collectors.toList());
     }
diff --git a/src/main/java/umc/IRECIPE_Server/service/MemberService.java b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
index c7c5efb..233bf51 100644
--- a/src/main/java/umc/IRECIPE_Server/service/MemberService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/MemberService.java
@@ -256,7 +256,7 @@ public ApiResponse<?> getLikedPostList(String personalId, Integer page) {
             likeMap.put(post.getId(), likeOrNot);
         }
 
-        return ApiResponse.onSuccess(PostConverter.toGetAllPostListDTO(postList, likeMap));
+        return ApiResponse.onSuccess(PostConverter.toGetAllPostListDTO(mem, postList, likeMap));
     }
 
     //토큰 재발급

From 60d36fce7a671b2d3a13813628df5254a5e264e4 Mon Sep 17 00:00:00 2001
From: alsrudursla <nuy0307@naver.com>
Date: Fri, 16 Feb 2024 19:28:22 +0900
Subject: [PATCH 08/10] =?UTF-8?q?chore:=20score=20=EB=8D=B0=EC=9D=B4?=
 =?UTF-8?q?=ED=84=B0=20=ED=83=80=EC=9E=85=20=EB=B3=80=EA=B2=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/generated/umc/IRECIPE_Server/entity/QReview.java   | 2 +-
 .../umc/IRECIPE_Server/dto/request/ReviewRequestDTO.java    | 2 +-
 .../umc/IRECIPE_Server/dto/response/ReviewResponseDTO.java  | 6 +++---
 src/main/java/umc/IRECIPE_Server/entity/Review.java         | 4 ++--
 .../java/umc/IRECIPE_Server/service/ReviewServiceImpl.java  | 6 +++---
 5 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/main/generated/umc/IRECIPE_Server/entity/QReview.java b/src/main/generated/umc/IRECIPE_Server/entity/QReview.java
index 2045d45..1e0a8e3 100644
--- a/src/main/generated/umc/IRECIPE_Server/entity/QReview.java
+++ b/src/main/generated/umc/IRECIPE_Server/entity/QReview.java
@@ -39,7 +39,7 @@ public class QReview extends EntityPathBase<Review> {
 
     public final QPost post;
 
-    public final NumberPath<Float> score = createNumber("score", Float.class);
+    public final NumberPath<Integer> score = createNumber("score", Integer.class);
 
     //inherited
     public final DateTimePath<java.time.LocalDateTime> updatedAt = _super.updatedAt;
diff --git a/src/main/java/umc/IRECIPE_Server/dto/request/ReviewRequestDTO.java b/src/main/java/umc/IRECIPE_Server/dto/request/ReviewRequestDTO.java
index d47eb91..ded33ea 100644
--- a/src/main/java/umc/IRECIPE_Server/dto/request/ReviewRequestDTO.java
+++ b/src/main/java/umc/IRECIPE_Server/dto/request/ReviewRequestDTO.java
@@ -16,6 +16,6 @@ public static class addReviewDTO {
         private String context;
 
         @Schema(description = "리뷰 별점", defaultValue = "4.3")
-        private Float score;
+        private int score;
     }
 }
diff --git a/src/main/java/umc/IRECIPE_Server/dto/response/ReviewResponseDTO.java b/src/main/java/umc/IRECIPE_Server/dto/response/ReviewResponseDTO.java
index 34ae72b..a9edb8f 100644
--- a/src/main/java/umc/IRECIPE_Server/dto/response/ReviewResponseDTO.java
+++ b/src/main/java/umc/IRECIPE_Server/dto/response/ReviewResponseDTO.java
@@ -18,8 +18,8 @@ public class ReviewResponseDTO {
     @AllArgsConstructor
     public static class addReviewResponseDTO {
 
-        @Schema(description = "리뷰 별점", defaultValue = "4.3")
-        private Float score;
+        @Schema(description = "리뷰 별점", defaultValue = "4")
+        private int score;
 
         @Schema(description = "리뷰 내용", defaultValue = "노력대비 최고의 맛!...")
         private String context;
@@ -52,7 +52,7 @@ public static class getReviewResponseDTO {
         private String context;
 
         @Schema(description = "리뷰 별점")
-        private Float score;
+        private int score;
 
         @Schema(description = "리뷰 사진")
         private String imageUrl;
diff --git a/src/main/java/umc/IRECIPE_Server/entity/Review.java b/src/main/java/umc/IRECIPE_Server/entity/Review.java
index 077f16e..b11a8be 100644
--- a/src/main/java/umc/IRECIPE_Server/entity/Review.java
+++ b/src/main/java/umc/IRECIPE_Server/entity/Review.java
@@ -42,7 +42,7 @@ public class Review extends BaseEntity {
     private Post post;
 
     // 별점
-    private Float score;
+    private int score;
 
     // 리뷰 내용
     private String context;
@@ -53,7 +53,7 @@ public class Review extends BaseEntity {
     // 사진 이름
     private String fileName;
 
-    public void updateReview(Float score, String context, String imageUrl, String fileName) {
+    public void updateReview(int score, String context, String imageUrl, String fileName) {
         this.score = score;
         this.context = context;
         this.imageUrl = imageUrl;
diff --git a/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java b/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java
index 7bdfccc..9b67648 100644
--- a/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java
+++ b/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java
@@ -56,7 +56,7 @@ public Review addReview(String memberId, Long postId, ReviewRequestDTO.@Valid ad
         // 게시글 평균 별점 수정 : (원래 평균 별점 * 리뷰 개수 + 새로 들어온 별점) / (원래 리뷰 개수 + 1)
         Post post = postRepository.findById(postId).orElseThrow(() -> new GeneralException(ErrorStatus.POST_NOT_FOUND));
         int reviewCount = reviewRepository.countByPost_Id(post.getId());
-        Float newScore = (post.getScore() * reviewCount + request.getScore()) / (reviewCount + 1);
+        Float newScore = (post.getScore() * reviewCount + (float)request.getScore()) / (reviewCount + 1);
         post.updateScore(newScore);
 
         // 리뷰 등록
@@ -101,7 +101,7 @@ public void updatePostReview(Long reviewId, ReviewRequestDTO.addReviewDTO reques
         if (request.getScore() != review.getScore()) {
             Post post = postRepository.findById(review.getPost().getId()).orElseThrow(() -> new GeneralException(ErrorStatus.POST_NOT_FOUND));
             int reviewCount = reviewRepository.countByPost_Id(post.getId());
-            Float newScore = (post.getScore() * reviewCount - review.getScore() + request.getScore()) / reviewCount;
+            Float newScore = (post.getScore() * reviewCount - (float)review.getScore() + (float)request.getScore()) / reviewCount;
             post.updateScore(newScore);
         }
 
@@ -121,7 +121,7 @@ public void deletePostReview(Long reviewId) {
         // 게시글 평균 별점 업데이트
         Post post = postRepository.findById(review.getPost().getId()).orElseThrow(() -> new GeneralException(ErrorStatus.POST_NOT_FOUND));
         int reviewCount = reviewRepository.countByPost_Id(post.getId());
-        Float newScore = (post.getScore() * reviewCount - review.getScore()) / (reviewCount - 1);
+        Float newScore = (post.getScore() * reviewCount - (float)review.getScore()) / (reviewCount - 1);
         post.updateScore(newScore);
 
         // 게시글 리뷰 삭제

From e38886f544bf081c76bb0d58243e35c1e4531067 Mon Sep 17 00:00:00 2001
From: alsrudursla <nuy0307@naver.com>
Date: Fri, 16 Feb 2024 20:17:14 +0900
Subject: [PATCH 09/10] =?UTF-8?q?add:=20review=20=EC=88=98=EC=A0=95,?=
 =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=9E=91=EC=84=B1=EC=9E=90=EB=A7=8C=20?=
 =?UTF-8?q?=EA=B0=80=EB=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/ReviewController.java          | 11 ++++++--
 .../dto/request/QnaRequestDTO.java            |  2 +-
 .../IRECIPE_Server/service/ReviewService.java |  4 +--
 .../service/ReviewServiceImpl.java            | 26 ++++++++++++++++---
 4 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/main/java/umc/IRECIPE_Server/controller/ReviewController.java b/src/main/java/umc/IRECIPE_Server/controller/ReviewController.java
index b508dd9..4a48088 100644
--- a/src/main/java/umc/IRECIPE_Server/controller/ReviewController.java
+++ b/src/main/java/umc/IRECIPE_Server/controller/ReviewController.java
@@ -64,8 +64,11 @@ public ApiResponse<List<ReviewResponseDTO.getReviewResponseDTO>> getPostReview(@
     public ApiResponse<ReviewResponseDTO.updateReviewResponseDTO> updatePostReview(@PathVariable("reviewId") Long reviewId,
                                           @RequestPart(name = "ReviewRequestDTO", required = false) ReviewRequestDTO.addReviewDTO request,
                                           @RequestPart(value = "file", required = false) MultipartFile file) throws IOException {
+        // memberId 값 세팅
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        String memberId = authentication.getName();
 
-        reviewService.updatePostReview(reviewId, request, file);
+        reviewService.updatePostReview(memberId, reviewId, request, file);
         return ApiResponse.onSuccess(ReviewConverter.updateReviewResult(reviewId));
     }
 
@@ -76,7 +79,11 @@ public ApiResponse<ReviewResponseDTO.updateReviewResponseDTO> updatePostReview(@
     )
     @DeleteMapping("/review/{reviewId}")
     public ApiResponse<ReviewResponseDTO.deleteReviewResponseDTO> deletePostReview(@PathVariable("reviewId") Long reviewId) {
-        reviewService.deletePostReview(reviewId);
+        // memberId 값 세팅
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        String memberId = authentication.getName();
+
+        reviewService.deletePostReview(memberId, reviewId);
         return ApiResponse.onSuccess(ReviewConverter.deleteReviewResult());
     }
 }
diff --git a/src/main/java/umc/IRECIPE_Server/dto/request/QnaRequestDTO.java b/src/main/java/umc/IRECIPE_Server/dto/request/QnaRequestDTO.java
index 50f9183..e4f1b66 100644
--- a/src/main/java/umc/IRECIPE_Server/dto/request/QnaRequestDTO.java
+++ b/src/main/java/umc/IRECIPE_Server/dto/request/QnaRequestDTO.java
@@ -16,7 +16,7 @@ public class QnaRequestDTO {
     public static class addQna {
         @Schema(description = "Qna 내용", defaultValue = "설탕 대신 알룰로스를...")
         private String content;
-        @Schema(description = "부모 댓글 Id", defaultValue = "1")
+        @Schema(description = "부모 댓글 Id", defaultValue = "0")
         private Long parentId;
     }
 
diff --git a/src/main/java/umc/IRECIPE_Server/service/ReviewService.java b/src/main/java/umc/IRECIPE_Server/service/ReviewService.java
index 20248d1..4c7c3c0 100644
--- a/src/main/java/umc/IRECIPE_Server/service/ReviewService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/ReviewService.java
@@ -17,8 +17,8 @@ public interface ReviewService {
     Page<Review> getPostReview(Long postId, int page);
 
     // 리뷰 수정
-    void updatePostReview(Long reviewId, ReviewRequestDTO.addReviewDTO request, MultipartFile file) throws IOException;
+    void updatePostReview(String memberId, Long reviewId, ReviewRequestDTO.addReviewDTO request, MultipartFile file) throws IOException;
 
     // 리뷰 삭제
-    void deletePostReview(Long reviewId);
+    void deletePostReview(String memberId, Long reviewId);
 }
diff --git a/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java b/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java
index 7bdfccc..7139d32 100644
--- a/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java
+++ b/src/main/java/umc/IRECIPE_Server/service/ReviewServiceImpl.java
@@ -78,11 +78,20 @@ public Page<Review> getPostReview(Long postId, int page) {
     }
 
     // 게시글 리뷰 수정
-    public void updatePostReview(Long reviewId, ReviewRequestDTO.addReviewDTO request, MultipartFile file) throws IOException {
+    public void updatePostReview(String memberId, Long reviewId, ReviewRequestDTO.addReviewDTO request, MultipartFile file) throws IOException {
 
         // 리뷰 조회
         Review review = reviewRepository.findById(reviewId).orElseThrow(() -> new GeneralException(ErrorStatus.POST_REVIEW_NOT_FOUND));
 
+        // 작성자만 수정 가능
+        Optional<Member> member = memberRepository.findByPersonalId(memberId);
+        if (member.isEmpty()) {
+            throw new GeneralException(ErrorStatus.MEMBER_NOT_FOUND);
+        }
+        if (member.get().getId() != review.getMember().getId()) {
+            throw new GeneralException(ErrorStatus._FORBIDDEN);
+        }
+
         // 기존 사진 S3 삭제
         String oldUrl = review.getImageUrl();
         if (oldUrl != null) {
@@ -110,10 +119,21 @@ public void updatePostReview(Long reviewId, ReviewRequestDTO.addReviewDTO reques
     }
 
     // 게시글 리뷰 삭제
-    public void deletePostReview(Long reviewId) {
+    public void deletePostReview(String memberId, Long reviewId) {
 
-        // S3 버킷에 저장된 게시글 리뷰 사진 삭제
+        // 리뷰 조회
         Review review = reviewRepository.findById(reviewId).orElseThrow(() -> new GeneralException(ErrorStatus.POST_REVIEW_NOT_FOUND));
+
+        // 작성자만 삭제 가능
+        Optional<Member> member = memberRepository.findByPersonalId(memberId);
+        if (member.isEmpty()) {
+            throw new GeneralException(ErrorStatus.MEMBER_NOT_FOUND);
+        }
+        if (member.get().getId() != review.getMember().getId()) {
+            throw new GeneralException(ErrorStatus._FORBIDDEN);
+        }
+
+        // S3 버킷에 저장된 게시글 리뷰 사진 삭제
         if (review.getImageUrl() != null) {
             s3Service.deleteImage(review.getFileName(), "images");
         }

From 9a82fedbc6e940116d6ed490a0c2f8debcf7309a Mon Sep 17 00:00:00 2001
From: alsrudursla <nuy0307@naver.com>
Date: Fri, 16 Feb 2024 20:41:11 +0900
Subject: [PATCH 10/10] =?UTF-8?q?add:=20qna=20=EC=88=98=EC=A0=95,=EC=82=AD?=
 =?UTF-8?q?=EC=A0=9C=20=EC=9E=91=EC=84=B1=EC=9E=90=EB=A7=8C=20=EA=B0=80?=
 =?UTF-8?q?=EB=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/QnaController.java             | 12 ++++++++--
 .../IRECIPE_Server/service/QnaService.java    |  4 ++--
 .../service/QnaServiceImpl.java               | 23 +++++++++++++++++--
 3 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/src/main/java/umc/IRECIPE_Server/controller/QnaController.java b/src/main/java/umc/IRECIPE_Server/controller/QnaController.java
index fe0aa67..8769cc9 100644
--- a/src/main/java/umc/IRECIPE_Server/controller/QnaController.java
+++ b/src/main/java/umc/IRECIPE_Server/controller/QnaController.java
@@ -4,6 +4,7 @@
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
+import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -62,8 +63,11 @@ public ApiResponse<List<QnaResponseDTO.getQnaDTO>> getQna(@PathVariable("postId"
     public ApiResponse<QnaResponseDTO.updateQnaDTO> updateQna(@PathVariable("qnaId") Long qnaId,
                                                               @RequestPart(name = "QnaRequestDTO", required = false) QnaRequestDTO.updateQna request,
                                                               @RequestPart(value = "file", required = false) MultipartFile file) throws IOException {
+        // memberId 값 세팅
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        String memberId = authentication.getName();
 
-        qnaService.updateQna(qnaId, request, file);
+        qnaService.updateQna(memberId, qnaId, request, file);
         return ApiResponse.onSuccess(QnaConverter.updateQnaResult(qnaId));
     }
 
@@ -74,7 +78,11 @@ public ApiResponse<QnaResponseDTO.updateQnaDTO> updateQna(@PathVariable("qnaId")
     )
     @DeleteMapping("/qna/{qnaId}")
     public ApiResponse<QnaResponseDTO.deleteQnaDTO> deleteQna(@PathVariable("qnaId") Long qnaId) {
-        qnaService.deleteQna(qnaId);
+        // memberId 값 세팅
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        String memberId = authentication.getName();
+
+        qnaService.deleteQna(memberId, qnaId);
         return ApiResponse.onSuccess(QnaConverter.deleteQnaResult());
     }
 }
\ No newline at end of file
diff --git a/src/main/java/umc/IRECIPE_Server/service/QnaService.java b/src/main/java/umc/IRECIPE_Server/service/QnaService.java
index 7e0080a..2efad8f 100644
--- a/src/main/java/umc/IRECIPE_Server/service/QnaService.java
+++ b/src/main/java/umc/IRECIPE_Server/service/QnaService.java
@@ -17,8 +17,8 @@ public interface QnaService {
     public List<QnaResponseDTO.getQnaDTO> getQna(Long postId);
 
     // Qna 수정
-    public void updateQna(Long qnaId, QnaRequestDTO.updateQna request, MultipartFile file) throws IOException;
+    public void updateQna(String memberId, Long qnaId, QnaRequestDTO.updateQna request, MultipartFile file) throws IOException;
 
     // Qna 삭제
-    public void deleteQna(Long qnaId);
+    public void deleteQna(String memberId, Long qnaId);
 }
diff --git a/src/main/java/umc/IRECIPE_Server/service/QnaServiceImpl.java b/src/main/java/umc/IRECIPE_Server/service/QnaServiceImpl.java
index d4800a6..9dc452d 100644
--- a/src/main/java/umc/IRECIPE_Server/service/QnaServiceImpl.java
+++ b/src/main/java/umc/IRECIPE_Server/service/QnaServiceImpl.java
@@ -95,11 +95,20 @@ public List<QnaResponseDTO.getQnaDTO> getQna(Long postId) {
 
     // Qna 수정
     @Override
-    public void updateQna(Long qnaId, QnaRequestDTO.updateQna request, MultipartFile file) throws IOException {
+    public void updateQna(String memberId, Long qnaId, QnaRequestDTO.updateQna request, MultipartFile file) throws IOException {
 
         // 해당 Qna 조회
         Qna qna = qnaRepository.findById(qnaId).orElseThrow(() -> new GeneralException(ErrorStatus.POST_QNA_NOT_FOUND));
 
+        // 작성자만 수정 가능
+        Optional<Member> member = memberRepository.findByPersonalId(memberId);
+        if (member.isEmpty()) {
+            throw new GeneralException(ErrorStatus.MEMBER_NOT_FOUND);
+        }
+        if (member.get().getId() != qna.getMember().getId()) {
+            throw new GeneralException(ErrorStatus._FORBIDDEN);
+        }
+
         // 기존에 저장된 사진 존재 시 S3 에서 삭제
         String oldUrl = qna.getImageUrl();
         if (oldUrl != null) {
@@ -119,7 +128,17 @@ public void updateQna(Long qnaId, QnaRequestDTO.updateQna request, MultipartFile
 
     // Qna 삭제
     @Override
-    public void deleteQna(Long qnaId) {
+    public void deleteQna(String memberId, Long qnaId) {
+
+        // 작성자만 삭제 가능
+        Qna qnaWriter = qnaRepository.findById(qnaId).orElseThrow(() -> new GeneralException(ErrorStatus.POST_QNA_NOT_FOUND));
+        Optional<Member> member = memberRepository.findByPersonalId(memberId);
+        if (member.isEmpty()) {
+            throw new GeneralException(ErrorStatus.MEMBER_NOT_FOUND);
+        }
+        if (member.get().getId() != qnaWriter.getMember().getId()) {
+            throw new GeneralException(ErrorStatus._FORBIDDEN);
+        }
 
         // 부모 댓글과 함께 조회
         Qna qna = qnaCustomRepository.findQnaByIdWithParent(qnaId).orElseThrow(() -> new GeneralException(ErrorStatus.POST_QNA_NOT_FOUND));