함수적 종속성 (FD, Functional Dependency)
·
Database
함수적 종속성(FD, Functional Dependency)함수적 종속성이란?함수적 종속성이란, 테이블 내에서 한 속성 X 값에 따라 다른 속성 Y의 값이 유일하게 결정이 될 때 “X가 Y를 함수적으로 결정한다.”라고 표현한다.반대로 "Y가 X에 함수적으로 종속된다."라고 표현할 수 있고 이는 테이블 내의 어떤 두 행에서 X의 값이 같다면 Y의 값도 반드시 같아야 한다는 것을 의미한다.  이러한 두 값 사이의 제약 관계를 functional dependency(FD)라고 부른다. 사용자 테이블을 예시                            ID                          이름                         주소                             1..
[OpenSearch] OpenSearchClient와 OpenSearch Query DSL 이용하기
·
Database
OpenSearch OpenSearch의 Query DSL과 Redis의 Sorted Set 자료구조를 이용해 간단히 검색 순위를 구현해 봤는데 이전에 조사했던 다양한 순위 알고리즘이 존재하는데 일단은 알고리즘을 적용하지 않고 OpenSearch에 저장되어 있는 검색 데이터의 개수만을 이용해 검색 순위 기능을 구현해 봤다. 이번 포스팅은 검색 순위를 구현하기 전 OpenSearchClient의 Query DSL을 이용해 OpenSearch에 저장된 데이터를 가져오는 방법에 대해 알아보자. OpenSearch에서 데이터를 가져오는 방법 중 여러가지 방법이 존재했지만 OpenSearch에 대한 레퍼런스가 부족했기 때문에 삽질을 많이 했다. 크게 java에서는 RestHighLevelClient, OpenSe..
[Redis] Redis 캐시(Cache)를 적용해 조회 성능 개선하기
·
Database
저번 포스팅에서 Spring에 redis를 연동하여 redis에 데이터를 저장하는 방법을 알아보았다. redis 연동 연습 코드는 아래 github에서 볼 수 있다. https://github.com/seungjjun/CodingLife/tree/main/230216 이번에는 KiCK-OFF 프로젝트에 redis cache를 적용해서 프로젝트의 성능을 개선해보려고 한다. 캐시(Cache)? 그러면 캐시가 뭔데 성능을 향상할 수 있다는 것인지 알아보자. 캐시를 간단하게 말하면 DB에 자주 접근해서 가져오는 데이터를 임시로 저장해 둔 뒤, 이후 동일한 데이터 요청이 들어왔을 때 DB에 접근하지 않고 아까 저장해 둔 데이터를 주는 방식이다. 이러한 캐시를 이용한 서비스는 성능적인 측면에서 많은 이점을 얻을 수..
[Redis] SpringBoot Redis 적용기
·
Database
기존 KiCK OFF 프로젝트에 Redis를 적용하기 위해 Spring Boot에 Redis를 적용하는 방법을 간단한 프로젝트를 만들어서 공부해 보았다. Redis 설정 build.gradle 우선 build.gradle에 redis를 사용하기 위해 의존성을 추가하고 빌드를 해준다. implementation 'org.springframework.boot:spring-boot-starter-data-redis' Redis 사용을 위한 Config 클래스 설정 @Configuration @EnableRedisRepositories public class RedisConfig { @Value("${spring.redis.host}") private String redisHost; @Value("${sprin..