문제
- Spring 개인과제에서 update를 할 때에 선택할 게시글의 비밀번호와 바꿀 데이터를 보내라고 한다.
-> 선택한 게시글인 것을 표현할 때에 강의에서는 id를 주었는데, 꼭 id를 주어야하나? 뭔가 id말고 다른 값을 주고 싶고, 비밀번호를 따로 주는 거면 form말고 다른 방법이 있을까?
시도
- Spring 개인 과제
- id말고 title을 주게끔 해보았는데, 무슨 게시글인지 확인 할때에 나는 url에 표시되게끔 했기 때문에 굳이 id라는 정보를 주지 않고 이미 보여지는 title이라는 정보만 url에 보여주도록 하였다.
- password를 주고 또 따로 변경할 데이터를 주는 것 보다는 RequestBody쪽에 한번에 password를 포함한 데이터를 넘겨주는 것이 덜 번거로울 거 같아서 이 방식으로 줘 보았다.
해결
- Spring 개인 과제
- id말고 title을 url에 표시해서 받는 방식을 사용하면 크게 바꾸어야 할 부분은 return type과 findById라는 메서드를 findByTitle로 바꾸어서 id말고 title을 찾게 하면 된다.
-> password를 비교하는 부분이 조금 번거로웠는데 isPasswordMatching이라는 메서드를 만들어서 비교해주었다.
- RequestBody부분에 바꿀 데이터를 집어넣고, password 부분만 기존에 있던 것대로 집어넣어서 구현을 하기는 했다.
-> 다만 구현을 하고 제출하고 생각해보니, 비밀번호를 이렇게 수정할 데이터에 넣는 것이 아니라, 차라리 title과 password를 객체로 하여 받고, RequestBody에 데이터를 따로 받는 것이 사용자 입장에서는 합당한 방식이 아닐까 생각한다... 일단은 제출하고 나중에 수정해보도록 해야겠다.
알게 된 점
- Spring 개인 과제
- front-end 없이 back-end만을 가지고 Postman을 이용해서 api가 제대로 돌아가는지 보게되니 api가 제대로 설정되었는지 알기는 편했다. 다만, 어떻게든 주면 되니까 사용자의 입장을 생각하지 않게 되었던 것 같다. 사용 편의성을 조금 더 생각해보게 되는 과제였다.
- @PathVariable로 게시글을 선택하고, 비밀번호를 주는 방식을 생각해보았는데, 그것 말고 form을 사용하여 @ModelAttribute로 한번에 객체를 넘겨받는 방식이 더 나을 거 같다는 생각이 들었다. 과제를 하게 되니까 그냥 막연히 구현해야지보다, 더 나은 방식으로 구현해야겠다는 관점이 생기는 듯하다.