728x90 반응형 분류 전체보기279 [Redis] Redis란? 무엇이며 언제 사용하는지. 메모리 기반의 데이터 저장소로서, 데이터를 빠르게 읽고 쓸 수 있는 비관계형 데이터베이스이다. "REmote DIctionary Server"의 약자로, 키-값 구조를 사용하여 데이터를 저장하고 검색한다. 등장 배경 Redis는 2009년에 Salvatore Sanfilippo에 의해 개발되었다. 당시, 메모리 가격이 비싸고 디스크 I/O 속도가 느렸기 때문에, 실시간 응답이 필요한 웹 애플리케이션에서는 데이터베이스에서 데이터를 가져오는 것이 부담스러운 문제였다. 이에 대한 해결책으로 Redis는 데이터를 메모리에 저장하여 빠르게 응답할 수 있도록 하였다. In-memory Database : 특징 데이터 타입 다양성: Redis는 다양한 고유 데이터 타입(String, List, Hash, Set 등).. 2023. 10. 2. [Kafka] Kafka란? 무엇인가 Kafka는 대용량 데이터 스트림을 효율적으로 처리하는 분산 메시지 큐 시스템으로, 실시간 데이터 스트리밍을 지원한다. Kafka는 LinkedIn에서 개발된 오픈 소스 스트리밍 플랫폼으로, 대용량의 실시간 데이터 스트림을 효과적으로 처리하기 위해 만들어졌다. 스트리밍 플랫폼: 실시간으로 데이터를 수집, 처리, 저장 및 전달하는 시스템. 특징 고성능 및 확장성: 대용량 데이터 스트림을 처리하기 위해 설계되어 있으며, 수천 대의 머신에서도 운영 가능하다. 내고장성: 여러 브로커로 데이터를 복제하여 데이터 손실을 방지하고, 장애 발생 시에도 지속적으로 운영된다. 유연한 메시징 시스템: 다양한 프로듀서 및 컨슈머 언어로 작성된 애플리케이션 간에 데이터를 신속하게 전달한다. 저지연: 실시간 데이터 처리를 위해 .. 2023. 10. 2. [JPA] QueryDSL이란? QueryDSL은 JPA를 사용하여 데이터베이스 쿼리를 작성하고 실행하기 위한 유용한 도구이다. QueryDSL을 사용하면 Java 코드로 쿼리를 작성할 수 있어서, 컴파일 타임 오류확인 및 IDE의 자동완성 기능을 사용할 수 있다. QueryDSL?: JPA Entity와 관련된 쿼리를 생성하기 위한 builder 라이브러리이다. SQL을 직접 작성하는 대신, Java 코드를 사용하여 query를 작성할 수 있다. Entity와 Q타입: Entity의 메타 모델을 사용하여 query를 작성하기 때문에 Entity클래스에 대응하는 Q타입 클래스가 필요하다. ex) Customer -> QCustomer 문법: QueryDSL은 Java코드로 작성되며, MethodChaining을 사용하여 query를 작.. 2023. 9. 26. [JPA] Native Query. 네이티브 쿼리 NativeQuery는 JPA의 EntityManager를 통해 직접 SQL을 작성하고 실행할 수 있게 해주며, 이를 사용하여 JPA의 영속성 컨텍스트를 우회하여 직접 데이터베이스와 상호 작용할 수 있다. 장점: 복잡한 쿼리를 사용해야 할 때 JPQL로는 표현하기 어려운 경우에 유용하다. 특정 DBMS의 기능을 사용해야 할 때 필요하다. *보통 JPQL을 사용하고 이러한 특정 상황에서만 NativeQuery를 사용하는 것이 좋다. 특징: 반환 타입 : 반환 타입으로 Entity가 아닌 Dto나 기본 자료형을 사용해야 한다. Named Parameter 사용 : [:param] 형식으로 네임드 파라미터를 사용하여 바인딩 할 수 있다. Entity 매핑 : Entity를 사용하지 않기 때문에 수동으로 결과를.. 2023. 9. 25. [SpringDataElasticsearch] Spring Data Elasticsearch란? Elasticsearch용 Spring Data는 저장소별 기능을 유지하면서 새로운 데이터 저장소에 익숙하고 일관된 Spring 기반 프로그래밍 모델을 제공하는 것을 목표로 하는 Spring Data 프로젝트의 일부이다. Spring Data 프로젝트 중 가장 많이 사용되고 있는 JPA (Spring Data JPA) 와 비슷하게 사용할 수 있기 때문에 보다 익숙하고 쉽게 Elasicsearch에 접근할 수 있게 도와준다. Spring Data Elasticsearch 프로젝트는 Elasticsearch 검색 엔진과의 통합을 제공하며, 주요 기능 영역은 Elasticsearch 문서와 상호 작용하고 Repository Style Data Access 계층을 쉽게 작성하기 위한 POJO 중심 모델이다. P.. 2023. 9. 25. [JPA] Entity와 Entity Manager & 영속성 컨텍스트 EntityManager는 JPA에서 Entity를 관리하고 DataBase와의 통신을 담당하는 인터페이스이다. EntityManager는 주로 Entity의 생명주기를 관리하고, Entity와 DataBase간의 상호 작용을 처리한다. 📌 영속성 컨텍스트란? 영속성 컨텍스트는 JPA에서 Entity객체들을 관리하는 논리적인 영역이다. System 영속성 컨텍스트 DataBase 이런 중개자 같은 개념으로 System에서 Entity가 DB에 바로 접근하지 않고, 영속성 컨텍스트에 의해 관리되며 Transaction단위로 commit, rollback 등의 작업을 수행한다. 캐싱, 쓰기 지연, 변경 감지 등의 기능으로 이미 조회한 데이터를 영속성 컨텍스트에서 가져오거나 직접적으로 DB에 접근하지 않기 때.. 2023. 9. 25. [JPA] JPQL (Java Persistence Query Language) JPQL은 JPA에서 사용하는 객체지향적인 쿼리 언어로 JPQL을 사용하여 Entity객체를 대상으로 쿼리를 작성할 수 있다. 객체 중심 쿼리 언어: JPQL은 데이터베이스 테이블이 아닌 Entity객체를 대상으로 쿼리를 작성한다. SQL과 유사하지만 테이블이 아닌 Entity와 그 Entity의 속성을 사용한다. select, from, where, group by, having, order by 등 표준 SQL과 기본 문법은 같다. 특징: JPQL은 객체지향적이며 Entity객체를 대상으로 쿼리를 작성하기 때문에 데이터베이스에 종속적이지 않다. JPQL을 사용하면 Entity객체 사이의 관계를 활용하여 복잡한 쿼리도 작성할 수 있다. Query문에서 FROM [Entity] [EntityAlias] .. 2023. 9. 25. [JPA] Query Method. 쿼리 메서드 Query Methods는 Spring Data JPA에서 제공하는 기능으로 DB에서 데이터를 조회(select), 저장(insert), 수정(update), 삭제(delete) 등의 작업을 쉽게 수행할 수 있다. QueryMethods는 메서드의 이름 자체로 쿼리를 생성하는 방식으로, 메서드 이름을 통해 JPA는 쿼리를 자동으로 생성하고 실행한다. 이를 통해 개발자는 복잡한 JPQL, QueryDSL 등과 같은 쿼리를 작성하지 않고도 간단한 메서드로 DB조작이 가능하다. 보통 데이터를 조회하는 용도로 사용된다. (delete, save 메서드 지원) 데이터 조회하기 메서드 이름 작성 규칙 메서드 이름은 "find", "read", "get"으로 시작해야 한다. "By" 다음에 엔터티의 속성 이름이 위치.. 2023. 9. 25. [Java] Quartz 스케줄러 Quartz는 Java로 작성된 오픈소스 스케줄링 라이브러리이다. Quartz를 사용하여 Java 애플리케이션에서 작업을 예약하고 관리할 수 있으며, 복잡한 작업 예약 및 스케줄링을 간편하게 처리할 수 있도록 도와준다. 라이브러리 추가. org.quartz-scheduler quartz 2.3.2 구조 Job - 실행할 작업을 나타내는 인터페이스로 execute 메서드를 구현하여 작업 내용을 정의한다. JobDetail - Job을 실행하기 위한 상세 정보를 가진 객체로, Job 클래스와 그룹명, JobData 등을 포함한다. Scheduler - 작업의 실행과 관리를 담당하는 핵심 컴포넌트로, JobDetail과 Trigger를 관리하여 작업을 스케줄링한다. Trigger - Job을 실행하는 시점을 .. 2023. 9. 24. 이전 1 ··· 5 6 7 8 9 10 11 ··· 31 다음 728x90 반응형