개발

· 개발
레디스는 파이프라이닝(pipelining)을 지원합니다. 파이프라이닝은 여러 명령을 서버에 응답을 기다리지 않고 한꺼번에 보내고, 나중에 한 번에 응답을 읽어 들이는 방식이다. 이 방식은 예를 들어 같은 리스트에 많은 요소를 추가할 때처럼 여러 명령을 연속으로 보내야 하는 경우 성능을 향상할 수 있다. Spring Data Redis는 파이프라인에서 명령을 실행할 수 있도록 여러 RedisTemplate 메서드를 제공한다. 파이프라인으로 실행되는 작업의 결과를 신경 쓰지 않는다면, execute 메서드를 사용할 수 있으며, 이때 파이프라인 여부를 나타내는 두 번째 인자에 true를 전달하면 된다. 반면에, 파이프라인 내에서 실행한 명령의 결과가 필요하다면, executePipelined 메서드를 사용하면..
· 개발
Spring Data Redis는 org.springframework.data.redis.cache 패키지에서 Spring Framework의 캐시 추상화(Cache Abstraction)에 대한 구현을 제공한다. 레디스를 캐시 저장소로 사용하려면, 설정에 RedisCacheManager를 추가해야 한다. RedisCacheManager의 동작은 RedisCacheManager.RedisCacheManagerBuilder를 사용해 설정할 수 있다. 이를 통해 아래와 같은 설정이 가능하다.기본 RedisCacheManager 지정트랜잭션 처리 방식 설정사전 정의된 캐시 구성 RedisCacheManager cacheManager = RedisCacheManager.builder(connectionFacto..
· 개발
다대다(M:N) 관계란 두 개의 엔티티 A와 B 사이의 관계를 의미하며, A의 하나의 인스턴스가 B의 여러 인스턴스와 관계될 수 있고, 반대로 B의 하나의 인스턴스도 A의 여러 인스턴스와 관련될 수 있는 관계를 말한다.RDBMS에서는 이런한 관계를 구현할 때 보통 연관 테이블을 사용한다. 이 테이블은 아래와 같은 이름으로 불리기도 한다.조인 테이블연결 테이블교차 테이블 예를 들어 AB라는 연관 테이블을 만든다면 A -> AB, B -> AB 이렇게 두 개의 일대다(1:N) 관계로 다대다 관계를 풀어낸다. 이 경우 AB 테이블의 논리적 기본 키는 A와 B의 외래 키 두 개로 구성된다. 다대다 관계 문제중복 데이터와 정합성다대다 관계를 중간 테이블 없이 직접 모델링하면, 동일한 정보가 여러 테이블 또는 행에..
· 개발
프레임 워크 관점에서, 레디스에 저장된 데이터는 오직 바이트다. 레디스 자체는 다양한 유형을 지원하지만, 대부분의 경우 이는 데이터가 무엇을 나타내는지보다는 데이터가 저장되는 방식을 나타낸다. 정보를 문자열로 변환할지 다른 객체로 변환할지는 사용자가 결정할 수 있다.Spring Data에서 사용자 유형과 원시 데이터 간의 변환은 org.springframework.data.redis.serializer 패키지의 Spring Data Redis에서 처리한다. 이 패키지에는 이름에서 알 수 있듯이 직렬화 프로세스를 처리하는 두 가지 유형의 직렬화기가 포함되어 있다:RedisSerializer를 기반으로 하는 양방향 직렬화기RedisElementReader 및 RedisElementWriter를 사용하는 요소..
· 개발
선언형 프로그래밍선언적 프로그래밍은 흔히 명령형이 아닌 모든 프로그래밍 스타일로 정의된다. 다른 많은 일반적인 정의는 명령형 프로그래밍과 단순히 대조하여 선언형 프로그래밍을 정의하려고 시도한다. 예를 들어계산이 수행해야 하는 작업을 설명하는 고수준 프로그램이다부작용이 없는(또는 더 구체적으로 말하면 참조적으로 투명한) 모든 프로그래밍 언어수학적 논리에 명확하게 대응하는 언어 선언적 프로그래밍은 프로그램이 수행해야 하는 명령이나 단계(How do)를 명시적으로 나열하지 않고 원하는 결과(What do)를 설명하는 비명령형 프로그래밍 스타일이다. 함수형 및 논리 프로그래밍 언어는 선언적 프로그래밍 스타일이 특징이다. 논리 프로그래밍에서 프로그램은 논리적 형식으로 표현된 문장으로 구성되며, 계산은 이러한 문장..
· 개발
이벤트 소싱이란?이벤트의 발행 순서를 지키지 않으면 예상치 못한 결과가 발생하는 경우가 존재합니다. 그러한 경우 메시지 브로커를 통해 메시지 처리 순서를 보장할 수도 있지만 이벤트 소싱을 사용하여 순서를 보장할 수 있습니다. 이벤트 소싱은 애플리케이션 상태에 대한 모든 수정 사항이 이벤트로 순차적으로 저장되는 고유한 시스템 설계 패턴입니다. 각 상태 변경을 트랜잭션 로그에 기록한다는 점에서 트랜잭션 데이터베이스 시스템의 작동 방식과 유사합니다. 그러나 이벤트 소싱의 맥락에서 '이벤트'는 '알림'보다 '상태 변경'을 의미합니다. 이벤트 소싱의 핵심 구성 요소는 이벤트의 순서가 보존되는 특수 저장 공간인 이벤트 저장소입니다. 이 시스템은 이전 이벤트를 새 이벤트로 덮어쓰지 않습니다. 대신 새 이벤트를 시퀀스..
belljun
'개발' 카테고리의 글 목록