DBMS
-
Redis 스프링부트에서 Redis 사용DBMS/Redis 2024. 9. 16. 22:54
Redis 스프링부트에서 Redis 사용 스프링 부트의 캐시는 대부분 JSR-107을 따른다.JSR(Java Specification Requests)은 자바에 대한 기술적 기능에 대한 스펙들을 정의해놓은 것이다.JSR-107은 그 중에서 캐시에 대한 것들을 다루고 있다.JSR-107을 따르는 캐시를 사용하면 어떤 구현체를 사용하든 상관없이 추상화를 지원해준다. 제목처럼 오늘 사용할 것은 Redis인데,in-Memory DB이면서,비정형 데이터를 다루는 오픈소스 NoSQL이다. in-Memory하드디스크나 SSD가 아닌 RAM에 데이터를 올려서 사용한다.저장, 조회 시에 하드디스크를 거치지 않아도 되서 속도가 빠르다. 비정형 데이터정의된 구조가 없이 정형화되지 않은 데이터대표적으로 동영상, 오디오, ..
-
Redis 설치 및 간단한 동작DBMS/Redis 2024. 9. 9. 00:59
Redis 설치 및 간단한 동작 여태 개발 공부하면서 참 많이 들어온 Redis한 번도 안써봐서 드디어 한 번 써본다.근데 돈은 없으니까 최대한 돈 안쓰는 걸로 한다. 1. ec2 이용aws 콘솔에 회원가입 후에 들어가자.ec2를 검색하고,ec2 > 인스턴스 > 인스턴스 시작 순으로 이동한다. 설정은 순서대로이름 : study-redis애플리케이션 및 AMI : ubuntu 22.0.4 LTS인스턴스 유형 : t2.micro키페어 : 새 키페어 생성 > 이름 아무거나(난 main), RSA, .pem > 키 페어 생성네트워크 설정 : 초기상태 그대로스토리지 구성 : 15GIB 이 상태로 인스턴스 시작 버튼 클릭 git bash를 키자(맥은 터미널, 윈도우는 따로 설치해야 한다고 한다.) 순서대로 ..
-
JPA QueryDSL 프레임워크 - 4 스프링 데이터 JPA와 QuerydslDBMS/JPA 2024. 8. 20. 04:57
JPA QueryDSL 프레임워크 - 4 스프링 데이터 JPA와 Querydsl 1. 스프링 데이터 JPA 리포지토리로 변경 스프링 데이터 JPA - MemberRepository 생성public interface MemberRepository extends JpaRepository { List findByUsername(String username);}Querydsl 전용 기능인 회원 search를 작성할 수 없다.사용자 정의 리포지토리 필요 2. 사용자 정의 리포지토리 사용자 정의 리포지토리 사용법 1. 사용자 정의 인터페이스 작성2. 사용자 정의 인터페이스 구현3. 스프링 데이터 리포지토리에 사용자 정의 인터페이스 상속 2 - 1. 사용자 정의 리포지토리 구성 2 - 2. 사용자 정의..
-
JPA QueryDSL 프레임워크 - 3 순수 JPA와 QueryDSLDBMS/JPA 2024. 8. 20. 04:43
JPA QueryDSL 프레임워크 - 3 순수 JPA와 QueryDSL 1. 순수 JPA 리포지토리@Repositorypublic class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) { this.em = em; this.queryFactory = new JPAQueryFactory(em); } public void save(Member member) { em.persist(member); } public Optiona..
-
JPA QueryDSL 프레임워크 - 2 중급 문법DBMS/JPA 2024. 8. 20. 04:27
JPA QueryDSL 프레임워크 - 2 중급 문법 1. 프로젝션과 결과 반환 - 기본프로젝션: select 대상 지정 프로젝션 대상이 하나List result = queryFactory .select(member.username) .from(member) .fetch(); 튜플 조회프로젝션 대상이 둘 이상일 때 사용com.querydsl.core.TupleList result = queryFactory .select(member.username, member.age) .from(member) .fetch();for (Tuple tuple : result) {String username = tuple.get(member.us..
-
JPA QueryDSL 프레임워크 - 1 소개, 기본 문법DBMS/JPA 2024. 8. 20. 04:11
JPA QueryDSL 프레임워크 1. 예제 도메인 모델1 - 1. Member@Entity@Getter @Setter@NoArgsConstructor(access = AccessLevel.PROTECTED)@ToString(of = {"id", "username", "age"})public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; ..
-
JPA 스프링 데이터 JPA (Spring Data JPA) - 3DBMS/JPA 2024. 8. 14. 08:44
스프링 데이터 JPA (Spring Data JPA) - 3 1, 2에서 주요 기능들은 전부 설명했다. 자주 쓰이진 않지만 일단 소개해둘 기능들이 있어서 간단하게 요약만 하겠다. 1. Specifications (명세)책 도메인 주도 설계(Domain Driven Design)는 SPECIFICATION(명세)라는 개념을 소개스프링 데이터 JPA는 JPA Criteria를 활용해서 이 개념을 사용할 수 있도록 지원*별로 추천하지 않는 기능* 술어(predicate) 참 또는 거짓으로 평가AND OR 같은 연산자로 조합해서 다양한 검색조건을 쉽게 생성(컴포지트 패턴)예) 검색 조건 하나하나스프링 데이터 JPA는 org.springframework.data.jpa.domain.Specification ..
-
JPA 스프링 데이터 JPA (Spring Data JPA) - 2DBMS/JPA 2024. 8. 13. 23:53
스프링 데이터 JPA (Spring Data JPA) - 2 앞선 내용들을 기반으로 페이징부터 다양한 기술들을 다뤄보겠다. 1. 순수 JPA 페이징과 정렬다음 조건으로 페이징과 정렬을 사용하는 예제 코드를 보자.검색 조건: 나이가 10살정렬 조건: 이름으로 내림차순페이징 조건: 첫 번째 페이지, 페이지당 보여줄 데이터는 3건 JPA 페이징 리포지토리 코드public List findByPage(int age, int offset, int limit) { return em.createQuery("select m from Member m where m.age = :age order by m.username desc") .setParamete..