- 시작 전, 잠깐! 왜 GetMapping을 사용했나? 간단한 코드를 위해 사용함.
스프링에서는 @GetMapping을 사용하여 데이터를 조회할 때 주로 사용한다.
GET 요청으로 삭제를 처리하는 것은 웹의 RESTful 설계 규칙에 맞지 않지만, 종종 간단한 삭제 처리에서는 GET을 사용한다.
실제로 URL에 대한 접근으로 삭제 작업을 처리하는 경우도 있고, 클라이언트에서 링크 클릭만으로 삭제할 수 있기 때문이라 한다.
간단한 삭제 작업을 위해 GetMapping을 사용할 것이다.
알고리즘 생각하기
- 먼저 사용자가 해당 게시물을 클릭하고, 해당 게시물에 '삭제'버튼을 통해 삭제를 하게끔 할것이다.
- 해당 게시물은 그러면 조회가 된 상태에서 진행되는 것.
- 버튼을 누를시, 해당 데이터 조회()
POST: 데이터를 전송하는 데 사용, DTO를 매개변수로 받아서 처리
GET: 데이터를 조회하는 데 사용, id나 쿼리 파라미터를 받아서 모델에 담고 응답
우리는 Get을 사용할 것이다 : > 조회 후 바로 삭제할 것이기 때문.
- 이전 수정 페이지를 만들 때, 미리 웬만한 부분은 수정을 다 해두었기 때문에 수정할 부분은 많이 없다.
1. 삭제 버튼 만들기.
show.mustache 파일에 button 생성해준다.
<a href="/members/{{member.id}}/delete" class="btn btn-primary">Delete</a>
2. Controller 작성한다.
- 삭제 메시지를 위해 RedirectAttributes 를 사용하여 일회용 Attributes를 만들주었다.
@GetMapping("/members/{id}/delete")
public String deleteMember(@PathVariable Long id, RedirectAttributes rttr) {
// 1. 데이터를 조회해야한다.
Member target = memberRepository.findById(id).orElse(null);
// 2. delete 함수 사용
if(target != null) {
memberRepository.delete(target);
rttr.addFlashAttribute("msg", "삭제됐습니다.");
}
// 리다이렉트해서 뷰페이지 반환
return "redirect:/members";
}
3. 결과 확인
'코딩 공부 > Spirngboot' 카테고리의 다른 글
[RESTAPI] 따라하기 (0) | 2025.01.15 |
---|---|
[회원가입 실습] 회원 수정 (0) | 2025.01.14 |
[Redirect 실습] (0) | 2025.01.12 |
[단일, 리스트 데이터 조회] 회원가입 조회 (0) | 2025.01.11 |
[Data조회과정과 생성과정] (0) | 2025.01.11 |