Programing_Java

[Servlet] 자바 서블릿을 이용한 게시글 좋아요 기능 구현 🚀 본문

카테고리 없음

[Servlet] 자바 서블릿을 이용한 게시글 좋아요 기능 구현 🚀

Joyfullyever 2025. 3. 30. 19:52

웹 애플리케이션 개발에서 사용자의 인터랙션을 관리하는 것은 중요함

✅ '좋아요' 기능은 사용자들이 콘텐츠에 대한 선호도를 표현할 수 있는 간단하면서도 강력한 도구

 

 1️⃣ 데이터베이스 상호작용

• 좋아요 기능의 핵심은 사용자의 입력에 따라 데이터베이스에서 해당 게시글의 좋아요 수를 업데이트하는 것

• 사용자가 좋아요 버튼을 클릭할 때, 서블릿은 BoardComboLikedDTO 데이터 전송 객체를 생성하여 사용자의 요청을 처리

• DTO는 사용자의 회원 번호와 게시글 번호를 포함하고 있습니다.

BoardComboLikedDTO boardComboLikedDTO = new BoardComboLikedDTO();
boardComboLikedDTO.setMemberNumber(memberNumber);
boardComboLikedDTO.setBoardComboNumber(boardComboNumber);

 

2️⃣ BoardComboLikedDAO 데이터 접근 객체를 통해 데이터베이스에 저장되거나 삭제

• 사용자가 좋아요를 누른 상태라면 insert 메서드를 통해 좋아요 등록

• 이미 좋아요를 누른 상태에서 다시 클릭했다면 delete 메서드를 통해 좋아요 취소

• 각 메서드 호출은 게시글의 현재 좋아요 수 업데이트

boolean isLiked = false;
if ("INSERTLIKED".equals(orderCondition)) {
    isLiked = boardComboLikedDAO.insert(boardComboLikedDTO);
} else if ("DELETELIKED".equals(orderCondition)) {
    isLiked = boardComboLikedDAO.delete(boardComboLikedDTO);
}

 

3️⃣ 응답 처리

• 작업의 결과에 따라 서버는 적절한 응답을 클라이언트에 반환

• 만약 데이터베이스 작업이 성공적으로 완료되었다면, 게시글의 최신 좋아요 수를 클라이언트에 전달

→ AJAX 요청을 통해 비동기적으로 화면에 반영될 수 있어 사용자 경험이 향상

response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
if (isLiked) {
    response.getWriter().write(String.valueOf(boardComboLikedCount));
} else {
    response.getWriter().write("false");
}

 

• 실패한 경우, "false" 문자열을 반환하여 클라이언트 측에서 적절한 오류 처리 또는 사용자 알림을 구현

 

✅서버와 클라이언트 간의 효율적인 데이터 통신이 가능

✅ 사용자가 웹 페이지를 새로 고침하지 않고도 실시간으로 상호작용을 경험

✅ 좋아요 기능은 비교적 간단한 구현이지만, 사용자의 참여를 유도하고 콘텐츠에 대한 피드백을 제공하는 데 큰 역할