게시글 수정 Api 구현

song yuheon·2023년 8월 29일
0

Spring

목록 보기
9/93
post-thumbnail
post-custom-banner

조건

  • 선택한 게시글 수정 API 구현
  • 수정을 요청할 때는 수정할 데이터와 비밀번호를 함께 전송
  • 서버에서는 비밀번호의 일치 여부를 확인 후, 제목, 작성자명, 작성 내용을 수정
  • 수정이 완료된 게시글을 클라이언트로 반환

진행 상황
1. 함수를 생성하여 게시글의 id로 게시글 조회
2. 조회된 게시글 객체 반환 후, 비밀번호가 일치할 경우 게시글 수정

게시글 수정 예시

문제 상황

  • PUT 요청이 작동하지 않음
  • 사용자가 전송하는 PUT 타입 데이터와 서버에서 받는 객체의 필드가 일치하지 않음


  • 서버에서 받는것을 위한 클래스 생성

클래스 생성 고민

  • 문제 해결

  • 앞으로 진행해야 할 것
  1. 게시글 수정 후, id 반환이 아닌 수정된 객체를 반환한다.
  2. 함수의 반환값을 객체로 변경하여 findDataById 메서드를 사용하여 id에 해당하는 객체를 반환하도록 한다. 이를 통해 사용자는 수정된 내용을 업데이트하여 받을 수 있다.
  3. 게시글 조회 시, 제목, 작성자, 작성 날짜, 작성 내용을 모두 조회해야 한다고 판단하였다. 이를 위해 findDataById 함수에 매개 변수를 추가하여 구별할 수 있도록 한다.

함수 리펙터링 이미지

문제 및 해결 방안
1. getAllData 함수에서 id가 없기 때문에 이를 어떻게 연결해야 할지에 대한 고민이 생겼다.
2. nowTime을 기준으로 사용자로부터 받은 id를 통해 객체를 반환하는 것과 getAllData를 통해 업데이트된 객체를 연결하는 방식을 선택하였다.

객체 반환 관련 이미지

  1. 만약 게시글 생성 시 시간이 겹칠 경우, 문제가 발생할 수 있다는 점을 인식하였다. 이를 해결하기 위해 게시글 생성 시 1초씩 타임 딜레이를 주기로 결정하였다.

시간 딜레이 이미지

  1. thread.sleep을 사용하여 해당 문제를 해결하였다.

스레드 슬립 사용 이미지

profile
backend_Devloper
post-custom-banner

0개의 댓글