🥕 querydsl 설정을 통한 Q클래스 작동 및 실행 확인까지. # springboot 2.7.0 build.gradle buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.7.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'war' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } configurations { compileOnly { extendsFrom annotationProcessor } } dependencies { //..
🤢 테스트용으로 인메모리 h2 환경을 조성한다. java 1.8 / springframework.boot 2.7.0 / gradle 테스트용이나, 개인 사이드 프로젝트용으로 쓰는 이유는 데이터를 디스크가 아닌 메모리에 보유하고 있기 때문임. (휘발성을 띄고 있지만, 설정에 따라 파일로 기록 가능하다.) build.gradle dependencies { // https://mvnrepository.com/artifact/com.h2database/h2 implementation group: 'com.h2database', name: 'h2', version: '2.1.212' implementation 'org.springframework.boot:spring-boot-starter-jdbc' } appl..
CP : connection pool Connection의 과부하를 막기 위해 씀. Connection을 미리 만들고 Connection pool 에 두었다가 사용자의 요청이 발생할 경우 Connection을 제공하고, 요청이 끝났다면 다시 Connection pool에 보관한다. DB접속 설정 객체를 미리 만들어 연결하여 메모리 상에 등록해 놓기 때문에 클라이언트가 빠르게 DB에 접속 가능 DB Connection 수를 제한 할 수 있어서 과도한 접속으로 인한 서버 자원 고갈 방지 가능 DB 접속 모듈을 공통화해 DB서버의 환경이 바뀔 경우 쉬운 유지보수 가능 연결이 끝난 Connection을 재사용함으로써 새로 객체를 만드는 비용을 줄일 수 있음 😒HikariCP란 Springboot 2.0 부터 d..
간단한 경우, 와 같은 방법으로도 처리가 된다. 아니라면, 굳이 @Query로 다시 쿼리 쓴다 - > 오타 , 띄어쓰기 등에 의해 에러를 내뱉을 확률이 높아짐. 따라서 Criteria 또는 open source 라이브러리인 QueryDSL을 쓴다면 더 간편하게 JPA를 쓸 수 있다. Criteria는 JPQL을 생성하는 빌더 클래스에 해당한다. 프로그래밍 코드로 JPQL을 작성해준다는 장점이 있다. CriteriaBuilder cb = em.getCriterBuilder(); CriteriaQuery query = cb.createQuery (Member.class); Root m = query.from(Member.class); CriteriaQuery cq = query.select(m).where(..
순차 및 병렬 Aggregate 작업을 지원하는 일련의 요소입니다. 다음 예에서는 Stream 및 IntStream을 사용한 집계 작업을 보여 줍니다. ✍ 자료가 있는 배열이나 컬렉션 또는 특정 범위 안에있는 일련의 숫자를 처리하는 기능이 미리 구현되어있음. ✍ 스트림을 생성하고, 중간 연산 조건을 지정하고, 최종 연산 처리. ✍ 그렇다고 해서, 기존 자료를 변경하거나, 생성된 스트림을 재사용 할 수는 없다. filter - 조건을 넣고 그 조건에 맞는 참인 경우 추출, 문자열 배열이 있을 때 문자열의 길이가 5이상인 경우를 추출한다면 다음과 같다. List sList = new ArrayList(); sList.stream().filter(s -> s.length() >= 5).forEach(s -> ..
✍ 막무가내로 알고리즘 문제를 풀다가 깨달았다. ✍ 내가 스택 이라는 자료구조를 많이 써보지 않았다는 것. 그래서 정리하고 넘어가려고 한다. ✍ 왜 정리하고 알고리즘 문제를 풀려고 하는가? ✍ 여러 자료구조와 알고리즘은 관련성이 크다. ✍ 문제를 풀고싶다? --> 고민한다 --> 무슨 방법으로 풀까 ? --> 이런 컬렉션을 쓰면 좋겠다! ✍ 를 생각하게된다. ✍ 하지만 그냥 구현 할 때 습관적으로 ArrayList를 쓰거나 대충 HashMap을 쓰거나.. ✍ 아닌 경우 TreeMap을 쓰거나 밖에 없다.. 부끄럽다.... 오늘은 크게 나누고 좀 더 세세한 정리를 기록하는 게 낫다고 본다. 크게 보자. 선형 - 비선형이 있다. 선형 : 리스트(llist) / 큐(queue) / 덱(deque) 비선형 : ..
🥕 spring clud config == 설정 파일을 외부로 분리. 사용자의 요청을 받음 - > 사용자의 개인적인 셋팅도 설정 가능은 함. 😒 사용자의 요청이 아닌 상황 -> 서버의 작동 config 설정에 대한 수정 요청 -> 서버 구동 시 필요한 config / xml 파일 / json 파일들의 변경사항 설정 반영. ** 사용자 / 서버 / 관리자 의 요청이 실시간으로 깃허브 등에 반영. 과정이 수행되고 client / application 에서 server가 변경 / 신규 / 수정한 설정의 결과값으로 어플리케이션이 작동해야 의미가 있음. SERVER build.gradle 설정 : : 서버 실행시 GIT에 있는 파일의 위치를 찾았다면! 콘솔에 위와 같은 로그를 찍게 됨. adding propert..