본문 바로가기

프로젝트91

[Dev] 23.01.11. 사용자 정보 수정 (기능은 구현했으나 미완) 마이 페이지의 프로필에 대한 페이지 구성이 끝났으니, 이어서 사용자 정보를 수정하는 작업을 기록하겠다. 사실 이 작업은 생각과는 많이 달라졌다. 처음에는 당연하게도 닉네임과 비밀번호를 한 번에 수정하는 방향이 좋다고 생각했다. 하지만 닉네임만을 변경하고 싶고, 비밀번호만을 변경하고 싶을 수 있다는 점을 생각하게 되었다. 하지만 두 항목을 한 form에 몰아놓는 방향으로 구성하려니 괜히 더 복잡해지는 느낌이었다. 그래서 이 둘을 분리하게 되었다. 작업 프로필 정보 수정 UserController.java // 마이 페이지에서 닉네임 변경 @PostMapping("/user/profile/nickname") public ResponseEntity updateNickname(@Valid UserDto user.. 2023. 1. 11.
[Dev] 23.01.05. 마이 페이지 구성 사용자 정보를 수정하는 기능에 앞서 마이 페이지를 구성했다. 12월 29일의 게시글을 기준으로 일주일 정도 시간이 지났는데, 연말이고 연초이기 때문인 것은 아니고 그저 조금 게을렀고 작업했던 내용을 되돌렸기 때문이다. 그래서 생각보다 작업 내용은 간단하다. 작업 my-page.html My Page 내 게시글 글쓰기 글 삭제 프로필 회원 탈퇴 내 글 모아보기 로그인 시에 navigation bar에서 볼 수 있는 마이 페이지 버튼을 통해 이동할 수 있는 마이 페이지에 대한 markup 이다. 이전에 댓글 관련 작업을 할 때에 댓글 작성 시 화면 전환 없이 화면을 동적으로 구성하려고 했으나 포기했던 적이 있다. 이번에는 그것을 가능하게 할 수 있는 방법을 찾아내어 사용해보았다. 보여지는 코드의 tag 마지.. 2023. 1. 5.
[Dev] 22.12.29. DB에 저장하고 Client에 출력할 작성자 정보 수정하기 말은 저렇게 되어있지만, 근본적인 문제는 DB에 저장할 작성자의 정보만을 올바르게 setting 해주면 되는 부분이다. 바로 작업으로 들어가자. 작업 현재 client에서 게시글을 작성하고 댓글을 작성하는 요청에 대한 처리를 하는 controller의 method 모습이다. 내용은 좀 다르지만 공통적으로 Authentication Principal 객체의 username 항목을 작성자의 정보로 넣어주고 있다. 이때의 username은 로그인 과정에서 작성했던 로그인 아이디의 정보이다. 하지만 원래의 목적은 아이디가 아닌 닉네임이 노출되도록 하고 싶었으므로, 더 작업하기 전에 현재의 작업을 약간 수정할 필요를 느꼈다. Authentication Principal에 해당하는 UserDetails를 imple.. 2022. 12. 29.
[Dev] 22.12.29. 현재까지의 요청 URL 수정 이전에 Spring Boot 강의 내용 중에 URI 설계 패턴에 대한 내용이 있었다. 그 중에 계층을 보다 확실히 나타내고, CRUD를 나타내지 않도록 하기 위해서 현 시점에서 이에 대해 수정한 뒤 넘어가고 싶다. 위 네 이미지에서 볼 수 있는 것처럼 delete, update 등의 CRUD를 나타내는 항목과, del-comment, write 등의 계층화가 덜 된 항목에 대한 수정을 할 것이다. 작업 우선 댓글의 경우 작성하는 url이 add-comment, 삭제하는 url이 del-comment로 되어 있는데 이들을 1차적으로 계층을 구분해줄 것이다. /user/add-comment->/user/comments/add /user/del-comment/{commentId}->/user/comments/.. 2022. 12. 29.
[Dev] 22.12.29. 작성자와 다른 사용자의 수정, 삭제 요청 방어(feat. Interceptor) 고민 사용자의 정보를 확인하고 수정하는 등의 기능을 작업하기에 앞서 고민이 생겼다. 게시글 작성자가 아닌 경우에 게시글을 수정, 삭제를 시도하는 경우가 생기는 경우를 어떻게 막아야 할까? 우선 지난 국비 과정에서의 경우는 게시글을 삭제하는 경우에도 GET 방식 request를 통해 동작하도록 했다. 당시에는 request 방식이 GET과 POST 만 존재하는 줄 알고 그랬으나, Spring Boot 강의를 수강하면서 PUT과 DELETE 방식이 있다는 것을 알게 되어서 이번에 그것을 적용해보았다. 기본적으로 인터넷 주소창을 통해 요청하는 것은 GET 방식인데, 때문에 DELETE 방식 요청의 url을 동일하게 작성하더라도 원하는 동작을 하도록 할 수 없다. 하지만 게시글 수정하는 page로의 요청은 GE.. 2022. 12. 29.
[Dev] 22.12.23. 게시글 삭제 작업 content.html / content.js 삭제 (content.html) -------------------------------------------------------------------------------------- (content.js) // 게시글 삭제 클릭 시 동작 document.querySelector("#contentDeleteBtn").addEventListener("click", function(e){ e.preventDefault(); var wantToDelete = confirm("게시글을 삭제하겠습니까?"); if(wantToDelete){ var url = this.getAttribute("href"); var token = document.querySele.. 2022. 12. 23.