웹 애플리케이션의 핵심 기능인 CRUD(Create, Read, Update, Delete)를 정리했다.
게시판 예시를 통해 데이터의 생성부터 소멸까지의 과정을 Spring MVC로 구현했다.
HTTP 메서드 기반 기능 정의
Spring MVC에서는 HTTP 메서드를 활용하여 각 기능을 구분한다.
@Controller
@RequestMapping("/board")
public class BoardController {
// 1. 목록 조회 (Read): 저장된 데이터를 호출하여 화면에 출력한다.
@GetMapping("/list")
public String list(Model model) {
model.addAttribute("list", boardService.getList());
return "board/list";
}
// 2. 등록 처리 (Create): 새로운 데이터를 DB에 저장한다.
@PostMapping("/register")
public String register(BoardVO board, RedirectAttributes rttr) {
boardService.register(board);
// 처리 결과 메시지를 일회성으로 전달한다.
rttr.addFlashAttribute("result", "success");
return "redirect:/board/list"; // 등록 후 목록으로 리다이렉트 수행
}
// 3. 수정/삭제 (Update/Delete): 기존 데이터를 변경하거나 제거한다.
// 데이터 변경을 위해 POST 방식을 사용한다.
}
구현 지침
- 리다이렉트(Redirect) 활용: 데이터 변경(등록, 수정, 삭제) 후에는
redirect:를 사용하여 중복 등록을 방지해야 한다. - RedirectAttributes: 리다이렉트 시 일회성 알림 메시지 전달에 사용한다.
- 역할 분리: 컨트롤러는 요청 수신 및 응답 제어를 담당하고, 실제 데이터 처리는 서비스 레이어에서 수행한다.
데이터 흐름 분석
CRUD 구현을 통해 클라이언트 요청이 서버를 거쳐 데이터베이스에 반영되는 흐름을 확인했다.
모든 웹 서비스는 이 기초 기능 위에서 동작한다.
기본에 충실한 구현이 견고한 서비스를 구축하는 기반이 되는 것 같다.