본문 바로가기
TIL & WIL

[TIL] #54. 231106

by mmm- 2023. 11. 6.

어제 목표 & 오늘 완료한 한 일 

  • 알고리즘 문제
  • 스프링 입문 강의 (2주차) 
  • 스프링 입문 개인과제


내일 목표

  • 알고리즘 문제
  • 자바 종합 문법 복습 (3주차)
  • 스프링 입문 강의 (2주차)
  • 스프링 숙련 강의 (1주차)

 

오늘 배운 내용

  • @JsonInclude(JsonInclude.Include.NON_NULL) 을 통해 null 값인 필드를 제외시킬 수 있다.

 

발생한 문제와 해결

1️⃣. 게시물을 수정하여도 수정이 되지 않는 문제가 발생하였는데 코드를 다시 보니 PostService에서 @Transactional annotation을 붙이지 않아 발생한 에러였다. 해당 annotation을 붙여주니 해결이 되었다.

 

2️⃣. deletePost() 메서드관련해서 exception 부분 구현 중 아래와 같은 에러가 발생하였다.

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateInputException:

해당 블로그(https://wakestand.tistory.com/903)로 인해 deletePost()에 @ResponseBody가 빠진 것을 확인하였다. 확인 후 빠진 부분에 @ResponseBody 부분을 추가하였더니 문제가 해결되었다. 이러한 문제가 또 발생하지 않게 하기 위해 @Controller를 @RestController로 변경 후 @ResponseBody부분을 모두 지워줬다. 아까 @RestController에서 변경시켜준 것으로 기억하는데 브랜치 왔다갔다하면서 뭔가 헷갈려 문제가 발생한 것 같다. 이거 해결하려고 시간을 많이 보내서 시간이 아깝다는 생각도 들지만 좋게 생각하면 좋은 경험을 한 것 같다.

 

느낀점

과제를 시작해야하는데 주말부터 틀을 어떻게 잡아야할지 도저히 감이 잡히지 않아 실습 코드를 따라하는 느낌으로 과제를 수행하긴 했지만, 과제와 함께 주신 질문에 대해서 어떻게 대답할까 정말 많이 고민하며 작성하였다. 그 과정에서 RESTful한 API에 대해 공부를 하게됐다. 그리고 슬랙 질문방에서 어떤분이 DELETE메서드의 경우 RequestBody를 사용하는 것을 지양한다는 사실을 알려주셔서 그 부분에 대해 어떻게 해야할지 많이 고민하고 찾아봤다.

찾아본 결과 Request header에 값을 넣어 요청을 하는 것을 추천한다는 블로그 글(https://humblego.tistory.com/18)을 보게되었다.

처음에는 @RequestHeader만 바꿔주고 다른 코드는 @RequestBody와 똑같이 작성했더니 postman에서 확인하였을 때 404에러가 발생하는 것을 확인할 수 있었다. 그래서 해당 블로그에서 확인하였을 때 400 에러가 발생하는 것을 확인할 수 있었따. 그래서 해당 블로그(https://www.podo-dev.com/blogs/248)를 참고하여 코드를 수정했다. update와 delete할 때 사용하는 checkPW부분이 중복될 줄 알고 따로 메서드를 만들어 놓았었다. 그런데 코드를 수정하면서 update와 delete할 때 넘겨주는 인자가 다른 것을 알고 checkPW 메서드를 오버로딩하였다. 

 

그런데 과제 제출하려고 보니까 수정, 삭제 API requst를 어떤 방식으로 사용하였냐는 질문에 선택지가 param, query, body 밖에 없었다. 그래서 제출직전에 급하게 삭제부분도 body로 변경해줬다. 나는 여태까지 뭘한거지,, 그래도 언젠간은 도움이 되겠지

 

그리고 하면서 캡스톤때 설계했던 API가 얼마나 RESTful하지 않은 API인지 깨닫게 되었다. 

강의가 점점 밀리고 있어서 너무 걱정이다. 열심히 들어야겠다.

 

 

'TIL & WIL' 카테고리의 다른 글

[TIL] #56. 231108  (0) 2023.11.08
[TIL] #55. 231107  (0) 2023.11.07
[WIL] #8. 231030 ~ 231105  (0) 2023.11.05
[TIL] #53. 231105  (0) 2023.11.05
[TIL] #52. 231104  (0) 2023.11.05