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

2025. 1. 14. 01:41·코딩 공부/Spirngboot

 

- 시작 전, 잠깐! 왜 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] 따라하기  (1) 2025.01.15
[회원가입 실습] 회원 수정  (0) 2025.01.14
[Redirect 실습]  (0) 2025.01.12
[단일, 리스트 데이터 조회] 회원가입 조회  (0) 2025.01.11
[Data조회과정과 생성과정]  (0) 2025.01.11
'코딩 공부/Spirngboot' 카테고리의 다른 글
  • [RESTAPI] 따라하기
  • [회원가입 실습] 회원 수정
  • [Redirect 실습]
  • [단일, 리스트 데이터 조회] 회원가입 조회
sintory-04
sintory-04
🚀🚀🚀
  • sintory-04
    Sintory Dev Blog
    sintory-04
    글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (291)
      • 백엔드 부트캠프 (111)
        • TIL (97)
        • WIL (0)
        • 문제풀이 (7)
        • 기타 (6)
      • 백엔드 부트캠프[사전캠프] (35)
        • TIL (16)
        • 문제풀이 (17)
        • 기타 (1)
      • Troubleshooting (11)
      • 코딩 공부 (118)
        • Java (28)
        • Baekjoon-Java (24)
        • Programmers-Java (40)
        • Spirngboot (11)
        • typescript (1)
        • JavaScript (6)
        • Spring 입문 (8)
      • 프로젝트 (2)
        • ToDoApp(FireBase) (3)
        • ToDoApp(Spring) (5)
      • 기타 (4)
  • 블로그 메뉴

    • 소개
    • Github
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
sintory-04
[회원가입 실습] 회원 정보 삭제
상단으로

티스토리툴바