코딩 공부/Spirngboot

[회원가입 실습] 회원 정보 삭제

sintory-04 2025. 1. 14. 01:41

- 시작 전, 잠깐! 왜 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. 결과 확인

클릭 시 해당 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