해결된 질문
작성
·
205
·
수정됨
0
안녕하세요 수강 중에 질문이 생겼습니다.
현재
게시글 포스트 기능을 구현하고 있습니다를
멤버, 게시글, 댓글 이렇게 DB를 구성하고 각각 엔티티를 만들어서 구현하고 있습니다.
세션에 멤버 엔티티 자체를 저장해서 가져오는 것이 맞는 건지 궁금합니다. 혹은 멤버 엔티티의 pk만 저장하고 select를 날리는 게 맞는 건가요?
댓글을 등록하려면 게시글이 실제 db에 있는지 없는지 조회해야 할 것 같은데, 이러한 게시글 존재 조회 repository로직을 컨트롤러에 놓는게 맞는지 or 서비스(read 트랜잭션이 걸린)에 놓는 것이 맞는지도 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
현재 게시글 포스트 기능을 구현하고 있으시다니, 멋지네요!
세션에 멤버 엔티티 자체를 저장하면 해당 객체의 모든 정보를 가지고 있게 되어 메모리를 많이 차지할 수 있습니다. 따라서 보통은 멤버 엔티티의 pk를 세션에 저장하고 필요한 경우에 select를 날리는 것이 좋습니다.
댓글을 등록하려면 게시글이 실제 DB에 있는지 없는지 조회해야 한다면, 해당 로직은 서비스 레이어에 놓는 것이 좋습니다. 이렇게 하면 컨트롤러에서는 단순히 서비스 레이어의 메소드를 호출하여 원하는 결과를 얻을 수 있고, 비즈니스 로직과 뷰 로직을 분리해서 관리할 수 있습니다.
도움이 되었기를 바랍니다. 좋은 결과물 만드시고, 화이팅하세요! 감사합니다.
AI 의 답변에 추가하면,
답글을 단다는 액션은 이미 기존 글이 있어야 가능합니다.
그러니 기존 글이 데이터베이스에 있는지 없는지를 확인하는 부분이 필요한지를 고민해봐야 합니다 :)
답글을 다는 사이에 원본글이 삭제된 경우를 확인하고 싶은거라면 서비스 레이어에서 유효성을 검증하시는 것이 좋을것 같습니다.
감사합니다.