Post

TIL(20240711) [InnerJoin과 fetchJoin, Transactional Read only?]

TIL(20240711) [InnerJoin과 fetchJoin, Transactional Read only?]

MySQL cmd가 어떤 부분에서 잘못되었는지 삭제하고 재설치를 했다. 그래서인지 postman으로 카드 기능테스트가 더 늦어졌다. ㅎㅎ; docker까지 문제가 있다..

프로젝트가 끝나면……. 기나긴 싸움이 시작되겠구나..

📌 InnerJoin과 fetchJoin

  • innerJoin은 주로 두 엔티티 간의 조인을 통해 특정 조건에 맞는 데이터를 가져오는 데 사용되며, 연관된 엔티티의 모든 데이터가 필요할 경우에는 추가적인 처리가 필요할 수 있다.

  • fetchJoin은 연관된 엔티티의 데이터를 한 번의 쿼리로 함께 가져오는 데 유용하고 특히 지연로딩(Lazy Loading)으로 인한 성능 문제를 해결하거나, 연관된 엔티티의 데이터가 필요한 상황에서 사용된다.(Eager같은 개념)


현재 진행중인 프로젝트가 끝나면 MSA방식을 공부해보려고 한다.

CI/CD에 최적화?되어있는 microSevice 아키텍쳐 이때까지 내가 했던 프로젝트의 대부분은 monolith방식이었다면, 앞으로는 microService아키텍쳐 방식으로 기능구현을 해보고싶다는 생각이 들었다.

💡 Monolith vs MicroSevices

  • 아키텍쳐에서 그 차이점이 나뉜다. image

오늘 공부 내용이 조금 뒤죽박죽이긴 하지만 평소에 공부해보고 싶었고 개념이 흐렸던 부분에 대해서 메모했던 부분들에 대해서 공부를 해보았다. 그러던 체크를 하던 와중에 갑자기 생각난 부분이 @transactional readOnly = true 였다.

💡 @transactional readOnly = true

  • 데이터베이스 트랜잭션에 사용되는 옵션
  • 트랜잭션내에서 데이터를 읽기전용으로만 사용하겠다라는 의미
  • 즉, 데이터를 변경하지 않고 조회만 할 필요가 있을 때 해당 옵션을 사용한다. (getmapping)
  • 해당 옵션을 사용할 경우 읽기 전용 작업에 대해 성능을 최적화 할 수 있다.(왜냐하면 읽기전용 트랙잭션을 위해 필요한 추가적인 로그 기록이나 동기화 작업을 수행하지 않아도 되기 때문에)

This post is licensed under CC BY 4.0 by the author.