HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👏
[3차] 최종 프로젝트 공지 페이지
/
👍🏿
[최종 프로젝트] 선배 개발자와의 소통 일지
/
🛼
팀 01 백엔드 중간 피드백
🛼

팀 01 백엔드 중간 피드백

기입 일자
Aug 8, 2022 06:32 AM
기록 유형
중간 피드백 면담
날짜
Aug 7, 2022
멘토
훈
분야
백엔드

1️⃣ 면담 일지

면담 일시 : 2022. 08. 07
참여 명단
  • 김성현, 이용훈, 이예림, 훈 멘토님

면담 인증 샷

온라인 게더 모임 !
notion image

면담 내용

진행사항

프로젝트 구조 보기
API 보기
Q&A
 
프로젝트 구조(ERD 확인)
  • DB에 MBTI 정보를 다 가지고 있는게 나을 것 같다. (리펙토링을 하면 추가하면 좋을 것 같다.)
    • 프론트에서 mbti를 가지고있지만 그걸 신뢰 할 수 없으니까
  • 대댓글 대신 댓글을 여러개한다음에 시간순으로 보여주는게 나을 수 도있다 → 데이터가 많아지면 성능쪽 문제가 생길수도 있기 때문
 
코드 리뷰(API 보기)
  • 이미지를 가생성으로 받고(방법1 따로), 이미지랑 텍스트를 다같이 받는 법 두가지가 있다.
  • 파라미터랑 본문내용을 구분할 수 있도록 짜자. 괄호를 밑으로 내려서
  • 유의미한 로직이 없으면 status code 하나로 통일하는게 좋을것 같다. (복잡하게 쓸필요가 없다.)
    • 201 & 200 & 204 유의미한 행동을 하지 않는데 다 나눠서 보내줘야하나?
    • 400대 에러 - 모든걸 구분하지 않아도.. api/posts/1 얘를 404로 받아야하나
  • 피드파사드를 만들어서 안에 멤버랑 등등을 넣어서 만드는 식으로 구성을 해도 괜찮았던 코드를 봤다.
  • dto 생성자 자체에 검증 로직을 넣어서 컨트롤러에서 반환할 수 도 있다. view에 던져주기 위한 response dto
  • totalcount를 api로 따로 만들어 한번만 보내줘라 (댓글 totalCount)
  • hasnext대신 nextId값을 넘겨준다. 그리고 화면에서 size가10개인데 8개 넘겨주면 그건 다음이 없는걸로 알고 처리하면 hasnext가 필요없다.
  • 레포지토리 메소드에 soft delete인지 delete인지 표기해라 (changestatusdelete 같이)
  • 지금은 프론트와 함께하니 api 스펙바꾸지말고 내부 리펙토링을 하는게 좋다.
  • querydsl은 where절에 메서드로 동적쿼리를 넣으면 더 깔끔할 것 같다.
  • baseTime이랑 baseEntity랑 나눠서 쓴거 좋은 것 같다.
  • totalElements → size로 그냥 쓰면 될 듯
 
Q&A
예림
  • 댓글이나 좋아요기능에서 포스트가 있는지 validation을 할때
    • 1) 댓글, 좋아요에 연관관계 맺은 포스트를 가져와야할지,
      2) post를 먼저 findbyId로 찾아야할지 → 더 간단하지 않을까? 포스트가 없는 예외 메시지를 날려 줄수도 있으니까
      3) 조인쿼리를 만들어서 한번에 가져오는 방법
  • delete할때 아무것도 보통 안넘겨 주고 204?
    • 프론트에서 받아서 유의미 처리를 하지 않으면 굳이 id를 보내주거나 204를 보내주어 복잡하게 처리 할 필요가 없다.
성현
  • multipart 수정 post로 해도 되나요?
    • 이미지 삭제는 따로 api 빼서 할 수 있을 것 같음.
    • patch put 지원 안하는건 어쩔 수 없음. post로 쓸 수 밖에..
  • soft delete하니까 join 쿼리가 너무 많아지고 repository가 너무 많아져서 이게 맞는건지?
    • 하이버네이트에서 지원하는 where절을 쓸 수 는 있는데, 그럼 안원할때도 다 붙어버려서 흠 어쩔수 없다. (선택 필요)
  • order by가 많아지면 메모리에서 가지고있는게 좋지 않나?
    • 시간측정해서 테스트를 해보는게 나을 듯
    • 정렬까지 굳이? 라는 생각이 들긴한다. (인덱스 잘 걸려있으면 굳이 할 필요는 있을까?)
  • dto라는 이름으로 repository → service 줄 때 써도 되나?
    • 서비스에서 사용하는 쪽은 이름을 좀 바꿔주면 되지 않을까? ~dto라고하는게 여러개층에 쓸 수 있는 포괄적인 의미같다. 서비스에 사용하는거를 이름을 조금 바꾼다던가 하면 될 것 같다.
    • 이름은 조금 고민을 해보세요.
    • 불편함을 느끼면 바꾸기도 하고 그러는듯 !
 
** 멘토님 전달 참고자료 **
  • soft delete
How to implement a soft delete with Hibernate
In some applications, you don't want to, or you are not allowed to permanently remove a record from the database. But you still need to remove or hide records which are no longer active. One example could be a user account which you want to keep because it is linked to other business objects which are still used.
https://thorben-janssen.com/implement-soft-delete-hibernate/
How to implement a soft delete with Hibernate
Hibernate Tips: Permanently remove records when using soft delete
Hibernate Tips is a series of posts in which I describe a quick and easy solution for common Hibernate questions. If you have a question for a future Hibernate Tip, please leave a comment below. I found this question on StackOverflow and thought it's a great fit for the Hibernate Tips series: I want to implement soft deletion, but still be able to delete permanently.
https://thorben-janssen.com/permanently-remove-when-using-soft-delete/
Hibernate Tips: Permanently remove records when using soft delete