CODE SQUAD/FeedBack 정리

[Review] 2022/06/01 3차 PR (Aribnb 서비스)

샤아이인 2022. 6. 4.

이번 리뷰는 Dion 께서 해주셨다! 리뷰해주셔서 감사합니다 !!

https://github.com/codesquad-members-2022/airbnb/pull/140

 

[Team - 06][BE] 에어비앤비 프로젝트 2주차 1회차 PR by leejohy-0223 · Pull Request #140 · codesquad-members-2022/a

안녕하세요 Dion! 우선 저희 팀의 리뷰를 담당해 주셔서 감사의 인사를 전합니다!! 주요 변경사항으로는 Native Query를 JPQL로 변경한 부분입니다. 수정사항이 많지는 않습니다만, 한 가지 질문이 있

github.com

1. 코드 리뷰

1-1) Spring Actuator

리뷰어 께서 Spring Actuator에 대하여 학습해보길 권해주셨다!

본질적으로, Spring Actuator는 스프링 부트 애플리케이션의 모니터링이나 매트릭(metric)과 같은 기능을 HTTP와 JMX 엔드포인트를 통해 제공한다고 한다!

 

다만 적용은 다음번에 개인 프로젝트를 할때... 우선 이번 프로젝트 구현부터....

 

1-2) Equals HashCode에 대한 고찰

사실 HousesCount 라는 클래스는 단순 DTO 로 사용되는 class 이다.

이런 dto에 equals&hashcode를 구현하라는 리뷰어 님의 의견이 잘 이해되지 않았다.

 

equals&hashcode 는 여러 Collection 들에 저장 될때 "동등성"을 확인하기 위한 용도로 사용된다.

어떤 경우에 구현하는 지 예전에 정리해 둔 글이 있다!

https://blogshine.tistory.com/397

 

[Java] equals, hashCode 를 같이 구현하는 이유

이번글은 "Java에서 equals 와 hashCode를 왜 같이 구현할까?" 라는 의문에 대한 스스로의 답을 정리하는 글 입니다! 1. equals 만 재정의 할 경우 우선 설명에서 사용할 Item class를 살펴보자. public class It..

blogshine.tistory.com

 

하지만 그래도 납득되지 않아 Dion께 집적 DB을 보냈다.

DTO의 값이 같더라도, 주소가 다르면 다른 객체 일까? => 내 생각에는 같은 객체 인것 같다! => equals&hashcode 구현

또한 ValueObject는 단순 값으로 사용하기 때문에 equals&hashcode 를 구현해준다!

 

1-3) Repository에서 DTO를 의존한다?

사실 Repository에서 원칙적으로는 DTO에 의존하면 안된다 생각한다.

다만 특정 view에 종속된 DTO를 바로 받환받을 필요도 있을것 이다.

이럴때 DTO 전용 Repository를 따로 만들어 사용한다면 이점은 가능할것 같다(영한님도 말씀해주신 방법!)

 

 

댓글