전체 글 95

QueryDSL 쪄먹기

querydsl JPA와 querydsl querydsl 시작하기 EntityManager와 JPAQueryFactory를 주입/생성한다. private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) { this.em = em; this.queryFactory = new JPAQueryFactory(em); } @Bean JPAQueryFactory jpaQueryFactory(EntityManager em) { return new JPAQueryFactory(em); } 위처럼 직접 Constructor를 작성해도 좋고, 아래처럼 스프링 컨테이너가 ..

스프링 2023.10.23

QueryDSL 볶아먹기

QueryDSL 프로젝션과 반환 프로젝션이란? 질의하는 대상이다. select member.name from member처럼 간단한 질의의 프로젝션은 String, 하나의 타입만을 가진다. 물론 select member from member 역시 하나의 타입, Member를 가진다. 두 개 이상의 타입을 가지면 querydsl에서 제공하는 Tuple 타입을 사용하게 된다. Tuple타입을 persistence layer 이외에서 사용하는 것은 좋지 않다. 이를 변환할 DTO를 정의하여 사용한다. DTO 조회 그럼 이제 DTO로 조회하는 법을 알아보자. 순수 JPA 순수 JPA로 작성하면 다음과 같다. List result = em.createQuery( "select new study.querydsl.d..

스프링 2023.10.22

QueryDSL 먹어버리기

QueryDSL 특징 자바 코드로 query를 보낼 수 있다. -> 컴파일 과정에서 문법 오류를 발견할 수 있다. 세팅 build.gradle plugins와 queryDSL이 자동으로 생성하는 디렉토리 경로 plugins { id 'org.springframework.boot' version '2.2.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' } //querydsl 추가 시작 def querydslDir = "$buildDir/generated/querydsl" querydsl..

스프링 2023.10.20

자바 인 액션 실전 요약 (2) Ch. 3 람다 표현식

자바 인 액션 실전 요약 Ch 3. 람다 표현식 주니어인 내가 당장 알아야하는 챕터만으로 정리했다. 병렬 처리와 프로그래밍의 역사적 흐름과 같은 내용은 제외했다. 최대한 책의 내용을 그대로 요약하려 노력했고 내 의견은 기울여서 표현했다. 예제 코드는 내 프로젝트에서 따오거나 직접 작성한 코드들이다. Chapter 3 람다 표현식 람다란? 메서드로 전달할 수 있는 익명 함수를 단순화한 것 참고로 람다라는 용어는 다음과 같다고 한다. "람다 표현식"에서의 "람다"는 람다 대수(lambda calculus)에서 유래한 용어입니다. 람다 대수는 함수 정의와 함수 응용을 기술하는 형식적인 언어로, 수학적인 논리와 계산 이론에서 사용됩니다. 이 용어는 프로그래밍 언어에서도 채택되었고, 특히 함수형 프로그래밍 언어에..

자바 2023.10.19

자바 인 액션 실전 요약 (5) Ch 12. 새로운 날짜와 시간 API

자바 인 액션 실전 요약 Ch 12. 새로운 날짜와 시간 API 주니어인 내가 당장 알아야하는 챕터만으로 정리했다. 병렬 처리와 프로그래밍의 역사적 흐름과 같은 내용은 제외했다. 최대한 책의 내용을 그대로 요약하려 노력했고 내 의견은 기울여서 표현했다. 예제 코드는 내 프로젝트에서 따오거나 직접 작성한 코드들이다. Chapter 12 새로운 날짜와 시간 API 자바 8 이전 버전에서 제공하는 java.util.Date 클래스는 여러 결함이 존재했다. java.time 패키지는 LocalDate, LocalTime, LocalDateTime, Instant, Duration, Period 와 같은 새로운 클래스를 제공한다. 다음은 LocalDate와 LocalTime의 간단한 예시이다. LocalDate ..

자바 2023.10.17

자바 인 액션 실전 요약 (1) Ch 1 ~ 2 자바와 동적 파라미터화

자바 인 액션 실전 요약 Ch 1 ~ 2 자바와 동적 파라미터화 주니어인 내가 당장 알아야하는 챕터만으로 정리했다. 병렬 처리와 프로그래밍의 역사적 흐름과 같은 내용은 제외했다. 최대한 책의 내용을 그대로 요약하려 노력했고 내 의견은 기울여서 표현했다. 예제 코드는 내 프로젝트에서 따오거나 직접 작성한 코드들이다. Chapter 1 자바에서 무슨 일이 일어나고 있을까? 자바 8은 람다와 스트림 API로 간결한 코드를 구현할 수 있도록 지원한다. 람다는 Ch. 3, 스트림 API는 Ch. 4 ~ 6에서 자세한 내용을 확인할 수 있다. 프로그래밍 언어의 핵심은 값을 변경하는 것이다. 그리고 우리는 이 값을 "일급 값"이라고 한다. 반면에 인스턴스화하여 전달하는 값인 메서드, 클래스를 이급 값 이라 한다. 자..

자바 2023.10.17

코딩 테스트 요약본

코딩 테스트 준비하면서 핵심 요약 파이썬으로 준비합니다. 많은 부분을 나동빈님 저자, 이것이 취업을 위한 코딩 테스트다 with Python 를 참고하였습니다. 외워야할 것 들 import sys input = lambda: sys.stdin.readline().rstrip() sys.setrecursionlimit( LIMIT ) from collections import deque from itertools import combinations, permutations import math math.ceil() math.floor( NUMBER + 0.5 ) # 반올림 import heapq q = [] heapq.heappush(q, NUMBER) n = heapq.heappop(q) arr = AR..

알고리즘 2023.10.13

[소마] 젠킨스로 CI/CD 구현하기 - (2) 젠킨스 빌드 유도부터 배포 완료

젠킨스 빌드부터 배포 완료 안녕하세요. 이전 포스팅에 이어서 젠킨스로 배포하기 마무리하겠습니다.아래 포스팅을 요약하자면 젠킨스 설치부터 플러그인 설치, Github과 deploy instance 접근 설정을 했습니다. 젠킨스로 CI/CD 구현하기 - (1) 설치부터 배포 ec2와 연결, plugin젠킨스 설치부터 deploy ec2와 연결, plugin 설정 안녕하세요. 오늘은 젠킨스로 CI/CD 구축하겠습니다. 설치부터 ssh로 private repository와 연결, plugin 설치, node js 설정까지 진행하겠습니다. 목표 react와 sprjujemu.tistory.com 1. 백엔드 repository item 등록 Dashboard에서 item 생성으로 들어갑니다. Github repo..

프로젝트 2023.09.29