2023.03.20.MON

ronglong·2023년 3월 20일
0

[ 메인 프로젝트 ]

  • DB index
    • 데이터 빠르게 찾기 (소거법)
      • 예시) 1~100 에서 숫자 하나 찾을 때
    • 인덱스 : 복사해서 '정렬해 둔' 컬럼 (DB 용량 차지)
      • 데이터 변경은 성능이 좀 떨어지고, 검색 성능은 올라감.
      • Single Block I/O 기반으로, 소량 데이터 읽을 때 좋음.
    • B-tree : 바이너리 서치 트리에서 노드마다 데이터를 하나만 넣는 게 아니라 여러 개.
    • B+tree : 가장 아래 노드에만 데이터 저장. 윗 노드에는 데이터 검색 가이드만 제공. 데이터끼리도 정렬되어 연결되어 범위 검색 가능.
    • 유튜브 <애플코딩> 인덱스 설명
      https://www.youtube.com/watch?v=iNvYsGKelYs
  • MySQL DB 엔진
    • 종류 : MyISAM(default) , InnoDB(이노DB)
      • MyISAM : Read only (Select) 기능이 많은 서비스에 적합, 풀텍스트 인덱스를 지원하므로 row가 많아지면 느려짐.
      • InnoDB : 트랜잭션 지원 (트랜잭션 세이프 스토리지 엔진), 데이터 변화가 많은 대용량 서비스에 적합
    • https://rebeccajo.tistory.com/14
  • Query DSL (오픈소스 프레임워크(라이브러리))
    • build.gradle 파일에 의존성 추가하여, 쿼리 커스텀 작성 편하게 가능
    • JPQL 쿼리를 java 코드로 작성 가능
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"

def querydslDir = "$buildDir/generated/querydsl"

querydsl { 
	jpa = true
	querydslSourcesDir = querydslDir
}

sourceSets { 
	main.java.srcDir querydslDir
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
	querydsl.extendsFrom compileClasspath
}

compileQuerydsl { 
	options.annotationProcessorPath = configurations.querydsl
}
  • Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
    Caused by: java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain
    에러
    배포 시 빌드할 때, 래퍼 클래스 없어서 나는 에러.
    https://bkjeon1614.tistory.com/653

0개의 댓글