스프링 부트로 시작하는 웹 서비스 #2

환승의 개발로그·2020년 10월 27일
0

지난 시간에 작성된 스프링부트로 시작하는 웹 서비스 #1 에 이어서 작성하는 게시물 입니다.

지난시간에는 게시들 조회와 등록까지 했다면 이번 #2에서는 게시글 수정과 삭제를 다뤄 볼 생각이다.

먼저 PostsService 단 코드에 수정과 삭제에 대한 메서드를 정의한다.

서비스단 코드이다
update,delete 메서드를 정의한다. 다음 posts객체에 id값을 넣어주고 IllegalArguementException이 날 경우 예외처리를 해준다
postsRepository에 정의해 놓은 메서드에 posts를 파라미터로 넘겨주는 방식으로 정의한다.

PostsRepository이다.
여기서 중요한 부분이 있다.
PostsRepository에 update와delete 메서드가 없는데 어떻게 사용하는걸까?
바로 JpaRepository를 상속 받아 내장된 update와 delete를 사용하는것이다
이런 기본적인 기능들은 Jpa에서 제공하기 때문에 더욱 편리하다고 생각한다.

indexcontroller에서 업데이트 페이지에 model로 posts 데이터를 넘겨준다

update.mustache이다
value에 model에서 받은 posts데이터를 {{post.id}} 이런 문법으로 데이터를 뿌려준다

업데이트 페이지이다

사실 여기서 이상한 문제가 발생하였다 !

책과 다르게 작성자까지 수정하기 위해서 분명히 인텔리제이 index.js에서 author을 추가해 수정했으나
크롬 개발자모드로 index.js를 보면 추가가 되지 않았다 분명히 빌드도 제대로하고 인텔리제이도 껏다 켰는데 문제가 계속 발생하였다.
처음에는 디버그 모드로 null값이 발생하여서 코드 문제인줄 알았는데 서칭하여 찾다보니 크롬 자체 캐쉬 문제로 js파일의 수정사항이 적용되지 않는 아이러니한 문제가 발생하였다.... 이런 버그는 하루라도 빨리 고쳐지길 바란다 (안고쳐지면 개발자들은 대혼돈이 올거라고 생각된다....)

아무튼 네이버 웨일에서 다시 실행해 보니 작성자까지 수정이 잘 적용된다.


삭제 버튼 눌른 후
정상적으로 삭제 되었다.

결론적으로 이상한 해프닝이 있었지만 수정 삭제까지 잘 구현되었다.
다음 챕터에서는 전 회사에서 다룬 Oauth2.0과 Spring Security를 다룰 예정이다.
글 쓰는게 생각보다 재밌지만 어렵다.
시험 기간이 끝나면 본격적으로 Sql공부와 개인 서비스 개발을 위한 카프카와 주키퍼 공부도 글을 쓸 생각이다. 앞으로 꾸준히 글쓰기 실력을 늘려서 다른 사람과 함께 공유하는 개발자가 되고 싶다.

profile
눈보다는 손으로 기억하기

0개의 댓글