본문 바로가기

프로젝트/Recipository60

[Dev] 22.12.22. 게시글 수정 2 (feat. Entity field update method) Entity는 DB와의 data를 교환하고, DB의 data를 변경할 수 있기 때문에 setter method의 사용이 지양된다고 한다. 이와 같은 내용이 언급된 블로그들을 다른 정보를 찾기 위해서 웹을 돌아다니다가 발견했고, 이에 대해 극단적인 필자는 이를 최대한 피하고자 노력했다. 하지만 필자는 어쩌면 괜한 고집으로 일을 어렵게 만들고 있었는지도 모른다. '지양' 이라는 단어는 어떠한 것을 하지 않는다는 의미이긴 하지만, 이것이 절대적으로 하면 안된다는 의미로 사용되지는 않는다. 필자가 듣는 강의는 아니지만, 온라인 강의 컨텐츠를 만든 한 강사는 너무 강박을 가질 필요는 없다고 말하면서 method의 이름도 의미있게 만들 것을 제안한다. 필자는 이미 이전 과정에서 Recipe Dto로부터 Recipe.. 2022. 12. 22.
[Dev] 22.12.21. 게시글 수정 1 (feat. 게시글 작성 cascade) 게시글 수정 국비 과정에서의 프로젝트에서 무언가를 수정할 때는 logic이 간단했다. 단순히 client의 update form에 data를 setting 하도록 뿌리고 그 form의 내용을 수정한 후 submit 하면, controller에서 Dto로 data를 받아서 update query에 각 data를 setting 해주는 방식이었다. 게다가 게시글이 가질 수 있는 카테고리와 같은 항목은 여러 개를 가질 수 있도록 했었지만, 그 저장 방식을 쉼표로 연결된 String 을 저장하는 것이기도 해서 그리 복잡한 구현이라고 생각하지 않았다. 이번에는 조금 다르게 Spring JPA 를 활용하고 있어서 따로 query문을 작성하고 있지 않고, data를 다루기 위한 Entity 객체 중에 게시글은 Reci.. 2022. 12. 21.
[Dev] 22.12.17. 댓글 삭제 구상 초기에는 댓글 삭제의 경우 댓글을 삭제할 경우 그에 대한 대댓글까지 한 번에 삭제하려고 했다. 대댓글까지 한 번에 지워주지 않으면 그 대댓글이 위쪽에 위치한 댓글의 대댓글로 탈바꿈되기 때문이다. 그런데 개발에 앞서 고민해보니 댓글을 삭제할 때 타인이 작성한 댓글까지 삭제하는 것이 옳은가에 대한 의문이 생겼다. 그래서 댓글을 삭제하지 않고 comment만을 삭제된 내용이라는 것으로 출력하도록 수정하는 방식을 택하기로 했다. 작업 comment.html 답글 삭제 답글 삭제 comment.html 의 댓글과 대댓글에 대한 fragment에 대해서 약간의 수정을 했다. 게시글을 삭제했을 때 화면에서 두 버튼을 지워주기 위해서 각각에 id를 부여했다. 그리고 아예 anchor의 href 속성에 지워야 할 .. 2022. 12. 17.
[Dev] 22.12.16. Dto와 Entity Dto와 Entity Dto는 무엇인지 Entity는 무엇인지 간단히 알아보고, JPA와 함께하는 Entity를 client와의 request나 response에 사용하지 않아야 하는 이유에 대해 고찰해보고자 한다. DTO DTO는 Data Transfer Object의 줄임말로, 글자 그대로 data를 옮기는 목적의 객체이다. Data를 객체에 setting 하거나, 객체로부터 get 할 수 있다. VO (Value Object) 와는 조금 다른데, VO는 글자 그대로 값(value, data)을 지닌 객체로, 그 값을 조회만 할 수 있다(read only)는 차이가 있다. Entity 이미지는 이전에 JPA 강의를 들으면서 그렸던 것이다. Database(DB)는 data를 저장하는 창고같은 공간이라.. 2022. 12. 16.
[Dev] 22.12.15. 게시글 조회 (+ 댓글) 게시글에 대한 Recipe Entity와 댓글에 대한 Comment Entity를 지난 게시글에서 양방향 연관 관계로 구성했다고 언급했다. 지난 게시글로 돌아가기는 번거로울테니 각 Entity는 전체의 내용을 가져왔다. Recipe.java package com.example.recipository.domain; import com.example.recipository.dto.CommentDto; import com.example.recipository.dto.RecipeDto; import lombok.*; import javax.persistence.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import .. 2022. 12. 15.
[Dev] 22.12.15. 게시글의 댓글 작성 게시글 수정과 삭제에 대해 다루기 전에 게시글에 포함될 댓글 출력, 삭제에 대해서 먼저 작업해보고자 한다. 그러기에 앞서서 댓글은 게시글에 포함되는지 여부를 생각해봐야 한다. 게시글과 그에 포함될 link 정보는 N:1 연관 관계로 구성했지만, 댓글은 어떻게 해야할까? 같은 게시글 조회 페이지에 있지만, 댓글을 작성하고 수정하고 삭제하는 것은 게시글 자체의 수정과는 전혀 상관 없는 내용이다. 물론 게시글을 삭제하게 된다면 그 하위에 있는 댓글도 삭제되는 것이 옳지만, 댓글을 작성하고 수정한다고 게시글 자체를 수정하는 것은 옳지 않아보인다. 사전 작업 기존 국비 과정에서의 프로젝트 댓글 구현을 위해서 comment table에 target number와 group number를 setting 했었다. Ta.. 2022. 12. 15.