Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.web.SearchWeb.board.domain.Board;
import com.web.SearchWeb.board.dto.BoardDto;
import com.web.SearchWeb.board.service.BoardService;
import com.web.SearchWeb.board.service.LikeBookmarkService;
import com.web.SearchWeb.likes.service.LikesService;
import com.web.SearchWeb.bookmark.dto.BoardBookmarkCheckDto;
import com.web.SearchWeb.bookmark.dto.BookmarkDto;
import com.web.SearchWeb.bookmark.service.BookmarkService;
Expand All @@ -22,7 +22,6 @@
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
Expand All @@ -44,14 +43,14 @@ public class BoardController {

private final BoardService boardservice;
private final MemberService memberservice;
private final LikeBookmarkService likebookmarkservice;
private final LikesService likesService;
private final BookmarkService bookmarkService;

@Autowired
public BoardController(BoardService boardservice, MemberService memberservice, LikeBookmarkService likebookmarkservice, BookmarkService bookmarkService) {
public BoardController(BoardService boardservice, MemberService memberservice, LikesService likesService, BookmarkService bookmarkService) {
this.boardservice = boardservice;
this.memberservice = memberservice;
this.likebookmarkservice = likebookmarkservice;
this.likesService = likesService;
this.bookmarkService = bookmarkService;
}
Comment on lines 44 to 55
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

필드 네이밍 컨벤션 불일치

새로운 필드 likesService는 camelCase를 올바르게 사용하고 있지만, 기존 필드들(boardservice, memberservice)과 네이밍 컨벤션이 일치하지 않습니다. Java 표준 컨벤션은 camelCase(boardService, memberService)를 권장합니다.

현재 리팩토링 범위 외이지만, 향후 코드 일관성을 위해 기존 필드명도 camelCase로 통일하는 것을 고려해 주세요.

🤖 Prompt for AI Agents
In `@src/main/java/com/web/SearchWeb/board/controller/BoardController.java` around
lines 44 - 55, Rename the inconsistent field names in BoardController: change
boardservice to boardService and memberservice to memberService, and update all
usages including the constructor parameters and assignments in the
BoardController(BoardService boardservice, MemberService memberservice,
LikesService likesService, BookmarkService bookmarkService) constructor so they
assign to this.boardService, this.memberService, this.likesService,
this.bookmarkService respectively; ensure any other references to boardservice
or memberservice in this class are updated to the new camelCase names.


Expand Down Expand Up @@ -119,7 +118,7 @@ else if(currentUser instanceof OAuth2User) {
return "redirect:/error";
}

boolean isLiked = likebookmarkservice.isLiked(boardId, memberId);
boolean isLiked = likesService.isLiked(boardId, memberId);
int isBookmarked = bookmarkService.isBookmarked(boardId, memberId);
model.addAttribute("isLiked", isLiked);
model.addAttribute("isBookmarked", isBookmarked);
Expand Down Expand Up @@ -182,7 +181,7 @@ else if(currentUser instanceof OAuth2User) {
return response;
}

boolean isLiked = likebookmarkservice.toggleLike(boardId, memberId);
boolean isLiked = likesService.toggleLike(boardId, memberId);
response.put("isLiked", isLiked);
return response;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.web.SearchWeb.board.domain.Board;
import com.web.SearchWeb.board.dto.BoardDto;
import com.web.SearchWeb.comment.service.CommentService;
import com.web.SearchWeb.likes.service.LikesService;
import com.web.SearchWeb.member.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
Expand All @@ -18,14 +19,14 @@ public class BoardService {

private final BoardDao boardDao;
private final MemberService memberService;
private final LikeBookmarkService likeBookmarkService;
private final LikesService likesService;
private final CommentService commentService;

@Autowired
public BoardService(BoardDao boardDao, MemberService memberService, LikeBookmarkService likeBookmarkService, CommentService commentService) {
public BoardService(BoardDao boardDao, MemberService memberService, LikesService likesService, CommentService commentService) {
this.boardDao = boardDao;
this.memberService = memberService;
this.likeBookmarkService = likeBookmarkService;
this.likesService = likesService;
this.commentService = commentService;
}
Comment on lines +22 to 31
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, let's get the full content of BoardService.java to understand all its methods
wc -l src/main/java/com/web/SearchWeb/board/service/BoardService.java

Repository: Searchweb-Dev/Searchweb-Back

Length of output: 139


🏁 Script executed:

# Search for all usages of likesService in BoardService
rg -n 'likesService' src/main/java/com/web/SearchWeb/board/service/BoardService.java

Repository: Searchweb-Dev/Searchweb-Back

Length of output: 299


🏁 Script executed:

# Read the full BoardService.java file
cat -n src/main/java/com/web/SearchWeb/board/service/BoardService.java

Repository: Searchweb-Dev/Searchweb-Back

Length of output: 5090


likesService 의존성이 사용되지 않으므로 제거하세요.

BoardService 클래스의 모든 메서드에서 likesService가 사용되지 않습니다. 불필요한 의존성 주입이므로 필드와 생성자 파라미터에서 제거해 주세요. 향후 사용 계획이 있다면 주석으로 명시하거나, 실제로 사용하는 로직을 추가해 주세요.

🤖 Prompt for AI Agents
In `@src/main/java/com/web/SearchWeb/board/service/BoardService.java` around lines
22 - 31, BoardService에 선언된 필드 likesService와 생성자 파라미터 LikesService likesService가
클래스 내에서 사용되지 않으므로 해당 필드와 생성자 인자를 제거하세요: BoardService 클래스에서 private final
LikesService likesService 선언을 삭제하고 public BoardService(..., LikesService
likesService, ...) 생성자 시그니처에서 LikesService 파라미터를 제거한 뒤 생성자 내부의 this.likesService
= likesService 할당도 제거합니다; 관련되지 않은 import도 정리하고 향후 사용 의도가 있으면 주석으로 남기거나 실제 로직에
통합하세요.


Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.web.SearchWeb.board.dao;
package com.web.SearchWeb.likes.dao;


public interface LikeBookmarkDao {
public interface LikesDao {
// 게시글 좋아요 상태 확인
Boolean isLikedByMember( int boardId, int memberId);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.web.SearchWeb.board.dao;
package com.web.SearchWeb.likes.dao;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

@Repository
public class MybatisLikeBookmarkDao implements LikeBookmarkDao{
public class MybatisLikesDao implements LikesDao {

private final LikeBookmarkDao mapper;
private final LikesDao mapper;

@Autowired
public MybatisLikeBookmarkDao(SqlSession sqlSession) {
public MybatisLikesDao(SqlSession sqlSession) {
//세션을 통해 mapper 컨테이너에서 mapper 객체를 꺼내 씀
mapper = sqlSession.getMapper(LikeBookmarkDao.class);
mapper = sqlSession.getMapper(LikesDao.class);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package com.web.SearchWeb.board.service;
package com.web.SearchWeb.likes.service;

import com.web.SearchWeb.board.dao.BoardDao;
import com.web.SearchWeb.board.dao.LikeBookmarkDao;
import com.web.SearchWeb.likes.dao.LikesDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class LikeBookmarkService {
public class LikesService {

private final LikeBookmarkDao likeBookmarkDao;
private final LikesDao likesDao;
private final BoardDao boardDao;

@Autowired
public LikeBookmarkService(LikeBookmarkDao likeBookmarkDao, BoardDao boardDao) {
this.likeBookmarkDao = likeBookmarkDao;
public LikesService(LikesDao likesDao, BoardDao boardDao) {
this.likesDao = likesDao;
this.boardDao = boardDao;
}

Expand All @@ -23,7 +23,7 @@ public LikeBookmarkService(LikeBookmarkDao likeBookmarkDao, BoardDao boardDao) {
* 게시글 좋아요 상태 확인
*/
public boolean isLiked(int boardId, int memberId) {
Boolean isLiked = likeBookmarkDao.isLikedByMember(boardId, memberId);
Boolean isLiked = likesDao.isLikedByMember(boardId, memberId);
return Boolean.TRUE.equals(isLiked);
}

Expand All @@ -34,16 +34,16 @@ public boolean isLiked(int boardId, int memberId) {
@Transactional
public boolean toggleLike(int boardId, int memberId) {
//게시글 좋아요 상태 확인
Boolean isLiked = likeBookmarkDao.isLikedByMember(boardId, memberId);
Boolean isLiked = likesDao.isLikedByMember(boardId, memberId);

if (isLiked == null || Boolean.FALSE.equals(isLiked)) {
// 좋아요가 안 되어 있다면, 좋아요 추가
likeBookmarkDao.likeBoard(boardId, memberId);
likesDao.likeBoard(boardId, memberId);
boardDao.incrementLikeCount(boardId); // likes_count + 1
return true;
} else {
// 좋아요가 이미 되어 있다면, 좋아요 취소
likeBookmarkDao.unlikeBoard(boardId, memberId);
likesDao.unlikeBoard(boardId, memberId);
boardDao.decrementLikeCount(boardId); // likes_count - 1
return false;
}
Expand All @@ -54,7 +54,7 @@ public boolean toggleLike(int boardId, int memberId) {
* 게시글 좋아요 수 조회
*/
public int getLikeCount(int boardId) {
return likeBookmarkDao.countLikes(boardId);
return likesDao.countLikes(boardId);
}

}
23 changes: 2 additions & 21 deletions src/main/resources/db/init.sql
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ CREATE TABLE `board` (
DROP TABLE IF EXISTS `likes`;

CREATE TABLE `likes` (
`likes_Id` int NOT NULL AUTO_INCREMENT,
`likesId` int NOT NULL AUTO_INCREMENT,
`board_boardId` int NOT NULL,
`member_memberId` int NOT NULL,
`is_Liked` tinyint(1) DEFAULT '0',
PRIMARY KEY (`likes_Id`),
PRIMARY KEY (`likesId`),
UNIQUE KEY `unique_board_member` (`board_boardId`,`member_memberId`),
KEY `member_memberId_idx` (`member_memberId`) /*!80000 INVISIBLE */,
KEY `board_boardId` (`board_boardId`),
Expand Down Expand Up @@ -116,25 +116,6 @@ CREATE TABLE `bookmark` (
CONSTRAINT `fk_bookmark_folder` FOREIGN KEY (`folder_folderId`) REFERENCES `folder` (`folderId`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


-- likebookmark 테이블 생성
DROP TABLE IF EXISTS `likebookmark`;

CREATE TABLE `likebookmark` (
`likebookmarkId` int NOT NULL AUTO_INCREMENT,
`board_boardId` int NOT NULL,
`member_memberId` int NOT NULL,
`is_Liked` tinyint(1) DEFAULT '0',
`is_Bookmarked` tinyint(1) DEFAULT '0',
PRIMARY KEY (`likebookmarkId`),
UNIQUE KEY `unique_board_member` (`board_boardId`,`member_memberId`),
KEY `member_memberId_idx` (`member_memberId`) /*!80000 INVISIBLE */,
KEY `board_boardId` (`board_boardId`),
CONSTRAINT `board_boardId` FOREIGN KEY (`board_boardId`) REFERENCES `board` (`boardId`) ON DELETE CASCADE,
CONSTRAINT `member_memberId` FOREIGN KEY (`member_memberId`) REFERENCES `member` (`memberId`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


-- comment 테이블 생성
DROP TABLE IF EXISTS `comment`;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@



<mapper namespace="com.web.SearchWeb.board.dao.LikeBookmarkDao"> <!--Dao 이름-->
<mapper namespace="com.web.SearchWeb.likes.dao.LikesDao"> <!--Dao 이름-->

<!-- 게시글 좋아요 상태 확인 -->
<select id="isLikedByMember" resultType="boolean">
select is_Liked FROM likebookmark
select is_Liked FROM likes
WHERE
board_boardId = #{boardId}
AND
Expand All @@ -19,15 +19,15 @@

<!-- 게시글 좋아요 추가 -->
<insert id="likeBoard">
insert INTO likebookmark (board_boardId, member_memberId, is_Liked)
insert INTO likes (board_boardId, member_memberId, is_Liked)
VALUES (#{boardId}, #{memberId}, TRUE)
ON DUPLICATE KEY UPDATE is_Liked = TRUE;
</insert>


<!-- 게시글 좋아요 취소 -->
<update id="unlikeBoard">
update likebookmark
update likes
SET
is_Liked = FALSE
WHERE
Expand All @@ -39,7 +39,7 @@

<!-- 게시글 좋아요 수 조회 -->
<select id="countLikes">
select COUNT(*) FROM likebookmark
select COUNT(*) FROM likes
WHERE
board_boardId = #{boardId}
AND
Expand Down