TIL

2021.08.26 기록장

Gisungcu 2021. 8. 25. 23:52

ToDo

  • 토이 프로젝트
  • 책 읽기

Done

  • 토이 프로젝트

Weekly goal

  • 책 읽기

jpa에서는 메서드 이름으로 쉽게 sql쿼리를 날릴 수 있다.

예로 exists를 통해 원하는 조건이 있는지 쉽게 알 수 있다.

근데 많은 조건이 붙으면 지저분해지기에 직접 쿼리 작성을 많이 한다.

근데 count쿼리로 많이 날리는데 이는 좋지 않다. count는 풀스캔을 해야 하고 exists는 첫 조건만 확인하니까.

 

https://jojoldu.tistory.com/516

 

JPA exists 쿼리 성능 개선

Spring Data Jpa를 사용하다보면 해당 조건의 데이터가 존재하는지 확인 하기 위해 exists 쿼리가 필요할때가 많습니다. 간단한 쿼리의 경우엔 아래와 같이 메소드로 쿼리를 만들어서 사용하는데요. b

jojoldu.tistory.com

thymeleaf를 사용하는데 많은 장점이 있다.

예로 동적으로 action이나 id값을 쉽게 변경할 수 있다는 것이다. 

review id에 따라 div의 id값과 함수 호출시의 아규먼트 값을 쉽게 변경할 수 있다.

 

https://stackoverflow.com/questions/32650536/using-thymeleaf-variable-in-onclick-attribute/52960571#52960571

 

 

토이 프로젝트를 하면서 고민했던 점은 util로 뺄 수 있는 class를 serivce로 두는 이유에 대해서와 객체의 책임은 누구에게 줘야 하는지 이다.

 

전자는 변경이 되지 않는다고 확정적으로 생각하면 util로 뺄 수 있을 것이고 , 변경이 나중에 생길 수 있다면 ( ex.point 정책 ) service로 둬서 다형성을 활용하는 것이다.

 

후자는 특정 작업을 해주는 service가 있을 때 모든 권한을 그 service에 넘겨야 하는지 아님 객체에게 일부 책임을 할당해야하는지에 대한 고민이었다.

object에 보면 정보 전문가(책임을 수행하는데 필요한 정보를 많이 가지고 있는)에게 할당하라는 말이 기억나, 객체에게 넘기기로 했다.