2023.07.09.SUN

ronglong·2023년 7월 9일
0
  • querydsl 우아콘 강의

    • https://www.youtube.com/watch?v=zMAX7g6rO_Y

    • JpaQueryFactory DI 하여 상속, 구현 없애고 간단히

    • select문에서 exist 사용 금지(querydsl에서는 count 사용되어 성능 저하).
      -> 대신 직접 구현하기. limit 이용.

    • cross join 회피 for 성능

    • 변경 필요시 Entity, 대량 조회시 DTO 활용

    • OneToOne 관계는 Lazy 로딩이 되지 않아 N+1 문제 무조건 발생

    • MySQL에서 group by 실행하면 인덱스 아닌 경우 filesort 무조건 발생.
      -> order by null 이용하면 filesort 지워지나, querydsl에서는 order by null 지원 안 함.
      -> 직접 구현

    • 커버링 인덱스 : 쿼리에 사용되는 모든 컬럼이 포함된 인덱스. 페이징 성능 향상.

    • 더티 체킹 : 실시간 단건 처리시 / querydsl update : 대량 데이터 일괄 update 처리시

    • JPA로 bulk insert 자제할 것.

    • querydsl != querydsl-JPA

  • querydsl gradle 환경 설정
    https://ittrue.tistory.com/293

  • MySQL 8.0.31 버전 이상부터는 gradle 설정이 하나 따로 필요하다.
    안 그러면 yml에서 DB연결할 때 컴파일 에러 남.
    https://velog.io/@minbo2002/JPA-application.yml-%EC%84%A4%EC%A0%95

  • querydsl 사용 방법 3가지
    https://batory.tistory.com/496

[ Auto Program ]

  • 맨 처음에는 서비스를 DI해서 사용하려 했으나, service가 null이라며 nullPointerException 떴다.
    구글링 후 new 연산자를 통해 객체를 생성하고 실행시키니 해결되었음.

  • Calendar 컴포넌트 이용하여 월의 말일 구하기
    https://dpdpwl.tistory.com/111

[ 느낀 점 ]

아무리 간단한 프로그램이라고 해도 하루 안에 다 만들기는 무리였군,,ㅎ

서비스 부분 작성하느라 아직 쿼리 dsl 작성은 시작도 못했다.
인터넷 보고 환경 설정만 해둠.
서비스 로직 마저 작성하고, 테스트 코드까지 작성하려면 틈틈이 부지런히 해야겠다.

자발적으로 뭔가 만들어야겠다고 생각하고 만들어보는 건 처음이라서 스스로가 대견하다.
암튼 덕분에 오늘 커밋 10개 해서, 오랜만에 잔디 심었다.
잔디 채우고 싶은데, 회사 다니는 평일 저녁에는 운동하느라 바쁨,,
뭐든 하려면 체력이 제일 중요하니까★

그래도 개발 마감 기한을 정해두면 좋을 것 같다.
일단 16일로 잡아볼까 생각 중이고,
다음 화요일 저녁, 금요일 저녁과 주말에 힘내보면 가능할지도,,

0개의 댓글