개발

Spring 프레임워크로 간단한 게시판 만들기: CRUD 기능 구현 안내

new-fp 2024. 11. 15. 15:08
728x90
반응형

안녕하세요, 프로그래밍과 더불어 지식을 나누는 블로그에 오신 여러분을 환영합니다! 오늘은 Spring 프레임워크를 활용하여 간단한 게시판을 구현하는 방법에 대해 이야기해보려고 합니다. 이 과정에서는 코드의 구성 요소와 그 의미를 단계별로 분석하여 실무에서 어떻게 활용할 수 있는지 함께 살펴보겠습니다.

들어가며

웹 개발에서 사용자와의 상호작용을 원활하게 해주는 게시판은 기본적이면서도 매우 중요한 요소입니다. 복잡한 기능보다는 기초를 다지는 것이 우선이라는 생각으로, Spring을 이용한 게시판의 간단한 CRUD(Create, Read, Update, Delete) 기능을 구현해보겠습니다.

자, 이제 본격적으로 시작해볼까요?

코드 작성하기

우선, 게시판 기능을 수행하는 BoardController 클래스를 살펴보겠습니다. 이 클래스는 사용자의 요청을 처리하고, 필요한 비즈니스 로직을 수행하여 결과를 반환하는 역할을 합니다. 아래는 BoardController의 주요 코드입니다.

package com.smhrd.web;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.smhrd.domain.Board;
import com.smhrd.mapper.BoardMapper;

@Controller
public class BoardController {

    @Autowired
    BoardMapper mapper;

    @RequestMapping("/boardList.do")
    public String boardList(HttpServletRequest request) {
        List<Board> list = mapper.boardList();
        request.setAttribute("list", list);
        return "boardList";
    }

    @RequestMapping("/boardInsert.do")
    public String boardInsert(Board vo) {
        mapper.boardInsert(vo);
        return "redirect:/boardList.do";
    }

    @RequestMapping("/boardDelete.do/{idx}")
    public String boardDelete(@PathVariable("idx") int num) {
        mapper.boardDelete(num);
        return "redirect:/boardList.do";
    }

    @GetMapping("/boardUpdate.do")
    public String boardUpdateForm(int idx, Model model) {
        Board vo = mapper.boardContent(idx);
        model.addAttribute("vo", vo);
        return "boardUpdate";
    }

    @PostMapping("/boardUpdate.do")
    public String boardUpdate(Board vo) {
        mapper.boardUpdate(vo);
        return "redirect:/boardContent.do?idx=" + vo.getIdx();
    }
}

코드 설명하기

  1. 패키지 및 클래스 선언: com.smhrd.web 패키지 내에 있는 BoardController 클래스는 Spring MVC의 @Controller로 어노테이션이 붙어 있으며, 이는 이 클래스가 웹 요청을 처리할 것임을 나타냅니다.
  2. 의존성 주입: @Autowired 어노테이션을 통해 BoardMapper 인스턴스를 주입받아 DB와의 연동 기능을 수행합니다.
  3. 메소드 구현:
  • boardList(): 데이터를 DB에서 가져와서 게시물 목록을 보여주는 기능입니다. HttpServletRequest 객체를 통해 모델에 데이터를 저장합니다.
  • boardInsert(): 게시물 추가 시 클라이언트가 입력한 데이터를 받아 해당 게시물을 DB에 저장합니다.
  • boardDelete(): URL 경로에서 인덱스를 받아 해당 게시물을 삭제하는 역할을 합니다.
  • boardUpdateForm(): 수정할 게시물을 불러와서 수정 페이지로 이동합니다.
  • boardUpdate(): 수정된 내용을 DB에 반영하는 기능입니다.

예제 실행 결과

이 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

  • 게시판에 등록된 모든 게시물 목록을 볼 수 있으며,
  • 새로운 게시물을 추가하거나 기존 게시물을 삭제 또는 수정할 수 있습니다.

추가적으로

이 코드는 게시판의 기본적인 CRUD 기능을 구현하는데 중점을 두었습니다. 하지만 여러분은 이 코드를 기반으로 다양한 확장을 고려해 볼 수 있습니다:

  • 회원 시스템 추가: 사용자 인증 및 권한 관리.
  • 검색 및 필터 기능: 특정 게시물을 쉽게 찾을 수 있도록 하는 기능.
  • 댓글 시스템: 게시물에 댓글을 달 수 있는 기능 추가.

마무리하며

이번 포스트에서는 Spring Framework를 활용한 간단한 게시판 시스템을 구축하는 방법을 알아보았습니다. 이 Code Base는 여러분의 웹 개발 실력을 더 발전시키는 데 기여할 것입니다. 언제든지 질문이나 의견이 있으시면 댓글로 남겨주세요!

지금까지 읽어주셔서 감사합니다. 다음 포스트에서 더 유용한 정보를 가지고 올 것을 기대합니다!

728x90
반응형