분류 전체보기 (160) 썸네일형 리스트형 리눅스 공부 2 - 링크파일을 환경변수 디렉토리에 생성 리눅스에서 링크파일은 윈도우에서 실행파일을 가르키는 바로가기 아이콘과 같은 역할을 한다 . 링크파일은 실제 실행파일과 연결되어 링크파일을 통해 실행파일을 실행하게 할 수도 있다. ln 명령어를 통해 링크파일을 생성할 수 있다. 링크파일에는 2가지 종류가 있는데 symbolic link 와 hard link가 있다 symbolic link는 말 그대로 원본을 가르키고 있는 단축아이콘 같은 개념이고 별도의 링크파일이 생성된다 symbolic link 생성예) ln -s test1.txt test1.ln -symbolic link인 경우 -s 실행파일명 링크파일명으로 생성한다. hard link는 별도의 파일이 생성되는 것이 아니라 파일의 별칭을 지정하는 것이다 같은 파일에 이름이 2개가 된다고 생각하면 된다.. 리눅스 공부 1 - 리눅스 파일편집기와 기본적인 명령어들 파일 편집기 vi vi 기본적인 명령어 리눅스 환경에서 vi +파일명 엔터를 치면 편집기가 나온다 ~ 표시가 먼저나오는데 명령어로 어떤 동작을 수행할 것인지 먼저 알려줘야한다 i 는 insert를 의미한다. i를 누르면 원하는 내용을 작성할 수 있다. esc 키를 누르면 편집모드에서 명령모드로 전환되고 작성한 내용의 저장을 원한다면 : w를 치고 vi 에서 나오고 싶다면 : q를 친다 명령 모드에서 커서의 위치를 화살표키로 움직일 수 있고 H(좌) J(상) K(하) L(우) 로도 움직일 수 있다 . 원하는 곳에 커서를 두고 그곳에서 변경을 원한다면 a를 누르면 된다. 원하는 곳 다음 줄에서부터 작성을 하고싶다면 o를 누르면 된다. yy 는 한줄 복사 yw 는 한단어 복사 yl 은 문자하나 복사 p는 붙혀.. QueryDSL 공부 11 - Spring data JPA 와 Querydsl 페이징 연동 Spring Data 의 Pageble 과 Page를 Querydsl과 함께 사용하는 것을 알아보려 한다. 간단한 방법과 성능최적화를 위한 방법 두가지 방법을 알아보자 public interface MemberRepositoryCustom { Page searchPageSimple(SearchCond searchCond, Pageable pageable); Page searchPageComplex(SearchCond cond, Pageable pageable); } 사용자 정의 리파지토리이다, SpringData에서 Pageable은 페이지 요청에 대한 데이터를 담을때 사용하는 인터페이스이다. 응답할때는 Page를 사용한다. 위의 두 메서드를 구현하는 구현클래스이다 @RequiredArgsConstruc.. QueryDSL 공부 9 - 동적쿼리 성능 최적화 (Builder 와 where 절 동적쿼리) 이전에 BooleanBuiler와 where 절 을 통해 동적쿼리를 만드는 방법을 알아 봤었는데 실제 repository에서 동적 쿼리와 Dto 조회를 함께 사용하는 방법을 알아보자 일단 두가지 방법에 공통적으로 사용될 검색 키워드를 담을 SearchCond 라는 Dto와 반환되는 데이터를 담을 MemberTeamDto를 만들었다 MemberTeamDto @Data public class MemberTeamDto{ private Long memberId; private int age; private String username; private String teamName; @QueryProjection public MemberTeamDto(Long memberId, int age, String usern.. QueryDSL 공부 10 - Spring data JPA 에서 QueryDsl활용 Spring data JPA는 인터페이스로 동작하기 때문에 직접 구현 코드를 작성해서 사용하려면 사용자정의 인터페이스를 만들어 구현해야한다. MemberRepository package com.querydsl.study.repository; import com.querydsl.study.domain.Member; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; public interface MemberRepository extends JpaRepository ,MemberRepositoryCustom{ List findByUsername(String username); } 먼저 Spring data J.. QueryDSL 공부 8 - Repository에서 활용 지금까지는 Test 코드로만 QueryDs을 사용했는데 실제 Repository에서 사용해보려 한다 . 비교를 위해 JPQL로 만든 repository 메서드와 querydsl로 만든 메서드를 비교해보자 먼저 리파지토리에 JPAQueryFactory를 등록하는 2가지 방법을 알아보자 1. 생성자에서 직접 생성하여 주입 @Repository public class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) { this.em = em; this.queryFactory = new JPAQueryFac.. QueryDSL 공부 7 - 수정 , 삭제 벌크성 쿼리 JPA에서는 주로 변경감지(dirty checking)을 통해 데이터의 update 가 일어나는데 이 경우에는 개별 엔티티에 대해서 건마다 쿼리가 나가기 때문에 쿼리 한번으로 대량 데이터를 수정할 때는 벌크연산을 사용한다 . QueryDsl에서 벌크연산 하는 방법을 알아 보자 1. 모든엔티티의 특정 컬럼을 변경하고 싶을때 @Test public void bulk_update(){ long count = qf .update(member) .set(member.username, "비회원") .where(member.age.lt(20)) .execute(); em.flush(); em.clear(); List fetch = qf.selectFrom(member).fetch(); for (Member membe.. QueryDSL 공부 6 - 동적쿼리 (booleanBuilder) QueryDsl 에서 동적 쿼리를 해결하는 두가지 방식 - BooleanBuilder -where절에 조건으로 사용 1. BooleanBuilder 를 통한 동적 쿼리 private List searchMember1(String usernameParam, Integer ageParam) { BooleanBuilder builder = new BooleanBuilder(); if(usernameParam != null){ builder.and(member.username.eq((usernameParam))); } if(ageParam != null){ builder.and(member.age.eq((ageParam))); } return qf .selectFrom(member) .where(builder).. 이전 1 ··· 3 4 5 6 7 8 9 ··· 20 다음 목록 더보기