멱등성을 위한 테스트 (feat. 복합 유니크 설정)
·
Basic/Database
멱등성이란 동일한 연산을 여러 번 수행해도 결과가 달라지지 않는 성질을 의미합니다. 데이터 파이프라인에서 동일한 작업을 여러 번 수행해도 결과가 변하지 않는 멱등성(Idempotency)을 고려하며 개발을 진행해야 합니다. 예를 들어, API 호출이나 파일 처리로 데이터베이스에 데이터를 삽입할 때, 동일한 요청을 반복해도 중복 데이터가 추가되거나 기존 데이터가 변경되어서는 안 됩니다. 이를 위해 다양한 방식이 존재하지만, 이번에는 데이터베이스를 사용하여 여러 방법을 테스트하고 이에 따른 결과가 어떻게 되었는지 공유해보려고 합니다.1. 실험 환경 및 설계환경서버: Apple OS, M2 Pro, 16GB MemoryS/W 버전: Spring Boot, PostgreSQL, JdbcTemplate데이터 스키..
데이터베이스 복합 인덱스 설정에 대하여
·
Basic/Database
데이터베이스의 성능 최적화를 위하여, 가장 유용한 요소는 "인덱싱"으로 조회시 여러 컬럼을 조건으로 필터링 하기 때문에, 해당 조건에 해당하는 컬럼을 묶어 생성하는 "복합 인덱스"는 다중 조건 쿼리의 성능을 향상시킨다. 복합 인덱스란, 여러 컬럼을 인덱스에 저장하는 것을 뜻하는데, 이를 설정할 때 컬럼의 순서에 따라서도 성능에 유의미한 결과를 낳는다고 한다.`Leftmost Prefix Principle`라고 불리는, 왼쪽 순서에 들어가는 컬럼일수록 우선순위를 갖는다고 보면 될 것 같다.(A, B) 라는 열에 인덱스를 생성하면 인덱스는 먼저 A열 기준으로 정렬되고, A의 각 값 내에서는 B열 기준으로 정렬된다.하지만, B만 조건으로 검색하고 인덱스는 (A, B)를 진행할 경우 A를 건너 뛴 B에 대한 인..
[DynamoDB] AWS 다이나모 DB Local 설치
·
Basic/Database
DynamoDB Local 설치도커를 사용하여 다이나모 디비를 받아옵니다. (Docker가 설치되어 있어야 합니다.)docker pull amazon/dynamodb-localDynamoDB 실행docker run -d -p 8000:8000 amazon/dynamodb-local확인(aws cli가 설치되어 있어야 합니다.)aws dynamodb list-tables --endpoint-url http://localhost:8000
[Redis] Docker Desktop을 활용하여 Redis 설치
·
Basic/Database
Docker Run Docker를 Run하기 위해 작업 중인 파워쉘을 실행시켰습니다. Docker Desktop에서 제공하는 명령어를 실행시킵니다. 에러 발생 혹시나 Docker Desktop이 설치되었음에도, 해당 명령어를 입력했을 때 docker를 찾지 못한다면 환경변수의 Path에 docker.exe의 경로가 추가되었는지 확인해봐야 합니다. Redis 설치 docker pull redis 도커에 redis를 받아옵니다. docker run --name woong-redis -d -p 6379:6379 redis 설치된 docker 이미지를 실행시킵니다. docker ps container가 잘 구동되고 있는지, docker에서 구동되고 있는 container 목록을 불러옵니다. redis가 loca..
[NoSQL] 몽고 DB(MongoDB)설치 (6.0 이상 버전일 때)
·
Basic/Database
몽고디비 다운로드 구글에 MongoDB라고 검색합니다. 상단 메뉴에서 Community Server를 선택합니다. 쉽게 그냥 아래 링크를 통해 들어가셔도 됩니다. Try MongoDB Community Edition Try MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project! www.mongodb.com 현재 버전과, 각자 컴퓨터에 설치된 Platform 및 설치 파일을 선택하시고 Download 버튼을 눌러서 다운받아주세요. 설치 클릭하면 자동 설치 됩니다. Next만 누르시면 됩니다...
[Oracle] 오라클 8080 Port 변경하기
·
Basic/Database
Oracle을 설치하다 보면 기본적으로 8080 port를 오라클에 배정하게 되는데, 이게 생각보다 많은 귀찮음을 유발한다. 국비지원 교육을 받게 되면 편할지 몰라도, 오라클을 접하지 않고 MySQL로 개발을 처음 접하는 사람들과 프로젝트를 진행하다 보면 다들 8080 포트를 사용하는데 오라클 설치자들은 계속 application.properties 또는 applicaion.yml에서 포트번호를 수정해야 하기 때문이다. 그래서 아예 오라클이 쓰고 있는 8080포트를 변경시키기로 생각했다. 다행히 인터넷에 많은 정보들이 있었다. 변경 윈도우에서 CMD(명령 프롬프트)를 실행한다. sqlplus를 입력하여 sql 명령어를 입력하여 sql 화면으로 넘어간다. user-name에는 sys as sysdba를 입..
[Redis] Redis Spring 세팅
·
Basic/Database
이전글 Redis 로컬 설치 방법은 다음 글을 참고하세요 [Redis] Redis 설치 Redis 소개 Key - Value 형태 인메모리 데이터 저장 구조 문자열, 해시, 리스트, 셋, 스트림 등 데이터 구조 제공 Spring Data Redis Some commands (such as SINTER and SUNION) can only be processed on the server side when all invo chordplaylist.tistory.com Reids 설정 Spring Gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-data-redis' application.yml host, port 추가 spr..
[Redis] Redis 설치
·
Basic/Database
Redis 소개 Key - Value 형태 인메모리 데이터 저장 구조 문자열, 해시, 리스트, 셋, 스트림 등 데이터 구조 제공 Spring Data Redis Some commands (such as SINTER and SUNION) can only be processed on the server side when all involved keys map to the same slot. Otherwise, computation has to be done on client side. Therefore, it is useful to pin keyspaces to a single slot, which lets make docs.spring.io Introduction to Redis Learn about th..
코드플리
'Basic/Database' 카테고리의 글 목록