[javascript] jQuery를 사용하여 게시판 및 뉴스피드 구현하기

jQuery는 웹 개발에서 많은 기능을 쉽게 구현할 수 있도록 도와주는 자바스크립트 라이브러리입니다. 이번 포스트에서는 jQuery를 이용하여 게시판과 뉴스피드를 구현하는 방법에 대해 알아보겠습니다.

게시판 구현하기

게시판은 사용자가 글을 작성하고 읽을 수 있는 기능을 제공하는 페이지입니다. jQuery를 사용하여 동적으로 게시글을 추가하고 삭제하는 방법을 알아보겠습니다.

HTML 구조 설정하기

먼저, HTML 구조를 설정해야 합니다. 게시글을 보여줄 <div> 요소에 id를 부여하여 접근할 수 있도록 합니다.

<div id="board">
  <!-- 게시글이 동적으로 추가될 공간 -->
</div>

게시글 추가하기

게시글을 추가하는 함수를 작성해보겠습니다. 사용자가 게시글을 작성하고 ‘게시’ 버튼을 클릭할 때 호출됩니다.

function addPost() {
  // 사용자가 작성한 게시글 내용 가져오기
  var content = $('#post-content').val();
  
  // 게시글 내용을 포함한 HTML 코드 생성
  var html = '<div class="post">' +
               '<p>' + content + '</p>' +
               '<button class="delete-post">삭제</button>' +
             '</div>';
  
  // 게시글을 게시판에 추가
  $('#board').append(html);
  
  // 게시글 작성 폼 초기화
  $('#post-content').val('');
}

게시글 삭제하기

게시글을 삭제하는 함수를 작성해보겠습니다. 사용자가 ‘삭제’ 버튼을 클릭할 때 호출됩니다.

function deletePost() {
  // 현재 클릭된 게시글의 부모 요소인 <div class="post">를 찾아서 삭제
  $(this).parent('.post').remove();
}

이벤트 리스너 등록하기

페이지 로드가 완료된 후, 게시글 추가 및 삭제 버튼에 이벤트 리스너를 등록해야 합니다.

$(document).ready(function() {
  // '게시' 버튼 클릭 시 게시글 추가
  $('#add-post').on('click', addPost);
  
  // '삭제' 버튼 클릭 시 게시글 삭제
  $('#board').on('click', '.delete-post', deletePost);
});

뉴스피드 구현하기

뉴스피드는 최신 글을 보여주는 기능을 제공하는 페이지입니다. jQuery를 사용하여 뉴스피드를 동적으로 업데이트하는 방법을 알아보겠습니다.

HTML 구조 설정하기

뉴스피드를 보여줄 <div> 요소에 id를 부여하여 접근할 수 있도록 합니다.

<div id="news-feed">
  <!-- 최신 글이 동적으로 추가될 공간 -->
</div>

최신 글 가져오기

서버에서 최신 글을 가져오는 AJAX 요청을 보내는 함수를 작성해보겠습니다. 페이지 로드가 완료된 후 자동으로 호출되어 최신 글을 가져옵니다.

function getLatestPosts() {
  $.ajax({
    url: '/api/posts',
    method: 'GET',
    dataType: 'json',
    success: function(response) {
      // 서버에서 가져온 최신 글을 뉴스피드에 추가
      response.posts.forEach(function(post) {
        var html = '<div class="post">' +
                     '<p>' + post.content + '</p>' +
                   '</div>';
        $('#news-feed').append(html);
      });
    },
    error: function() {
      alert('최신 글을 가져오는데 실패했습니다.');
    }
  });
}

주기적으로 업데이트하기

일정 간격마다 최신 글을 업데이트하기 위해 setInterval 함수를 사용합니다.

$(document).ready(function() {
  // 페이지 로드 후 최신 글 가져오기
  getLatestPosts();
  
  // 1분마다 최신 글 업데이트
  setInterval(getLatestPosts, 60000);
});

결론

이러한 방법을 사용하여 jQuery를 활용하여 게시판과 뉴스피드를 구현할 수 있습니다. jQuery의 다양한 기능을 활용하면 웹 개발을 보다 쉽고 편리하게 할 수 있습니다.

참고자료