일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- SpringBoot
- ec2
- 머신러닝
- Mac
- 젠킨스
- Zeppelin
- Redis
- Cluster
- 로그인
- config
- Docker
- EMR
- fastcampus
- gradle
- Jenkins
- aws
- 자동
- hive
- 예제
- 설정
- 클러스터
- redash
- java
- 간단
- Kafka
- vue
- 자바
- login
- 레디스
- spring
- Today
- Total
목록분류 전체보기 (194)
코알못
Maven, Tomcat, IntelliJ 설정 및 활용법1. Maven package와 install의 차이공통점두 명령어 모두 소스 코드를 컴파일하고 JAR 파일을 생성한다.차이점mvn package : 프로젝트를 빌드하고, 타겟 디렉토리에 .jar 또는 .war 파일을 생성한다.mvn install : package 단계까지 수행한 후, 생성된 JAR/WAR 파일을 로컬 저장소(~/.m2/repository)에 저장한다.2. Maven과 Gradle의 로컬 저장소 경로Maven: ~/.m2/repositoryGradle: ~/.gradle/cachesMaven과 Gradle은 의존성을 다운로드할 때, 먼저 로컬 저장소에서 찾고, 없을 경우 원격 저장소에서 가져온다.3. Tomcat을 여러 개 띄우는..

이번 시간에는 기본 문법 중 fetchjoin 사용 방법 , cese, 상수문자 더하는 방법을 알아보자! 우선 테스트를 위해 테스트 코드가 실행 되기전 초기 데이터 셋팅하는 코드를 작성 한다. @BeforeEach public void testEntity(){ query = new JPAQueryFactory(em); Team teamA = Team.builder() .name("teamA") .build(); Team teamB = Team.builder() .name("teamB") .build(); em.persist(teamA); em.persist(teamB); Member member1 = Member.builder() .username("member1") .age(10) .team(teamA..

이전 작성글에 이어서 진행해보도록 하자! 이번 시간에는 querydsl 기본 문법에 대해 알아볼예정이다! 우선 기본 데이터 생성하는 부분을 @BeforeEach 어노테이션을 달아서 테스트 코드 실행전에 해당 코드가 실행 되도록 하며 JPAQueryFactory를 상단에 정의 하여 다른 테스트 코드에서도 사용 할 수 있도록 한다. package study.querydsl.entity; import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.ju..

Spring Data JPA 에서는 복잡한 쿼리 작성시 @Query 어노테이션을 이용하여 직접 문자열로 쿼리 작성 하였으며 동적 쿼리 작성시 JPA Specification 기능을 이용하여 작성 해야 하나 난이도도 있고 조건에 따른 메소드를 계속적으로 만들어야 한다. 이런 복잡한 쿼리나 동적 쿼리를 쉽게 작성할 수 있는것이 바로 QueryDSL 이며 다른 장점으로는 자바 코드이기에 문법 오류를 컴파일 시점에서 알 수 있다. 이제 실제로 장점을 차근차근 이용해보면서 알아보도록 하자! 우선 프로젝트를 생성해보자! 해당 사이트로 들어가 프로젝트를 생성한다. https://start.spring.io/ 위와 같이 선택하고 Dependncies의 ADD를 눌러 필요한 라이브러리를 추가하고 빨간 박스를 클릭하여 프..

Jpa 관련 어노테이션 중 알고 가야하는 어노테이션에 대해 정리 하였다. 어노테이션 설명 @Repository JPA 예외시 JPA Exception이 아닌 스프링이 정의한 공통 예외로 나가 공통 예외 처리가 가능하다. @Transactional 트랜젝션 적용으로 JPA 의 모든 변경 동작은 트랜젝션 안에서 동작해야하여 꼭 @Transactional 을 사용하는 클래스에서 선언해야 동작 하나 Spring Data JPA는 레파지토리 내에서 @Transactional 처리를 했기에 없어도 처리 가능하다. @Transactional(readOnly = true) 읽기 전용이기에 flush를 안해서 성능 향상 이점이 있다. 이제 Save 에 대해서 알아보자! Spring Data Jpa Save 로직을 한번 ..

우리는 아래 확장 기능을 알아볼예정이다! 사용자 정의 repository Auditing web domain class converter web paging/sort 사용자 정의 repository 만약에 Spring Data JPA repository를 사용하다가 쿼리 메소드 기능 이외에 다른 기능이 필요하다면 JpaRepository interface를 모두 상속받아 구현해야한다. 모두 구현하지 않고 확장 할 수 있는 기능을 Spring Data JPA에서 제공한다. 확장할 코드를 구현할 인터페이스를 다중 상속하는 방식으로 명칭 규칙을 지키면 알아서 Spring Data JPA 가 해당 인터페이스를 상속하고 명칭이 맞는 클래스를 찾아 확장한 메소드를 실행한다. 우선 실제 확장할 코드가 들어갈 클래스명..

Spring Data JPA 의 쿼리 메소드, JPQL, Paging, 벌크성 쿼리 제출 방법, @EntityGraph, JPQL fetch join, JPA Hint, Lock 대해서 알아보자! 우선 쿼리를 제출하는 방법은 세가지가 있다. 메소드 이름으로 쿼리 생성 JPA Named Query JPQL 예시를 보며 차근차근 보자! 1. 메소드 이름으로 쿼리 생성 @Repository public class MemberJpaRepository { @PersistenceContext private EntityManager em; public List findByUsernameAndAgeGreaterThan(String username, int age){ return em.createQuery("select..

이번에는 스프링 Data JPA를 이용하여 CRUD를 실습 해보도록 하자! 그 전에 스프링 Data JPA 가 주는 이점을 확실하게 알 기 위해 순수 JPA 기반 repository 만들고 스프링 데이터 JPA 공통 인터페이스를 사용하여 만들어 보도록 하자! 순수 JPA 기반 Repository를 아래와 같이 만든다. TeamRepository.java package study.datajpa.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Repository; import study.datajpa.entit..